前提:
在本地IDEA写完项目代码后,将整个项目打包上传到集群进行测试.
需要注意输入输出路径要写对
将两个文件上传到HDFS集群
# 上传文件 hadoop fs -put /opt/module/hadoop_file/input/friends.txt /opt/module/hadoop_file/input # 删除文件 hadoop fs -rm -f /opt/module/hadoop_file/input/friends.txt # 删除文件夹 hadoop fs -rm -r /opt/module/hadoop_file/input
开始启动MR程序进行jar包测试
# 运行MR程序
hadoop jar friends.jar com.lxz.friends.OneShareFriendsDriver
遇到的问题:
1.
报错信息:INFO mapreduce.Job: Task Id : attempt_1629344910248_0009_m_000000_0, Status : FAILED Error: java.io.IOException: Initialization of all the collectors failed. Error in last collector was :interface javax.xml.soap.Text
原因是在你的IDEA项目中, 依赖import javax.xml.soap.Text,应该import org.apache.hadoop.io.Text
2.
报错信息:INFO mapreduce.Job: Task Id : attempt_1607842602362_0032_m_000000_2, Status : FAIL
原因是你的输入文件中存在空格,仔细检查一下input文件书写格式
总结: MR还是比较费时费力的程序,优点在于只要自己写好程序的代码,调整好Mapper和Reducer的资源数,数据跑出来只是时间的问题.报错不可怕,一定要记得去hadoop安装的当前目录下的logs文件夹里去查看日志信息.