在日常的生产环境中,通常需要将一张已有的hbase表格直接复制给在hbase中的另一张表格,那么可以通过命令行直接调用CopyToTable来实现。
首先在hbase中有一张表,如下:
hbase(main):018:0> scan 'table1'
ROW COLUMN+CELL
1 column=f1:age, timestamp=1469069255119, value=10
1 column=f1:gender, timestamp=1469069255119, value=male
1 column=f1:name, timestamp=1469069255119, value=zhangsan
2 column=f1:name, timestamp=1469069255119, value=lisi
3 column=f1:name, timestamp=1469069255119, value=wangwu
4 column=f1:birthday, timestamp=1469069255119, value=1993
4 column=f1:name, timestamp=1469069255119, value=zhaoliu
4 row(s) in 0.0300 seconds
那么首先需要在hbase中,创建另一张table2的表格,采用如下的命令:
hbase(main):014:0> create 'table2','f1'
0 row(s) in 1.3000 seconds
=> Hbase::Table - table2
然后通过如下命令实现复制:
hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=table2 table1
可以在hbase中通过scan 'table2'来查看表格
hbase(main):026:0> scan 'table2'
ROW COLUMN+CELL
1 column=f1:age, timestamp=1469069255119, value=10
1 column=f1:gender, timestamp=1469069255119, value=male
1 column=f1:name, timestamp=1469069255119, value=zhangsan
2 column=f1:name, timestamp=1469069255119, value=lisi
3 column=f1:name, timestamp=1469069255119, value=wangwu
4 column=f1:birthday, timestamp=1469069255119, value=1993
4 column=f1:name, timestamp=1469069255119, value=zhaoliu
4 row(s) in 0.0260 seconds
简单地通过命令行的CopyToTable就可以将hbase中的某张表格复制给另一张表格中。