任务前提
任务执行先决条件:确保Hadoop启动,各节点服务进程完整,Hadoop2上启动历史日志服务进程,以便于查看任务执行状态。
任务说明:
作业运行方式有两种:Hadoop集群上直接进行命令操作;使用JAVA API对Hadoop集群进行操作以执行任务,以下任务操作两者兼而有之。
任务概述:
启动集群,获取任务操作源文件,将其上传至虚拟机本地,使用hdfs文件命令上传至HDFS文件系统,创建Java文件,将执行代码写入,填充源文件在HDFS的路径和任务文件输出路径,运行程序修改报错,打成jar包,上传至虚拟机本地并运行jar包,文件系统和历史日志查看结果。
任务步骤
2.1获取任务源文件,修改上传HDFS
任务分工:邵明月 组内完成进度:100%
注:资料源文件有误,需下载后自行修改:复制章节案例三的文件内容,并将两列数据之间的空格使用TAB键替换。
修改后的文件上传至虚拟机本地,如此才可进行文件上传工作
2.2上传文件至集群文件系统
任务分工:邵明月 组内完成进度:100%
使用HDFS文件系统命令上传文件
[root@hadoop1 hadoop-3.1.3]# hdfs dfs -put goods_click.txt /mapreduce2
命令解析: 使用hdfs dfs命令put参数将 目标文件 上传至HDFS上的位置
这里因为源文件就在hadoop-3.1.3目录下,所以不用指出路径,如果在其他目录要指出,这里的HDFS上传位置就是Java api 里的文件输入路径
2.3创建Java文件,添加文件输入路径
任务分工:邵明月 组内完成进度:100%
创建文件
Mapreduce文件下必须有jar包库,没有jar包将无法调用mapreduce与hdfs功能,详细参考学习通章节
创建java文件并写入代码,学习通复制
修改路径
2.3.1运行java程序并修改报错
运行Java代码,修改相关报错。
1)部分无伤大雅的报错
可直接打成jar包(比如:“任务未能完成”或main方法后为空白报错)
2)低级错误:
某些文件“already exist”,那就删除相关文件;
“hadoopX connot conection...”,没连接,检查集群是否正常开启;
某些文件“not exist”,那就查看文件名又没多或少了某些东西,回归本质,检查代码
3)常见错误:
空指针错误,添加hadoop.dll文件到C:\Windows\System32,再运行代码
奇葩错误移步CSDN和百度
2.4将程序打成jar包,在hadoop上运行
任务分工:常峥 组内完成进度:100%
在eclipse中将Java文件打成jar包,上传至虚拟机本地目录hadoop-3.1.3(这里是方便运行,不用写路径)
上传文件后在文件目录下运行jar包,注意命令格式。
(1)上传jar包
(2)运行jar包
[root@hadoop1 hadoop-3.1.3]#hadoop jar OneSort.jar Demo.OneSort
(3)运行正常图
任务分工:鲁超 组内完成进度:100%
这代表我们任务基本上已经完成
2.5查看任务运行状态和详细信息
前提是你已开启历史日志服务,web端输入地址:http://hadoop2:19888/jobhistory
查看文件执行结果,hdfs文件系统web端地址: http://hadoop1:9870
正确用户点击次数排序结果
小组成员:
邵明月、杜锦浩、常峥、鲁超、王俊洋 文档提供者:邵明月