У меня есть таблица Hbase X, и я хочу создать точную копию ее и назвать ее Y. Может ли кто-нибудь сообщить мне, как это возможно?
Спасибо
У меня есть таблица Hbase X, и я хочу создать точную копию ее и назвать ее Y. Может ли кто-нибудь сообщить мне, как это возможно?
Спасибо
Предполагая, что вы хотите скопировать таблицу в тот же кластер, вы можете использовать снимки HBase
в hbase shell
вы можете
snapshot 'sourceTable', 'sourceTable-snapshot'
clone_snapshot 'sourceTable-snapshot', 'newTable'
Команда CopyTable очень удобна для репликации таблиц HBase. Используйте его следующим образом:
hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=Y X;
использовать hbase shell
1. убедитесь, что вы снимете моментальный снимок в hbase-site.xml
<property>
<name>hbase.snapshot.enabled</name>
<value>true</value>
</property>
2. hbase > моментальный снимок 'x', 'snapshot_x'
3. hbase > clone_snapshot 'snapshot_x', 'another_x'
В соответствии с документацией HBase здесь (1, 2) являются параметрами.
Методология моментальных снимков может не работать, если вы используете более старую версию hbase https://issues.apache.org/jira/browse/HBASE-8742 , В этом случае вам, возможно, придется вручную скопировать схему hbase, а затем применить моментальный снимок или лучше обновить до установленной версии.
В версии проверки оболочки hbase
hbase(main):001:0> version
0.90.4, r1150278, Sun Jul 24 15:53:29 PDT 2011
если более старая версия 0.94.6, тогда вы должны использовать задания mapredeuce. моментальные снимки доступны с 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>
В-1)
./hbase org.apache.hadoop.hbase.mapreduce.Export
Usage: Export [-D <property=value>]* <tablename> <outputdir> [<versions> [<starttime> [<endtime>]]]
В-2) затем импортируйте любое имя, которое вы хотите
./hbase org.apache.hadoop.hbase.mapreduce.Import
Usage: Import <tablename> <inputdir>
это будет работать.
hbase org.apache.hadoop.hbase.mapreduce.Export tableA /hbase_export/tableA
hbase org.apache.hadoop.hbase.mapreduce.Import /hbase_export/tableA tableAcopy