解决本地运行MR程序访问权限问题

发布于:2025-02-10 ⋅ 阅读:(65) ⋅ 点赞:(0)

1. 提出问题

  • 运行DeduplicateIPsDriver类,抛出如下异常:
    在这里插入图片描述
  • 该错误信息表明在尝试运行 DeduplicateIPsDriver 类时,遇到了 HDFS(Hadoop 分布式文件系统)的权限问题。具体来说,用户 huawei 没有对 /deduplicateips 目录的写权限。该目录的所有者是 root,所属组是 supergroup,当前的权限设置(drwxr-xr-x)只允许所有者进行写操作,而其他用户只能读取和执行。

2. 解决问题

2.1 临时解决方案

  • 执行命令:hdfs dfs -chmod -R 775 /deduplicateips,通过设置权限,确保只有授权用户或组可以修改/deduplicateips目录中的内容,同时其他用户可以读取和执行。
    在这里插入图片描述
  • 执行命令:hdfs dfs -chown -R huawei:supergroup /deduplicateips,更改所有者:将/deduplicateips目录及其内容的所有者设置为 huawei,这意味着huawei用户对该目录及其内容拥有完全控制权。更改组:将/deduplicateips目录及其内容的组设置为 supergroup,这意味着supergroup组的成员可以根据组权限访问该目录及其内容。
    在这里插入图片描述
  • 再次运行DeduplicateIPsDriver
    在这里插入图片描述
  • 换一个目录来做,又会遇到同样的权限问题,还需要执行上述两条命令来设置权限。

2.2 永久解决方案

  • Hadoop集群三个节点的hdfs-site.xml文件添加一个属性
  • 执行命令:vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml
    在这里插入图片描述
<!--设置HDFS访问权限检查,false表示关闭-->
<property>
    <name>dfs.permissions.enabled</name>
    <value>false</value>
</property>
  • 重启Hadoop服务,就可以彻底解决本地运行MR程序访问权限问题。

3. 小结

  • 在运行DeduplicateIPsDriver类时,遇到HDFS访问权限问题。临时解决方案是通过hdfs dfs -chmodhdfs dfs -chown命令调整目录权限和所有者。永久解决方案是在Hadoop集群的hdfs-site.xml文件中添加dfs.permissions.enabled属性并设置为false,关闭权限检查,重启Hadoop服务后彻底解决问题。

网站公告

今日签到

点亮在社区的每一天
去签到