Hadoop综合大作业
大数据分析
本次作业是在期中大作业的基础上利用hadoop和hive技术进行大数据分析
准备数据(下图为SCV截图):
1.对CSV文件进行预处理生成无标题文本文件,将爬虫大作业产生的csv文件上传到HDFS
首先,我们需要在本地中创建一个/usr/local/bigdatacase/dataset文件夹,具体的步骤为:
① cd /usr/local
② sudo mkdir bigdatacase
③ cd bigdatacase/
④ sudo mkdir dataset
⑤ cd dataset/
如下图所示:
其次,我们把lbaiduxinxi1.csv文件放到下载这个文件夹中,并使用命令把baiduxinxi1.csv文件拷贝到我们刚刚所创建的文件夹中,具体步骤如下:
① sudo cp /home/chen/下载/lagoupy.csv /usr/local/bigdatacase/dataset/ #把baiduxinxi1csv文件拷到刚刚所创建的文件夹中
② head -5 lbaiduxinxi1.csv #查看这个文件的前五行
如下图所示:
对CSV文件进行预处理生成无标题文本文件,步骤如下:
① sudo sed -i '1d' baiduxinxi1.csv #删除第一行记录
② head -5 baiduxinxi1.csv #查看前五行记录
如下图所示:
接着,启动hadoop,步骤如下:
① start-all.sh #启动hadoop
② jps #查看hadoop是否启动成功
如下图所示:
最后,我们把本地的文件上传至HDFS中,步骤如下:
① hdfs dfs -mkdir -p /bigdatacase/dataset #在hdfs上新建/bigdatacase/dataset
② hdfs dfs -ls /
③ hdfs dfs -put ./baiduxinxi1.csv /bigdatacase/dataset #把本地文件lagoupy.csv上传至hdfs中
④ hdfs dfs -ls /bigdatacase/dataset #查看
⑤ hdfs dfs -cat /bigdatacase/dataset/baiduxinxi1.csv | head -5 #查看hdfs中baiduxinxi1.csv的前五行
如下图所示:
2.把hdfs中的文本文件最终导入到数据仓库Hive中
首先,启动hive,步骤如下:
① service mysql start #启动mysql数据库
② cd /usr/local/hive
③ ./bin/hive #启动hive
如下图所示:
其次,把hdfs中的文本文件最终导入到数据仓库Hive中,并在Hive中查看并分析数据,具体步骤如下:
① create database dbpy; -- 创建数据库dbpy
② use dbpy;
③ create external table lagou_py(id int,positionID string,city string,companyFullName string,companyLabelList string,district string,education string,firstType string,positionName string,salary string,workYear string) row format delimited fields terminated by ',' stored as textfile location '/bigdatacase/dataset/'; -- 创建表lagou_py并把hdfs中/bigdatacase/dataset/目录下的数据加载到表中
④ select * from lagou_py limit 10; -- 查看lagou_py中前10行的数据
如下图所示:
3.用Hive对爬虫大作业产生的进行数据分析
用聚合函数count()计算出表内有多少条行数据 hive> select count(*) from bigdata_user;
查出数据有9987条。