我有一个hbase表x,我想创建它的精确副本并将其命名为y。有人能告诉我怎么可能吗?谢谢
yzckvree1#
假设要在同一集群上复制表,可以在中使用hbase快照 hbase shell 你可以
hbase shell
snapshot 'sourceTable', 'sourceTable-snapshot' clone_snapshot 'sourceTable-snapshot', 'newTable'
iyfamqjs2#
这会有用的。。
hbase org.apache.hadoop.hbase.mapreduce.Export tableA /hbase_export/tableA hbase org.apache.hadoop.hbase.mapreduce.Import /hbase_export/tableA tableAcopy
swvgeqrz3#
根据hbase文档,这里(1,2)是选项。
mf98qq944#
copytable命令对于复制hbase表非常方便。使用方法如下:
hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=Y X;
sczxawaw5#
在hbase shell中检查版本;
hbase(main):001:0> version 0.90.4, r1150278, Sun Jul 24 15:53:29 PDT 2011
如果是0.94.6的旧版本,则应使用MapReduce作业。快照从0.94.6开始可用。如果高于0.94.6,则可以使用toby941答案,也可以使用其中一个答案(一)
./hbase org.apache.hadoop.hbase.mapreduce.CopyTable Usage: CopyTable [--rs.class=CLASS] [--rs.impl=IMPL] [--starttime=X] [--endtime=Y] [--new.name=NEW] [--peer.adr=ADR] <tablename>
b-1段)
./hbase org.apache.hadoop.hbase.mapreduce.Export Usage: Export [-D <property=value>]* <tablename> <outputdir> [<versions> [<starttime> [<endtime>]]]
b-2)然后用你想要的名字导入
./hbase org.apache.hadoop.hbase.mapreduce.Import Usage: Import <tablename> <inputdir>
ozxc1zmp6#
如果您使用的是旧版本的hbase,快照方法可能不起作用https://issues.apache.org/jira/browse/hbase-8742 . 在这种情况下,您可能需要手动复制hbase架构,然后应用snapshot或更好的方法来升级到固定版本。
dpiehjr47#
使用hbase shell1确保在hbase-site.xml中启用快照
<property> <name>hbase.snapshot.enabled</name> <value>true</value> </property>
2hbase>快照'x','snapshot\u x'三。hbase>克隆快照'snapshot\u x'、'another\u x'
7条答案
按热度按时间yzckvree1#
假设要在同一集群上复制表,可以在中使用hbase快照
hbase shell
你可以iyfamqjs2#
这会有用的。。
swvgeqrz3#
根据hbase文档,这里(1,2)是选项。
mf98qq944#
copytable命令对于复制hbase表非常方便。使用方法如下:
sczxawaw5#
在hbase shell中检查版本;
如果是0.94.6的旧版本,则应使用MapReduce作业。快照从0.94.6开始可用。如果高于0.94.6,则可以使用toby941答案,也可以使用其中一个答案
(一)
b-1段)
b-2)然后用你想要的名字导入
ozxc1zmp6#
如果您使用的是旧版本的hbase,快照方法可能不起作用https://issues.apache.org/jira/browse/hbase-8742 . 在这种情况下,您可能需要手动复制hbase架构,然后应用snapshot或更好的方法来升级到固定版本。
dpiehjr47#
使用hbase shell
1确保在hbase-site.xml中启用快照
2hbase>快照'x','snapshot\u x'
三。hbase>克隆快照'snapshot\u x'、'another\u x'