【问题标题】:hadoop permissions issue (hdfs-site.xml dfs.permissions.enabled)hadoop 权限问题(hdfs-site.xml dfs.permissions.enabled)
【发布时间】:2020-12-01 02:59:41
【问题描述】:

我最近在我的机器上安装了 Hadoop。我有权限问题。我以用户 rahul 登录并尝试在 HDFS(hdfs dfs -mkdir /rahul_workspace) 中创建一个目录。但它给了我一个错误Permission denied: user=Rahul, access=WRITE, inode="/user":hdfs:hdfs:drwxr-xr-x。快速谷歌搜索此错误导致许多响应建议通过将hdfs-site.xml 中的dfs.permissions 属性设置为false 来禁用权限检查的解决方法。 现在我可以在 HDFS 中创建目录。将上述属性设置为 false,我可以访问所有其他 hadoop 服务,例如 hive、pig、sqoop 等吗?

【问题讨论】:

    标签: hadoop permissions hive hdfs cloudera


    【解决方案1】:

    dfs.permissions 是可用于启用/禁用 HDFS ACL(简单权限)的属性。将 dfs.permission 设置为 false 后,任何用户都可以在 HDFS 的任何位置创建/删除文件/目录。

    将此属性设置为 false,您可以访问所有其他 Hadoop 服务,例如 Hive、Pig 等。

    【讨论】:

      【解决方案2】:

      HDFS 将启动 namenode 进程的用户视为“超级用户”。此用户通常是 hdfs 用户。您尝试写入的/user 目录由hdfs 用户和hdfs 组拥有,对hdfs 组中的任何用户和其他用户具有读取和执行权限。

      禁用权限似乎有点极端。您在这里有几个选项,第一个是将您的用户目录创建为hdfs 用户。

      sudo -u hdfs hdfs fs -mkdir /rahul_workspace
      sudo -u hdfs hdfs fs -chown Rahul /rahul_workspace
      

      这将创建您的目录并将所有权更改为您。另一种选择是在您已经具有写入权限的区域中创建您的目录。通常 /tmp 是敞开的。

      hdfs fs -mkdir /tmp/rahul_workspace
      

      【讨论】:

        【解决方案3】:

        在 Cloudera 上: 我所做的是,创建了一个对 Hue 具有默认权限的用户,即 user1

        然后,从 linux shell,首先访问 hdfs 用户权限: export HADOOP_USER_NAME=hdfs

        然后为您的 linux 用户名,如“user1”:

        尝试: hdfs dfs -chown user1:user1 /

        现在,如果您获得了适当的权限:

        尝试在“/”上创建目录: hdfs dfs -mkdir /testuser1

        【讨论】:

          【解决方案4】:

          我们用过

          hadoop fs -setfacl -m -R user:xyz:rwx /data/dev/dl/fvc/df

          在顶级目录(/data)上解决这个问题。

          【讨论】:

            猜你喜欢
            • 2018-05-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-09-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多