Hadoop 2.8.5 Permission denied: user=dr.who, access=READ_EXECUTE, inode="/user:root问题解决

目录

一、问题

二、分析

三、解决方案两种

  1. 第一种方案
  2. 第二种方案

四、展示



一、问题

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

在这里插入图片描述

二、分析

       我在浏览器查看目录和删除目录及文件,为什么会是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

三、解决方案两种

  1. 第一种方案

直接修改/user目录的权限设置,操作如下:

hdfs dfs -chmod -R 755 /user
  1. 第二种方案

在Hadoop的配置文件core-site.xml中增加如下配置:

<!-- 当前用户全设置成root -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>

<!-- 不开启权限检查 -->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>

四、展示

在这里插入图片描述hive_struct文件被删除了
在这里插入图片描述

发布了423 篇原创文章 · 获赞 359 · 访问量 124万+

猜你喜欢

转载自blog.csdn.net/silentwolfyh/article/details/103947804