0

我正在尝试使用以下命令将表从 Hbase 0.90 复制到 Hbase 0.04:

$ hbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=ZKHOST:2181:/hbase --starttime=1378252486000 --endtime=1378338886000 --new.name=my_table my_table 

但我收到了这个错误:

13/09/04 21:52:12 INFO mapred.JobClient: Running job: job_201305141438_0003
13/09/04 21:52:13 INFO mapred.JobClient:  map 0% reduce 0%
13/09/04 21:52:21 INFO mapred.JobClient: Task Id : attempt_201305141438_0003_m_000002_0, Status : FAILED
java.lang.IllegalArgumentException: Not a host:port pair: ?7805@hbase10.dc.yyy.nethbase10.dc.yyy.net,60020,1378354913021
        at org.apache.hadoop.hbase.HServerAddress.<init>(HServerAddress.java:60)
        at org.apache.hadoop.hbase.zookeeper.RootRegionTracker.dataToHServerAddress(RootRegionTracker.java:82)
        at org.apache.hadoop.hbase.zookeeper.RootRegionTracker.waitRootRegionLocation(RootRegionTracker.java:73)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:786)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:766)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:895)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:797)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManag

我在新的目标系统 hbase01 到 hbase10 中有 10 台主机。该脚本自动选择 1 个主机,但我不确定它为什么要尝试使用像“hbase10.dc.yyy.nethbase10.dc.yyy.net”这样的东西,这在我看来是错误的。

4

1 回答 1

1

是的,副本表需要能够连接到两个集群。它们需要与 RPC 兼容。

  • 0.90 -> 0.90
  • 0.92 -> 0.92, 0.94
  • 0.94 -> 0.92, 0.94
  • 0.96 -> 0.96

也许导出/导入可以用来做你正在寻找的东西?

https://hbase.apache.org/book/ops_mgt.html#export

于 2013-09-05T23:37:12.957 回答