实验目的
理解HDFS、MapReduce和Hbase的集成使用
掌握快速导入数据到Hbase的方法
掌握利用MapReduce接受Hbase数据输入
掌握利用MapReduce输出到Hbase的应用
一、 MapReduce与Hbase的集成
1、 将hbase-site.xml文件复制到$HADOOP_HOME/etc/hadoop下
2、编译$HADOOP_HOME/etc/hadoop/hadoop-env.sh文件,增加以下内容
测试环境是否配置正确
二、音乐排行榜实现流程
1、批量数据导入
(1)将测试数据生成.txt文件,各列之间使用制表符进行分割,并将文件上传至HDFS目录:/input2/music
(2)通过importtsv准备数据,从MapReduce作业生成Hbase数据文件HFile到指定目录temp
(3)通过importtsv命令运行成功后可在/user/hduser/temp目录下找到生成的HFile文件
(4)通过浏览器访问地址http://192.168.10.111:8088
(5)使用completebulkload将temp目录移动到Hregion中完成数据加载
(6)查看将测试数据导入到Hbase
2、Hbase MapReduce API-运行TableMapperDemo
自定义TableMapper
运行TableMapper
手动加载MapReduce与Hbase的第三方依赖包文件(此代码注释掉,不执行)
修改集群中所有节点的yarn-site.xml文件,添加如下内容
手动加载MapReduce与HBase的第三方依赖包文件;选中要导出的程序并单击鼠标右键,选择Export
将生成TableMapperDemo的jar文件,并放入hadoop集群
添加第三方依赖文件,使用-libjars手动添加jar文件
在Eclipse上运行不了主要是因为Eclipse找不到那个类,可以通过项目打包成jar包,然后为程序指定jar文件路径
遇到问题:
在使用completebulkload将temp目录移动到HRegion中完成数据加载时,由于输出的路径因为配置文件不同而导致错误。
解决办法:使用completebulkload将temp目录写成完整路径。