diff --git hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/BackupProtos.java hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/BackupProtos.java
index c5220cc..aa7a918 100644
--- hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/BackupProtos.java
+++ hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/BackupProtos.java
@@ -1866,20 +1866,19 @@ public final class BackupProtos {
public interface ServerTimestampOrBuilder
extends com.google.protobuf.MessageOrBuilder {
- // required string server = 1;
+ // required .hbase.pb.ServerName server = 1;
/**
- * required string server = 1;
+ * required .hbase.pb.ServerName server = 1;
*/
boolean hasServer();
/**
- * required string server = 1;
+ * required .hbase.pb.ServerName server = 1;
*/
- java.lang.String getServer();
+ org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName getServer();
/**
- * required string server = 1;
+ * required .hbase.pb.ServerName server = 1;
*/
- com.google.protobuf.ByteString
- getServerBytes();
+ org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder getServerOrBuilder();
// required uint64 timestamp = 2;
/**
@@ -1943,8 +1942,16 @@ public final class BackupProtos {
break;
}
case 10: {
+ org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder subBuilder = null;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ subBuilder = server_.toBuilder();
+ }
+ server_ = input.readMessage(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.PARSER, extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(server_);
+ server_ = subBuilder.buildPartial();
+ }
bitField0_ |= 0x00000001;
- server_ = input.readBytes();
break;
}
case 16: {
@@ -1992,47 +1999,26 @@ public final class BackupProtos {
}
private int bitField0_;
- // required string server = 1;
+ // required .hbase.pb.ServerName server = 1;
public static final int SERVER_FIELD_NUMBER = 1;
- private java.lang.Object server_;
+ private org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName server_;
/**
- * required string server = 1;
+ * required .hbase.pb.ServerName server = 1;
*/
public boolean hasServer() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
/**
- * required string server = 1;
+ * required .hbase.pb.ServerName server = 1;
*/
- public java.lang.String getServer() {
- java.lang.Object ref = server_;
- if (ref instanceof java.lang.String) {
- return (java.lang.String) ref;
- } else {
- com.google.protobuf.ByteString bs =
- (com.google.protobuf.ByteString) ref;
- java.lang.String s = bs.toStringUtf8();
- if (bs.isValidUtf8()) {
- server_ = s;
- }
- return s;
- }
+ public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName getServer() {
+ return server_;
}
/**
- * required string server = 1;
+ * required .hbase.pb.ServerName server = 1;
*/
- public com.google.protobuf.ByteString
- getServerBytes() {
- java.lang.Object ref = server_;
- if (ref instanceof java.lang.String) {
- com.google.protobuf.ByteString b =
- com.google.protobuf.ByteString.copyFromUtf8(
- (java.lang.String) ref);
- server_ = b;
- return b;
- } else {
- return (com.google.protobuf.ByteString) ref;
- }
+ public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder getServerOrBuilder() {
+ return server_;
}
// required uint64 timestamp = 2;
@@ -2052,7 +2038,7 @@ public final class BackupProtos {
}
private void initFields() {
- server_ = "";
+ server_ = org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.getDefaultInstance();
timestamp_ = 0L;
}
private byte memoizedIsInitialized = -1;
@@ -2068,6 +2054,10 @@ public final class BackupProtos {
memoizedIsInitialized = 0;
return false;
}
+ if (!getServer().isInitialized()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
memoizedIsInitialized = 1;
return true;
}
@@ -2076,7 +2066,7 @@ public final class BackupProtos {
throws java.io.IOException {
getSerializedSize();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
- output.writeBytes(1, getServerBytes());
+ output.writeMessage(1, server_);
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeUInt64(2, timestamp_);
@@ -2092,7 +2082,7 @@ public final class BackupProtos {
size = 0;
if (((bitField0_ & 0x00000001) == 0x00000001)) {
size += com.google.protobuf.CodedOutputStream
- .computeBytesSize(1, getServerBytes());
+ .computeMessageSize(1, server_);
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
@@ -2253,6 +2243,7 @@ public final class BackupProtos {
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ getServerFieldBuilder();
}
}
private static Builder create() {
@@ -2261,7 +2252,11 @@ public final class BackupProtos {
public Builder clear() {
super.clear();
- server_ = "";
+ if (serverBuilder_ == null) {
+ server_ = org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.getDefaultInstance();
+ } else {
+ serverBuilder_.clear();
+ }
bitField0_ = (bitField0_ & ~0x00000001);
timestamp_ = 0L;
bitField0_ = (bitField0_ & ~0x00000002);
@@ -2296,7 +2291,11 @@ public final class BackupProtos {
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
to_bitField0_ |= 0x00000001;
}
- result.server_ = server_;
+ if (serverBuilder_ == null) {
+ result.server_ = server_;
+ } else {
+ result.server_ = serverBuilder_.build();
+ }
if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
to_bitField0_ |= 0x00000002;
}
@@ -2318,9 +2317,7 @@ public final class BackupProtos {
public Builder mergeFrom(org.apache.hadoop.hbase.protobuf.generated.BackupProtos.ServerTimestamp other) {
if (other == org.apache.hadoop.hbase.protobuf.generated.BackupProtos.ServerTimestamp.getDefaultInstance()) return this;
if (other.hasServer()) {
- bitField0_ |= 0x00000001;
- server_ = other.server_;
- onChanged();
+ mergeServer(other.getServer());
}
if (other.hasTimestamp()) {
setTimestamp(other.getTimestamp());
@@ -2338,6 +2335,10 @@ public final class BackupProtos {
return false;
}
+ if (!getServer().isInitialized()) {
+
+ return false;
+ }
return true;
}
@@ -2360,78 +2361,121 @@ public final class BackupProtos {
}
private int bitField0_;
- // required string server = 1;
- private java.lang.Object server_ = "";
+ // required .hbase.pb.ServerName server = 1;
+ private org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName server_ = org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder> serverBuilder_;
/**
- * required string server = 1;
+ * required .hbase.pb.ServerName server = 1;
*/
public boolean hasServer() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
/**
- * required string server = 1;
+ * required .hbase.pb.ServerName server = 1;
*/
- public java.lang.String getServer() {
- java.lang.Object ref = server_;
- if (!(ref instanceof java.lang.String)) {
- java.lang.String s = ((com.google.protobuf.ByteString) ref)
- .toStringUtf8();
- server_ = s;
- return s;
+ public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName getServer() {
+ if (serverBuilder_ == null) {
+ return server_;
} else {
- return (java.lang.String) ref;
+ return serverBuilder_.getMessage();
}
}
/**
- * required string server = 1;
+ * required .hbase.pb.ServerName server = 1;
*/
- public com.google.protobuf.ByteString
- getServerBytes() {
- java.lang.Object ref = server_;
- if (ref instanceof String) {
- com.google.protobuf.ByteString b =
- com.google.protobuf.ByteString.copyFromUtf8(
- (java.lang.String) ref);
- server_ = b;
- return b;
+ public Builder setServer(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName value) {
+ if (serverBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ server_ = value;
+ onChanged();
} else {
- return (com.google.protobuf.ByteString) ref;
+ serverBuilder_.setMessage(value);
}
+ bitField0_ |= 0x00000001;
+ return this;
}
/**
- * required string server = 1;
+ * required .hbase.pb.ServerName server = 1;
*/
public Builder setServer(
- java.lang.String value) {
- if (value == null) {
- throw new NullPointerException();
- }
- bitField0_ |= 0x00000001;
- server_ = value;
- onChanged();
+ org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder builderForValue) {
+ if (serverBuilder_ == null) {
+ server_ = builderForValue.build();
+ onChanged();
+ } else {
+ serverBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
return this;
}
/**
- * required string server = 1;
+ * required .hbase.pb.ServerName server = 1;
+ */
+ public Builder mergeServer(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName value) {
+ if (serverBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) == 0x00000001) &&
+ server_ != org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.getDefaultInstance()) {
+ server_ =
+ org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.newBuilder(server_).mergeFrom(value).buildPartial();
+ } else {
+ server_ = value;
+ }
+ onChanged();
+ } else {
+ serverBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000001;
+ return this;
+ }
+ /**
+ * required .hbase.pb.ServerName server = 1;
*/
public Builder clearServer() {
+ if (serverBuilder_ == null) {
+ server_ = org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.getDefaultInstance();
+ onChanged();
+ } else {
+ serverBuilder_.clear();
+ }
bitField0_ = (bitField0_ & ~0x00000001);
- server_ = getDefaultInstance().getServer();
- onChanged();
return this;
}
/**
- * required string server = 1;
+ * required .hbase.pb.ServerName server = 1;
*/
- public Builder setServerBytes(
- com.google.protobuf.ByteString value) {
- if (value == null) {
- throw new NullPointerException();
- }
- bitField0_ |= 0x00000001;
- server_ = value;
+ public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder getServerBuilder() {
+ bitField0_ |= 0x00000001;
onChanged();
- return this;
+ return getServerFieldBuilder().getBuilder();
+ }
+ /**
+ * required .hbase.pb.ServerName server = 1;
+ */
+ public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder getServerOrBuilder() {
+ if (serverBuilder_ != null) {
+ return serverBuilder_.getMessageOrBuilder();
+ } else {
+ return server_;
+ }
+ }
+ /**
+ * required .hbase.pb.ServerName server = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder>
+ getServerFieldBuilder() {
+ if (serverBuilder_ == null) {
+ serverBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder>(
+ server_,
+ getParentForChildren(),
+ isClean());
+ server_ = null;
+ }
+ return serverBuilder_;
}
// required uint64 timestamp = 2;
@@ -8894,38 +8938,38 @@ public final class BackupProtos {
"oot_dir\030\003 \002(\t\022\'\n\ntable_list\030\004 \003(\0132\023.hbas" +
"e.pb.TableName\022\020\n\010start_ts\030\005 \002(\004\022\023\n\013comp" +
"lete_ts\030\006 \002(\004\022(\n\tancestors\030\007 \003(\0132\025.hbase" +
- ".pb.BackupImage\"4\n\017ServerTimestamp\022\016\n\006se" +
- "rver\030\001 \002(\t\022\021\n\ttimestamp\030\002 \002(\004\"o\n\024TableSe" +
- "rverTimestamp\022\"\n\005table\030\001 \002(\0132\023.hbase.pb." +
- "TableName\0223\n\020server_timestamp\030\002 \003(\0132\031.hb",
- "ase.pb.ServerTimestamp\"\220\002\n\016BackupManifes" +
- "t\022\017\n\007version\030\001 \002(\t\022\021\n\tbackup_id\030\002 \002(\t\022\"\n" +
- "\004type\030\003 \002(\0162\024.hbase.pb.BackupType\022\'\n\ntab" +
- "le_list\030\004 \003(\0132\023.hbase.pb.TableName\022\020\n\010st" +
- "art_ts\030\005 \002(\004\022\023\n\013complete_ts\030\006 \002(\004\022/\n\007tst" +
- "_map\030\007 \003(\0132\036.hbase.pb.TableServerTimesta" +
- "mp\0225\n\026dependent_backup_image\030\010 \003(\0132\025.hba" +
- "se.pb.BackupImage\"]\n\021TableBackupStatus\022\"" +
- "\n\005table\030\001 \002(\0132\023.hbase.pb.TableName\022\022\n\nta" +
- "rget_dir\030\002 \002(\t\022\020\n\010snapshot\030\003 \001(\t\"\320\004\n\nBac",
- "kupInfo\022\021\n\tbackup_id\030\001 \002(\t\022\"\n\004type\030\002 \002(\016" +
- "2\024.hbase.pb.BackupType\022\027\n\017target_root_di" +
- "r\030\003 \002(\t\022/\n\005state\030\004 \001(\0162 .hbase.pb.Backup" +
- "Info.BackupState\022/\n\005phase\030\005 \001(\0162 .hbase." +
- "pb.BackupInfo.BackupPhase\022\026\n\016failed_mess" +
- "age\030\006 \001(\t\0228\n\023table_backup_status\030\007 \003(\0132\033" +
- ".hbase.pb.TableBackupStatus\022\020\n\010start_ts\030" +
- "\010 \001(\004\022\016\n\006end_ts\030\t \001(\004\022\020\n\010progress\030\n \001(\r\022" +
- "\016\n\006job_id\030\013 \001(\t\022\026\n\016workers_number\030\014 \002(\r\022" +
- "\021\n\tbandwidth\030\r \002(\004\"P\n\013BackupState\022\013\n\007WAI",
- "TING\020\000\022\013\n\007RUNNING\020\001\022\014\n\010COMPLETE\020\002\022\n\n\006FAI" +
- "LED\020\003\022\r\n\tCANCELLED\020\004\"}\n\013BackupPhase\022\013\n\007R" +
- "EQUEST\020\000\022\014\n\010SNAPSHOT\020\001\022\027\n\023PREPARE_INCREM" +
- "ENTAL\020\002\022\020\n\014SNAPSHOTCOPY\020\003\022\024\n\020INCREMENTAL" +
- "_COPY\020\004\022\022\n\016STORE_MANIFEST\020\005*\'\n\nBackupTyp" +
- "e\022\010\n\004FULL\020\000\022\017\n\013INCREMENTAL\020\001BB\n*org.apac" +
- "he.hadoop.hbase.protobuf.generatedB\014Back" +
- "upProtosH\001\210\001\001\240\001\001"
+ ".pb.BackupImage\"J\n\017ServerTimestamp\022$\n\006se" +
+ "rver\030\001 \002(\0132\024.hbase.pb.ServerName\022\021\n\ttime" +
+ "stamp\030\002 \002(\004\"o\n\024TableServerTimestamp\022\"\n\005t" +
+ "able\030\001 \002(\0132\023.hbase.pb.TableName\0223\n\020serve",
+ "r_timestamp\030\002 \003(\0132\031.hbase.pb.ServerTimes" +
+ "tamp\"\220\002\n\016BackupManifest\022\017\n\007version\030\001 \002(\t" +
+ "\022\021\n\tbackup_id\030\002 \002(\t\022\"\n\004type\030\003 \002(\0162\024.hbas" +
+ "e.pb.BackupType\022\'\n\ntable_list\030\004 \003(\0132\023.hb" +
+ "ase.pb.TableName\022\020\n\010start_ts\030\005 \002(\004\022\023\n\013co" +
+ "mplete_ts\030\006 \002(\004\022/\n\007tst_map\030\007 \003(\0132\036.hbase" +
+ ".pb.TableServerTimestamp\0225\n\026dependent_ba" +
+ "ckup_image\030\010 \003(\0132\025.hbase.pb.BackupImage\"" +
+ "]\n\021TableBackupStatus\022\"\n\005table\030\001 \002(\0132\023.hb" +
+ "ase.pb.TableName\022\022\n\ntarget_dir\030\002 \002(\t\022\020\n\010",
+ "snapshot\030\003 \001(\t\"\320\004\n\nBackupInfo\022\021\n\tbackup_" +
+ "id\030\001 \002(\t\022\"\n\004type\030\002 \002(\0162\024.hbase.pb.Backup" +
+ "Type\022\027\n\017target_root_dir\030\003 \002(\t\022/\n\005state\030\004" +
+ " \001(\0162 .hbase.pb.BackupInfo.BackupState\022/" +
+ "\n\005phase\030\005 \001(\0162 .hbase.pb.BackupInfo.Back" +
+ "upPhase\022\026\n\016failed_message\030\006 \001(\t\0228\n\023table" +
+ "_backup_status\030\007 \003(\0132\033.hbase.pb.TableBac" +
+ "kupStatus\022\020\n\010start_ts\030\010 \001(\004\022\016\n\006end_ts\030\t " +
+ "\001(\004\022\020\n\010progress\030\n \001(\r\022\016\n\006job_id\030\013 \001(\t\022\026\n" +
+ "\016workers_number\030\014 \002(\r\022\021\n\tbandwidth\030\r \002(\004",
+ "\"P\n\013BackupState\022\013\n\007WAITING\020\000\022\013\n\007RUNNING\020" +
+ "\001\022\014\n\010COMPLETE\020\002\022\n\n\006FAILED\020\003\022\r\n\tCANCELLED" +
+ "\020\004\"}\n\013BackupPhase\022\013\n\007REQUEST\020\000\022\014\n\010SNAPSH" +
+ "OT\020\001\022\027\n\023PREPARE_INCREMENTAL\020\002\022\020\n\014SNAPSHO" +
+ "TCOPY\020\003\022\024\n\020INCREMENTAL_COPY\020\004\022\022\n\016STORE_M" +
+ "ANIFEST\020\005*\'\n\nBackupType\022\010\n\004FULL\020\000\022\017\n\013INC" +
+ "REMENTAL\020\001BB\n*org.apache.hadoop.hbase.pr" +
+ "otobuf.generatedB\014BackupProtosH\001\210\001\001\240\001\001"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
diff --git hbase-protocol/src/main/protobuf/Backup.proto hbase-protocol/src/main/protobuf/Backup.proto
index 2b3feeb..3db0293 100644
--- hbase-protocol/src/main/protobuf/Backup.proto
+++ hbase-protocol/src/main/protobuf/Backup.proto
@@ -61,7 +61,7 @@ message BackupImage {
}
message ServerTimestamp {
- required string server = 1;
+ required ServerName server = 1;
required uint64 timestamp = 2;
}
diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java
index d10713d..6d9b147 100644
--- hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java
+++ hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java
@@ -36,6 +36,7 @@ import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.backup.BackupInfo;
import org.apache.hadoop.hbase.backup.BackupType;
@@ -407,7 +408,7 @@ public class BackupManifest {
}
List listSt = tst.getServerTimestampList();
for(BackupProtos.ServerTimestamp stm: listSt) {
- map.put(stm.getServer(), stm.getTimestamp());
+ map.put(ProtobufUtil.toServerName(stm.getServer()).toString(), stm.getTimestamp());
}
}
}
@@ -528,7 +529,12 @@ public class BackupManifest {
for (String s : value.keySet()) {
BackupProtos.ServerTimestamp.Builder stBuilder = BackupProtos.ServerTimestamp.newBuilder();
- stBuilder.setServer(s);
+ HBaseProtos.ServerName.Builder snBuilder = HBaseProtos.ServerName.newBuilder();
+ ServerName sn = ServerName.parseServerName(s);
+ snBuilder.setHostName(sn.getHostname());
+ snBuilder.setPort(sn.getPort());
+ stBuilder.setServer(snBuilder.build());
+
stBuilder.setTimestamp(value.get(s));
tstBuilder.addServerTimestamp(stBuilder.build());
}
diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.java hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.java
index d05d54c..1e0a5c4 100644
--- hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.java
+++ hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.java
@@ -38,6 +38,7 @@ import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HTableDescriptor;
+import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.backup.BackupInfo;
import org.apache.hadoop.hbase.backup.BackupInfo.BackupState;
@@ -54,6 +55,7 @@ import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
import org.apache.hadoop.hbase.protobuf.generated.BackupProtos;
+import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos;
/**
* This class provides 'hbase:backup' table API
@@ -497,7 +499,11 @@ public final class BackupSystemTable implements Closeable {
for (Entry entry : map.entrySet()) {
BackupProtos.ServerTimestamp.Builder builder = BackupProtos.ServerTimestamp.newBuilder();
- builder.setServer(entry.getKey());
+ HBaseProtos.ServerName.Builder snBuilder = HBaseProtos.ServerName.newBuilder();
+ ServerName sn = ServerName.parseServerName(entry.getKey());
+ snBuilder.setHostName(sn.getHostname());
+ snBuilder.setPort(sn.getPort());
+ builder.setServer(snBuilder.build());
builder.setTimestamp(entry.getValue());
tstBuilder.addServerTimestamp(builder.build());
}
@@ -510,7 +516,8 @@ public final class BackupSystemTable implements Closeable {
HashMap map = new HashMap();
List list = proto.getServerTimestampList();
for (BackupProtos.ServerTimestamp st : list) {
- map.put(st.getServer(), st.getTimestamp());
+ ServerName sn = ProtobufUtil.toServerName(st.getServer());
+ map.put(sn.getHostname()+":"+sn.getPort(), st.getTimestamp());
}
return map;
}
diff --git hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupSystemTable.java hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupSystemTable.java
index 75832d3..3488786 100644
--- hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupSystemTable.java
+++ hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupSystemTable.java
@@ -269,9 +269,9 @@ public class TestBackupSystemTable {
HashMap rsTimestampMap = new HashMap();
- rsTimestampMap.put("rs1", 100L);
- rsTimestampMap.put("rs2", 101L);
- rsTimestampMap.put("rs3", 103L);
+ rsTimestampMap.put("rs1:100", 100L);
+ rsTimestampMap.put("rs2:100", 101L);
+ rsTimestampMap.put("rs3:100", 103L);
table.writeRegionServerLogTimestamp(tables, rsTimestampMap, "root");
@@ -282,9 +282,9 @@ public class TestBackupSystemTable {
for (TableName t : tables) {
HashMap rstm = result.get(t);
assertNotNull(rstm);
- assertEquals(rstm.get("rs1"), new Long(100L));
- assertEquals(rstm.get("rs2"), new Long(101L));
- assertEquals(rstm.get("rs3"), new Long(103L));
+ assertEquals(rstm.get("rs1:100"), new Long(100L));
+ assertEquals(rstm.get("rs2:100"), new Long(101L));
+ assertEquals(rstm.get("rs3:100"), new Long(103L));
}
Set tables1 = new TreeSet<>();
@@ -295,9 +295,9 @@ public class TestBackupSystemTable {
HashMap rsTimestampMap1 = new HashMap();
- rsTimestampMap1.put("rs1", 200L);
- rsTimestampMap1.put("rs2", 201L);
- rsTimestampMap1.put("rs3", 203L);
+ rsTimestampMap1.put("rs1:100", 200L);
+ rsTimestampMap1.put("rs2:100", 201L);
+ rsTimestampMap1.put("rs3:100", 203L);
table.writeRegionServerLogTimestamp(tables1, rsTimestampMap1, "root");
@@ -309,22 +309,22 @@ public class TestBackupSystemTable {
HashMap rstm = result.get(t);
assertNotNull(rstm);
if (t.equals(TableName.valueOf("t3")) == false) {
- assertEquals(rstm.get("rs1"), new Long(100L));
- assertEquals(rstm.get("rs2"), new Long(101L));
- assertEquals(rstm.get("rs3"), new Long(103L));
+ assertEquals(rstm.get("rs1:100"), new Long(100L));
+ assertEquals(rstm.get("rs2:100"), new Long(101L));
+ assertEquals(rstm.get("rs3:100"), new Long(103L));
} else {
- assertEquals(rstm.get("rs1"), new Long(200L));
- assertEquals(rstm.get("rs2"), new Long(201L));
- assertEquals(rstm.get("rs3"), new Long(203L));
+ assertEquals(rstm.get("rs1:100"), new Long(200L));
+ assertEquals(rstm.get("rs2:100"), new Long(201L));
+ assertEquals(rstm.get("rs3:100"), new Long(203L));
}
}
for (TableName t : tables1) {
HashMap rstm = result.get(t);
assertNotNull(rstm);
- assertEquals(rstm.get("rs1"), new Long(200L));
- assertEquals(rstm.get("rs2"), new Long(201L));
- assertEquals(rstm.get("rs3"), new Long(203L));
+ assertEquals(rstm.get("rs1:100"), new Long(200L));
+ assertEquals(rstm.get("rs2:100"), new Long(201L));
+ assertEquals(rstm.get("rs3:100"), new Long(203L));
}
cleanBackupTable();