HBase使用命令运行mapreduce程序以及tsv,csv导入到HBase操作-05

10 篇文章 0 订阅

先配置hbase和hadoop的环境变量,因为它是使用命令执行mapreduce程序,环境变量只是临时用一下,不用永久配置到/etc/profile里面,执行export命令就是在当前会话中可以使用这个环境变量.

执行环境变量导入

$ export HBASE_HOME=/opt/modules/cdh/hbase-0.98.6-cdh5.3.6/

$ export HADOOP_HOME=/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6

$ export HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp`

 案例一:统计person表中有多少行数据,也就是有多少个rowkey

/opt/modules/hadoop-2.5.0-cdh5.3.6/bin/yarn jar lib/hbase-server-0.98.6-cdh5.3.6.jar rowcounter person

执行的时候查看yarn客户端就会发现执行了一个mapreduce程序

就会把结果打印在控制台上

案例二:使用MapReduce任务将数据从文件中导入到HBase 

先说两种文件格式,tsv和csv,它们两个都可以使用excel打开

使用文本编辑这两个文件的时候,在tsc里面使用/t分隔符分开,在csv里使用逗号分隔开,然后就可以转换为excel格式

创建一个tsv文件

在HBase创建一个表,因为这个mapreduce程序不会自动创建表

然后把新创建的文件放到hdfs上面去,因为它是要从hdfs上读的

执行MapReduce到HBase的fruit表中

如果是csv文件就改为importcsv

下面这个是指定哪个字段为什么列名

-Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:color

/opt/modules/hadoop-2.5.0-cdh5.3.6/bin/yarn jar lib/hbase-server-0.98.6-cdh5.3.6.jar importtsv -Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:color fruit hdfs://hadoop-senior01.buba.com:8020/input/fruit       

下面这图是它的一个执行流程,当大批量数据转换的时候造成的压力会很大,从tsv文件转换为HFile的这个过程很慢,HFile跟HBase表的映射快.

优化方案:BulkLoad加载文件到HBase表

原理

BulkLoad会将tsv/csv格式的文件编程hfile文件,然后再进行数据的导入,这样可以避免大量数据导入时造成的集群写入压力过大。

作用

* 减小HBase集群插入数据的压力

* 提高了Job运行的速度,降低了Job执行时间

操作过程

把tsv文件转换为HFile文件

-Dimporttsv.bulk.output   输出文件指定路径

/opt/modules/hadoop-2.5.0-cdh5.3.6/bin/yarn jar /opt/modules/hbase-0.98.6-cdh5.3.6/lib/hbase-server-0.98.6-cdh5.3.6.jar importtsv -Dimporttsv.bulk.output=/output/furit -Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:color fruit hdfs://hadoop-senior01.buba.com:8020/input/fruit/

把HFile导入到HBase表fruit_bulkload

执行下面这个mapreduce的时候明显感觉到速度提升很大,以后推荐使用这种方式,转换弄几台服务器干转换的工作.

/opt/modules/hadoop-2.5.0-cdh5.3.6/bin/yarn jar /opt/modules/hbase-0.98.6-cdh5.3.6/lib/hbase-server-0.98.6-cdh5.3.6.jar completebulkload /output/furit fruit_bulkload

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值