HBase入门(五)

一.HBase的MapReduce的调用
1.1查看HBase执行Mapreduce所依赖的jar包
bin/hbase mapredcp
1.2执行的环境变量的导入

$ 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`
echo $HADOOP_CLASSPATH查看是否导入成功

1.3执行官方的Mapreduce任务
1.3.1统计student表中有多少行数据

/opt/app/hadoop-2.5.0-cdh5.3.6/bin/yarn jar lib/hbase-server-0.98.6-cdh5.3.6.jar rowcount student

1.3.2使用Mapreduce任务将数据从HDFS导入到HBase
1.创建一个.tsv格式的文件
vi fruit.tsv
2.创建HBase表
bin/hbase shell
create ‘fruit’,‘info’
3.在HDFS中创建input_fruit文件夹并上传fruit.tsv文件
hdfs dfs -mkdir /input_fruit/
hdfs dfs -put fruit.tsv /input_fruit/
4.执行Mapreduce到HBase的fruit表中

$ /opt/modules/cdh/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.itguigu.com:8020/input_fruit

5.使用scan命令查看导入后的数据是否成功

二.BulkLoad加载文件到HBase表
1.功能:将本地数据导入到HBase中
2.原理:BulkLoad会将tsv/csv格式的文件编成hfile文件,然后再进行数据的导入,这样可以避免大数据导入时造成的集群写入压力过大.
3.作用:减少HBase集群插入数据的压力
提高了Job运行速度,降低了Job执行时间.

例:

1.配置临时环境变量

$ 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`

2.在HBase中创建一个新的HBase表

$ bin/hbase shell
hbase(main):001:0> create 'fruit_bulkload','info'

3.将tsv/csv文件转化为HFile(确保你的fruit格式的文件fruit.tsv在inut目录下)

$ /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/bin/yarn jar \

/opt/modules/cdh/hbase-0.98.6-cdh5.3.6/lib/hbase-server-0.98.6-cdh5.3.6.jar importtsv \

-Dimporttsv.bulk.output=/output_file \

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

fruit hdfs://hadoop-senior01.itguigu.com:8020/input_fruit

4.把HFile导入到HBase表fruit_bulkload

$ /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/bin/yarn jar \

/opt/modules/cdh/hbase-0.98.6-cdh5.3.6/lib/hbase-server-0.98.6-cdh5.3.6.jar \

completebulkload /output_file fruit_bulkload

5.查看bulkload数据导入是否成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值