You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Hadoop MapReduce执行WordCount遇Permission denied报错求解决

解决Hadoop WordCount权限拒绝(Permission denied)问题

以下是几个可行的排查和解决步骤:

1. 核查HDFS路径权限

首先确认HDFS上输入输出路径的权限是否允许当前用户操作:

  • 查看路径权限:
    hdfs dfs -ls /tests/wordcount
    
  • 如果当前用户没有读input1或写output1的权限(注意:output1目录不存在时,其父目录/tests/wordcount需要有写权限),调整权限:
    # 给父目录添加读写执行权限(按需调整,避免过度开放)
    hdfs dfs -chmod 755 /tests/wordcount
    # 或者将路径所有权转移到当前用户(替换your_username为实际用户名,hadoop为Hadoop用户组)
    hdfs dfs -chown -R your_username:hadoop /tests/wordcount
    

2. 切换超级用户执行任务

如果普通用户权限受限,切换到Hadoop超级用户(如hdfs或hadoop)执行命令:

su hdfs
# 执行WordCount命令
${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.3.jar wordcount /tests/wordcount/input1 /tests/wordcount/output1

切换用户后需确保HADOOP_HOME环境变量正确,若未配置可直接使用jar包的绝对路径。

3. 确认路径是否指向HDFS

避免混淆本地文件系统和HDFS路径:

  • 若输入文件在本地,先上传到HDFS:
    hdfs dfs -put /本地输入文件路径 /tests/wordcount/input1
    
  • WordCount默认处理HDFS路径,若要使用本地路径需添加file://前缀,但不推荐,优先确保输入输出都在HDFS上。

4. 检查HDFS权限配置(测试环境慎用)

若之前修改hdfs-site.xml未生效,可确认配置参数:

  • 打开hdfs-site.xml,检查是否添加了正确的权限开关:
    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
    
  • 修改后重启HDFS服务:
    stop-dfs.sh
    start-dfs.sh
    

注意:关闭权限检查仅适用于测试环境,生产环境必须保持权限开启,通过合理的权限分配解决问题。

5. 排查YARN队列权限

部分权限问题来自YARN资源队列的限制:

  • 检查yarn-site.xml中的yarn.acl.enable参数,若开启了ACL控制,需确保当前用户有提交任务到默认队列的权限;
  • 测试环境可临时关闭ACL(生产环境禁用):
    <property>
        <name>yarn.acl.enable</name>
        <value>false</value>
    </property>
    
  • 修改后重启YARN服务:
    stop-yarn.sh
    start-yarn.sh
    

内容的提问来源于stack exchange,提问作者jeff witcker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 05:15:38