如何导出hbase表的ddl?我想导出ddl并在另一个环境中使用它来重新创建表。谢谢
ar7v8xwq1#
根据我对您需求的了解,您正在寻找类似rbdms(例如oracle)提供的产品。如果是这样的话,那么在hbase中单独导出表结构就没有多大意义,因为hbase表可能包含非结构化数据。我的意思是,列限定符的数量(相当于oracle列)不是固定的。如果您想用给定的列族和其他参数(如复制因子等)创建表,可以在hbase shell中使用下面的命令。 describe TABLE_NAME 这将为您提供所需的信息,从中您可以在任何具有给定列族等的hbase示例上创建表。
describe TABLE_NAME
c8ib6hqw2#
创建快照hbase外壳
hbase> snapshot 'myTable', 'myTableSnapshot-122112'
确保它已列出。hbase>列出快照将快照导出到其他群集。在终端中执行下面的命令hbase org.apache.hadoop.hbase.snapshot.exportsnapshot-snapshot-copy from hdfs://{来自\u集群_namenode:port}/hbase/data/-复制到hdfs://{到\u群集_namenode:port}/hbase/数据/-Map器16这将触发mr作业来传输快照。登录到其他集群,确保快照传输到新集群。
hbase> hbase shell hbase> list_snapshots
在新群集中还原快照。下面是hbase shell中的命令。hbase>还原快照'snapshotname'
2条答案
按热度按时间ar7v8xwq1#
根据我对您需求的了解,您正在寻找类似rbdms(例如oracle)提供的产品。
如果是这样的话,那么在hbase中单独导出表结构就没有多大意义,因为hbase表可能包含非结构化数据。我的意思是,列限定符的数量(相当于oracle列)不是固定的。
如果您想用给定的列族和其他参数(如复制因子等)创建表,可以在hbase shell中使用下面的命令。
describe TABLE_NAME
这将为您提供所需的信息,从中您可以在任何具有给定列族等的hbase示例上创建表。c8ib6hqw2#
创建快照
hbase外壳
确保它已列出。
hbase>列出快照
将快照导出到其他群集。在终端中执行下面的命令
hbase org.apache.hadoop.hbase.snapshot.exportsnapshot-snapshot-copy from hdfs://{来自\u集群_namenode:port}/hbase/data/-复制到hdfs://{到\u群集_namenode:port}/hbase/数据/-Map器16
这将触发mr作业来传输快照。
登录到其他集群,确保快照传输到新集群。
在新群集中还原快照。下面是hbase shell中的命令。
hbase>还原快照'snapshotname'