实验报告
报告标题:MR-Hbase-Hive
学号:20190423
姓名:金玉洲
日期:2022-12-11
一、实验环境
- 操作系统:
windows10
centos7
- 相关软件(含版本号):
hadoop-2.6.0-cdh5.7.0
hbase-1.2.0-cdh5.7.0
hive-1.1.0-cdh5.7.0
mysql-connector-java-5.1.24-bin
zookeeper-3.4.5-cdh5.7.0
- 其它工具:
Vmware WorkStation 16 Pro
FinalShell 1.0.0.0
IntelliJ IDEA 2022.1
二、实验内容及其完成情况
(针对上述实验内容逐一详述实验过程)
(1) MapReduce 编程题 1:
上传气象数据代码:
1 | public static void main( String[] args ) throws Exception { |
MR程序代码:
WeatherMapper:
1 | public class WeatherMapper extends Mapper<LongWritable, Text, Text,LongWritable> { |
WeatherReducer:
1 | public class WeatherReducer extends Reducer<Text, LongWritable, Text,DoubleWritable> { |
下载的代码:
1 | public static void main( String[] args ) throws Exception { |
WeatherResultApp:
1 | public class WeatherResultApp { |
上传weather.txt文件
图表 1 上传weather.txt文件
数据文件上传成功
图表 2 数据文件上传成功
将jar上传到hadoop
图表 3 将jar上传到hadoop
虚拟机中运行得出结果
图表 4 虚拟机中运行得出结果
IDEA下载结果到本地
图表 5 IDEA下载结果到本地
查看Weatherresult.txt
图表 6 查看Weatherresult.txt
成功计算每月平均温度
图表 7 成功计算每月平均温度
(2) MapReduce 编程题 2:
上传四大名著代码:
1 | public static void main( String[] args ) throws Exception { |
MR程序代码:
WordCountMapper:
1 | public class WordCountMapper extends Mapper<LongWritable,Text, Text,LongWritable> { |
WordCountReducer:
1 | public class WordCountReducer extends Reducer<Text, LongWritable, Text,LongWritable> { |
下载的代码:
1 | public static void main( String[] args ) throws Exception { |
WordCountResultApp:
1 | public class WordCountResultApp { |
将四大名著合并起来上传
图表 8 将四大名著合并起来上传
中文分词只对两个词以上的进行
图表 9 中文分词只对两个词以上的进行
虚拟机中运行
图表 10 虚拟机中运行
IDEA中下载wordcountresult.txt
图表 11 IDEA中下载wordcountresult.txt
查看wordcountresult.txt
图表 12 查看wordcountresult.txt
IDEA中查看最终结果
图表 13 IDEA中查看最终结果
(3) Hbase 集群的安装配置(包括 Zookeeper 的分布式配置)
配置zookeeper环境变量
图表 14 配置zookeeper环境变量
配置临时文件夹路径
图表 15 配置临时文件夹路径
配置hbase的环境变量
图表 16 配置hbase的环境变量
配置hbase-env.sh
图表 17 配置hbase-env.sh
配置hbase-site.xml
图表 18 配置hbase-site.xml
配置分布式修改zoo.cfg
图表 19 配置分布式修改zoo.cfg
Zookeeper分布式启动成功
图表 20 Zookeeper分布式启动成功
分布式配置hbase-site.xml
图表 21 分布式配置hbase-site.xml
配置regionservers
图表 22 配置regionservers
将hbase拷贝给另外两台虚拟机
图表 23 将hbase拷贝给另外两台虚拟机
启动hdfs
图表 24 启动hdfs
启动成功
图表 25 启动成功
Start-hbase.sh启动成功
图表 26 Start-hbase.sh启动成功
Slave1的jps情况
图表 27 Slave1的jps情况
Slave2的jps情况
图表 28 Slave2的jps情况
60010端口有三台
图表 29 60010端口有三台
(4) Hbase 编程题
完整代码:
1 | public class StudentApp { |
统计java课程
图表 30 统计java课程
统计大数据课程
图表 31 统计大数据课程
不存在的课程
图表 32 不存在的课程
(5) Hive 的安装配置(包括 MySQL 的安装)
配置hive环境变量
图表 33 配置hive环境变量
拷贝hive-env.sh.template
图表 34 拷贝hive-env.sh.template
配置hadoop路径
图表 35 配置hadoop路径
Hive启动成功
图表 36 Hive启动成功
添加mysql资源库
图表 37 添加mysql资源库
修改mysql-community.repo
图表 38 修改mysql-community.repo
安装mysql
图表 39 安装mysql
Myql启动成功
图表 40 Myql启动成功
图表 41 找到临时密码
输入密码进入mysql
图表 42 输入密码进入mysql
配置hive-site.xml
图表 43 配置hive-site.xml
开启hiveserver2
图表 44 开启hiveserver2
转成后台运行,重新定位日志输出
图表 45 转成后台运行,重新定位日志输出
用beeline连接
图表 46 用beeline连接
(6) Hive编程题
上传music.txt到hdfs
图表 47 上传music.txt到hdfs
在50070端口查看music.txt
图表 48 在50070端口查看music.txt
创建表
图表 49 创建表
加载数据
图表 50 加载数据
查询表中的数据
图表 51 查询表中的数据
统计每首歌的播放次数
图表 52 统计每首歌的播放次数
三、实验总结
在统计某个课程的学生总成绩时,我先查询了该课程的行键,然后在学生表中查询以该行键为课程号的学生成绩,但是我忘记了课程号是以C开头的,最终导致始终查询不到任何数据,后来经过一步步排查才发现问题所在,需要在查询到的行键前加一个”C”。