Подтвердить что ты не робот

Как скопировать существующую таблицу hbase

У меня есть таблица Hbase X, и я хочу создать точную копию ее и назвать ее Y. Может ли кто-нибудь сообщить мне, как это возможно?

Спасибо

4b9b3361

Ответ 1

Предполагая, что вы хотите скопировать таблицу в тот же кластер, вы можете использовать снимки HBase в hbase shell вы можете

snapshot 'sourceTable', 'sourceTable-snapshot'
clone_snapshot 'sourceTable-snapshot', 'newTable'

Ответ 2

Команда CopyTable очень удобна для репликации таблиц HBase. Используйте его следующим образом:

hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=Y X;

Ответ 3

использовать 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'

Ответ 4

В соответствии с документацией HBase здесь (1, 2) являются параметрами.

Ответ 5

Методология моментальных снимков может не работать, если вы используете более старую версию hbase https://issues.apache.org/jira/browse/HBASE-8742 , В этом случае вам, возможно, придется вручную скопировать схему hbase, а затем применить моментальный снимок или лучше обновить до установленной версии.

Ответ 6

В версии проверки оболочки 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>

Ответ 7

это будет работать.

hbase org.apache.hadoop.hbase.mapreduce.Export tableA /hbase_export/tableA

hbase org.apache.hadoop.hbase.mapreduce.Import /hbase_export/tableA tableAcopy