如何为HBase表导出DDL

时间:2018-07-25 20:28:54

标签: hbase ddl

如何为hbase表导出ddl?我想导出ddl并在另一个环境中使用它来重新创建表。 谢谢

2 个答案:

答案 0 :(得分:2)

  1. 创建快照
  

hbase外壳

hbase> snapshot 'myTable', 'myTableSnapshot-122112'
  1. 确保已列出。
  

hbase> list_snapshots

  1. 将快照导出到其他群集。在终端中执行以下命令
  

hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot    从复制   hdfs:// {from_cluster_namenode:port} / hbase / data /-复制到   hdfs:// {to_cluster_namenode:port} / hbase / data / -mappers 16

     

这将触发MR作业来传输快照。

  1. 登录到其他群集,确保快照已传输到新群集。
hbase> hbase shell

hbase> list_snapshots
  1. 将快照还原到新群集中。 hbase shell中的以下命令。
  

hbase> restore_snapshot'snapshotName'

答案 1 :(得分:1)

据我对您的要求的了解,您正在寻找与RBDMS(例如oracle)相似的东西。

在这种情况下,仅导出表结构没有多大意义 在HBase情况下,因为HBase表可以包含非结构化数据。 我的意思是,列限定符(与Oracle列等效)的数量不是 固定。

如果要使用给定的列族和其他参数(如复制因子)创建表,则可以在hbase shell中使用以下命令。

describe TABLE_NAME

这将为您提供必需的信息,您可以从中使用给定的列族等在任何hbase实例上创建表。