Hadoop运行MR程序时出现的报错

前提:

  在本地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文件夹里去查看日志信息.

 

posted @   明明就-  阅读(284)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示