hadoop - ejemplo - Cómo copiar una tabla hbase existente
Tengo una tabla de Hbase X y quiero crear una copia exacta de ella y nombrarla Y. ¿Podría alguien decirme cómo es posible?
Gracias
El comando CopyTable es muy útil para replicar tablas HBase. Úsalo de la siguiente manera:
hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=Y X;
En hbase shell check version;
hbase(main):001:0> version
0.90.4, r1150278, Sun Jul 24 15:53:29 PDT 2011
Si la versión anterior de 0.94.6 debería usar los trabajos mapredeuce. las instantáneas están disponibles desde 0.94.6 si está arriba, puedes usar toby941 answer o puedes usar una de estas
UNA)
./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) luego importa con el nombre que quieras
./hbase org.apache.hadoop.hbase.mapreduce.Import
Usage: Import <tablename> <inputdir>
Es posible que la metodología de instantáneas no funcione si está en una versión anterior de hbase https://issues.apache.org/jira/browse/HBASE-8742 . En ese caso, es posible que deba copiar manualmente el esquema hbase y luego aplicar una instantánea o mejor para actualizar a una versión fija.
esto funcionará ..
hbase org.apache.hadoop.hbase.mapreduce.Export tableA /hbase_export/tableA
hbase org.apache.hadoop.hbase.mapreduce.Import /hbase_export/tableA tableAcopy
usar shell hbase
1. Asegúrate de enbale snapshot en hbase-site.xml
<property>
<name>hbase.snapshot.enabled</name>
<value>true</value>
</property>
2. hbase> snapshot ''x'', ''snapshot_x''
3. hbase> clone_snapshot ''snapshot_x'', ''another_x''
Suponiendo que desea copiar la tabla en el mismo clúster, puede usar instantáneas HBase en el hbase shell
que puede
snapshot ''sourceTable'', ''sourceTable-snapshot''
clone_snapshot ''sourceTable-snapshot'', ''newTable''