6.HBase_应用_常用数据迁移方式

一般情况下,我们的数据来源是:RDBMS或日志文件。数据迁移常用方式:使用HBase Put方式、HBase自带MR方式、bulk load工具方式。

Java API操作HBase Put、自定义HBase MR两种方式,我们在前面已经使用过了,重点看一下importtsv、bulk load方式。

1.HBase使用importtsv导入数据

实际上类似与我们自己写的mapreduce程序迁移数据

# 1. 设置环境变量
export HBASE_HOME=/usr/hdp/2.5.3.0-37/hbase
export HADOOP_HOME=/usr/hdp/2.5.3.0-37/hadoop
export HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase classpath`
# 不使用mapredcp而使用classpath的原因是classpath中带有zookeeper需要加载的lib包
# export HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp` 

# 2. 使用hbase自带的importtsv工具
# 第一行:执行jar包    第二行:被导入数据的hbase表列(默认文件格式制表符隔开)    
# 第三行:hbase表    第四行:存放加载数据文件的hdfs目录
yarn jar /usr/hdp/2.5.3.0-37/hbase/lib/hbase-server-1.1.2.2.5.3.0-37.jar importtsv \
-Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:age,info:address \
emp \
/user/hbase/importtsv

2.HBase使用bulk load导入数据

利用HBase数据信息以特定数据格式存放在HDFS上,直接在HDFS中生成HFile持久化数据文件,然后上传到合适位置,即:完成巨量数据快速入库。配合mapreduce完成,高效便捷,不占用region资源,在大数据量写入时能极大的提高写入效率,降低HBase节点写入的压力。

# 1. 设置HADOOP_CLASSPATH环境变量
export HBASE_HOME=/usr/hdp/2.5.3.0-37/hbase
export HADOOP_HOME=/usr/hdp/2.5.3.0-37/hadoop
export HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase classpath`
# 不使用mapredcp而使用classpath的原因是classpath中带有zookeeper需要加载的lib包
# export HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp` 

# 2. 使用importtsv工具生成HFile文件
# 第一行:执行jar包    第二行:指定
yarn jar /usr/hdp/2.5.3.0-37/hbase/lib/hbase-server-1.1.2.2.5.3.0-37.jar importtsv \
-Dimporttsv.separator=, \
-Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:age,info:address \
-Dimporttsv.bulk.output=/user/hbase/hfileoutput \
emp \
/user/hbase/importtsv

# 3. 使用hbase的MR工具completebulkload
#    将生成的hfile文件移动到hbase regions对应的hdfs路径,以完成hbase数据的加载
yarn jar /usr/hdp/2.5.3.0-37/hbase/lib/hbase-server-1.1.2.2.5.3.0-37.jar completebulkload \
/user/hbase/hfileoutput \
emp 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值