1、将数据导出
$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.Export
-Dhbase.client.scanner.caching=1000
-Dhbase.export.scanner.batch=10 TableName(导出的表名) hdfs://host:8020/user/hbase/TableName_HDFS(导出到HDFS目录)
2、使用Import将Export的数据转换为HFile
$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.Import
-Dimport.bulk.output=/user/hbase/TableName_OutPut(HDFS导出目录,为了下一步导入使用) TableName(表名) /user/hbase/TableName_HDFS(1中的最后的目录)
3、将HFile移动到表TableName对应的Hbase目录
$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /user/hbase/TableName_OutPut(2中的HDFS导出目录) TableName (表名)
【HBase数据Export & Import】具体目录对应关系如上标注。此方式对集群造成的压力会比较小。
推荐阅读
- HBase的 rowkey 设计原则
- HBase 数据存储结构详细解读
- hadoop|Import/Export实现hbase集群间迁移
- 实战大数据,HBase 性能调优指南
- HBase tableExists() 作用就是判断某个表是否存在
- java hbase ddl alter 添加新的列族
- hbase|Hbase数据导出实例
- 大数据|HBase导出CSV格式数据的方法
- Hbase数据的导入导出以及优化