Hadoop 2.7.x Permission denied: user=dr.who, access=READ_EXECUTE, inode="/tmp"问题解决

原创
2017/09/23 14:11
阅读数 1.8W

    在hadoop2.7.4(hadoop2.X)中通过hdfs管理界面查看/tmp目录出现如下错误:

Permission denied: user=dr.who, access=READ_EXECUTE, inode="/tmp":hadoop:supergroup:drwx------

    先开始一直纠结我是用hadoop用户登录操作的,为什么会是dr.who,dr.who其实是hadoop中http访问的静态用户名,并没有啥特殊含义,可以在core-default.xml中看到其配置,

hadoop.http.staticuser.user=dr.who

我们可以通过修改core-site.xml,配置为当前用户,

    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>hadoop</value>
    </property>

另外,通过查看hdfs的默认配置hdfs-default.xml发现hdfs默认是开启权限检查的。

dfs.permissions.enabled=true #是否在HDFS中开启权限检查,默认为true

    由于当前用户权限不足,所以无法操作/tmp目录。

解决方案:

    解决方案有两种,一是直接修改/tmp目录的权限设置,操作如下,

[hadoop@server hadoop-2.7.4]$ /bin/hdfs dfs -chmod -R 755 /tmp

   然后就可以正常访问/tmp目录下的文件了。

  

    另一种是直接hdfs的权限配置,

    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>

    第二种方案可以在测试环境下使用,生产环境不建议这样设置。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部