一、项目要求
二、项目所需数据
使用爬虫对拉勾网进行爬取,爬取和python有关的数据。同时对数据进行处理,把薪资处理成int型,取中间值。
三、配置虚拟机
结合原本教学中已经配置好的三台虚拟机,之后创建第四台虚拟机hadoop004
之后修改IP地址、主机名、建立映射关系等。
同时使用zookeeper让Hadoop004加入原本的集群中,但是我没配,就没有图了。
四、flume日志采集(使用负载均衡)
过程:把data.txt上传到虚拟机中,同时使用flume监听另一个txt文件,使用重定向,将data.txt文件中的内容写入到这个txt文件中,将内容上传到HDFS中。
hadoop001的文件,和另外两台不一样。有需要的可以留言。
分别在01、02、03使用命令启动,先启动02和03
文件内容写入python.txt
cat pydata.txt >>python.txt
2.上传文件、查看
随机选择一个文件,下载到本地,查看。
这个薪资没有处理,可以先处理再传,也可以传两遍。
五、安装hive
1.下载hive压缩包并上传到虚拟机。
2.解压
3.配置、配置hive-site.xml
4.安装MySQL驱动、更换guava.jar
先删除低版本的
复制
5.进行初始化
./schematool -dbType mysql -initSchema
中间会有大片空白
6.启动Hadoop集群、Windows连接MySQL数据库
7.启动hive
8.出现问题,解决问题
解决办法,另一篇博客有
警告解决办法
9.进入hive
六、数据清洗分析——hive(azkaban)
过程:建立pydata数据库;使用它;建立data表格,从内部导入数据;建立分析表,包括地方岗位表,地方薪资表、学历薪资表和经验薪资表。之后逐个添加数据。
使用azkabban进行调度
新建job文件,编写命令,并打成压缩包。
在azkaban中新建项目,导入压缩包,之后执行这个项目。
建立sql文件,存放语句。这些语句也可以在hive中一个一个执行。这里由于是在hive中已经完成了数据分析的再次尝试,所以数据库名字不太一样,没有影响。
七、sqoop连接数据库,传输数据
sqoop连接数据库
把数据打开远程连接,hadoop也已经开启了。
数据库一致,连接成功。
2.建立数据库和表格。
建立pydata数据库,使用pydata,在下面建立岗位地方表jobname、地方薪资表address_sal、学历薪资表edu_sal和经验薪资表exper_sal。
3.利用sqoop传输数据
3.1岗位地方表jobname
这里只有传输的数据的表格不太一样,语句的其余地方不变
问题,很奇怪的问题
明明语句没有任何问题,但是就不成功,而且报错几乎没有。
这里的我是把端口前面的IP地址换成了主机名或者localhost或者是local host的IP地址,我之前是localhost的不行,换成虚拟机的IP就行了。有的人是连其他的虚拟机也有MySQL,可以尝试其他虚拟机的IP地址。
八、数据可视化
我这里只是一个例子,做的是静态的图片。如果想要做动态的,可以使用springboot,进行尝试。