执行MapReduce的Jar包报错:Exception in thread main ExitCodeException ex

举报
WHYBIGDATA 发表于 2023/01/11 10:59:10 2023/01/11
【摘要】 执行MapReduce的Jar包报错:Exception in thread main ExitCodeException exitCode=1

执行MapReduce的Jar包报错:Exception in thread main ExitCodeException exitCode=1


一、实验环境

  • CentOS7.5
  • Hadoop3.1.3
  • 伪分布式模式
  • IDEA

二、报错信息

1.执行MapReduce的Jar包报错:Exception in thread main ExitCodeException exitCode=1 chmod 无法访问tmphadoopmapredstagingzhangsan1447658824.stagingjob_local1447658824_0001 没有那个文件或目录

在这里插入图片描述

文件已经确定是存在的

2.根据报错信息,推断是权限问题,将Hadoop安装目录下的tmp目录权限改为777

# 先进入到Hadoop安装目录
chmod 777 ./tmp

但是这个方法并没有解决该报错

3.查找网上,有提到关于HDFS默认的group是超级用户组supergroup,需要更改为当前用户。相关操作见三三、解决方法

三、解决方法:

在Hadoop的Web界面可以看到group的权限是supergroup,将普通用户增加到HDFS的超级用户组supergroup

1.步骤

先切换到root用户

  • 提前查看supergroup相关信息
[root@hadoop112 zhangsan]# group supergroup /etc/group

bash: group: 未找到命令…

  • 继续过滤查找
[root@hadoop112 zhangsan]#grep supergroup /etc/group

没有输出结果

  • 增加supergroup组
[root@hadoop112 zhangsan]#groupadd supergroup
  • 再次过滤查找
[root@hadoop112 zhangsan]#grep supergroup /etc/group

supergroup:x:1001:

  • 将当前用户增加到supergroup组
[root@hadoop112 zhangsan]# usermod -a -G supergroup zhangsan
  • 查看用户是否成功添加到supergroup组
[root@hadoop112 zhangsan]# id zhangsan

uid=1000(zhangsan) gid=1000(zhangsan) 组=1000(yzhangsanoona),1001(supergroup)

  • 刷新用户到组的映射信息
[root@hadoop112 zhangsan]# hdfs dfsadmin -refreshUserToGroupsMappings

Refresh user to groups mapping successful

  • 切换到普通用户
[root@hadoop112 zhangsan]# su zhangsan
[root@hadoop112 zhangsan]# hdfs dfsadmin -report

Configured Capacity: 38966558720 (36.29 GB)
Present Capacity: 25293688832 (23.56 GB)
DFS Remaining: 25293635584 (23.56 GB)
DFS Used: 53248 (52 KB)
DFS Used%: 0.00%
Replicated Blocks:
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0
Low redundancy blocks with highest priority to recover: 0
Pending deletion blocks: 0
Erasure Coded Block Groups:
Low redundancy block groups: 0
Block groups with corrupt internal blocks: 0
Missing block groups: 0
Low redundancy blocks with highest priority to recover: 0
Pending deletion blocks: 0


Live datanodes (1):

Name: 192.168.149.112:9866 (hadoop112)
Hostname: hadoop112
Decommission Status : Normal
Configured Capacity: 38966558720 (36.29 GB)
DFS Used: 53248 (52 KB)
Non DFS Used: 11669880832 (10.87 GB)
DFS Remaining: 25293635584 (23.56 GB)
DFS Used%: 0.00%
DFS Remaining%: 64.91%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Thu May 12 23:07:35 CST 2022
Last Block Report: Thu May 12 22:59:14 CST 2022
Num of Blocks: 2

2.遗憾点

这个方法仍然没有解决问题

四、另外一个问题

命令行执行MapReduce的Jar包,MR可以成功运行并输出正确结果,但是执行过程中自动地将IDEA关闭了。

猜想:yarn资源不够用? 但是只是测试一个简单的MR样例,应该不至于吧?

记录一下这个错误

五、参考资料:

https://cloud.tencent.com/developer/article/1545624#:~:text=Hadoop本身,S用户和组即可。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。