【问题标题】:Can't Delete HDFS Directory Via Web Interface Because I'm Dr. Who无法通过 Web 界面删除 HDFS 目录,因为我是 Dr. Who
【发布时间】:2017-11-15 14:58:22
【问题描述】:

我正在尝试使用http://localhost:50070/explorer.html 的Web 界面删除本地HDFS 系统上的目录deepnlptest/models。 我的用户名是 wmcneill,我要删除的 HDFS 目录的权限是 wmcneill 拥有的drwxr-xr-x

$ hdfs dfs -ls deepnlptest
17/11/16 09:36:11 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 5 items
drwxr-xr-x   - wmcneill supergroup          0 2017-11-15 17:09 deepnlptest/canonical-folders
drwxr-xr-x   - wmcneill supergroup          0 2017-11-08 14:35 deepnlptest/data
drwxr-xr-x   - wmcneill supergroup          0 2017-11-15 16:51 deepnlptest/embeddings
drwxr-xr-x   - wmcneill supergroup          0 2017-11-15 16:53 deepnlptest/models
drwxr-xr-x   - wmcneill supergroup          0 2017-11-09 10:28 deepnlptest/pretrained_embeddings

当我尝试使用网页界面删除目录时出现以下错误。

除了删除之外,Web 界面可以正常浏览 HDFS。我可以通过命令行命令hdfs dfs 在 HDFS 系统上执行所有操作,包括删除目录。

$ hdfs dfs -rm -r deepnlptest/models
17/11/16 09:37:17 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Deleted deepnlptest/models

我假设“dr.who”是默认用户,我需要将我的用户名添加到一些 Hadoop 配置文件中,但我不知道是哪一个。

我在安装在/usr/local/Cellar/hadoop/2.8.2 下的 Mac 上运行 Hadoop 2.8.2。

【问题讨论】:

  • 我不认为 Cloudera 链接解决了这个问题。这描述了最终用户无法删除 hdfs 系统拥有的根文件夹的情况。我正在尝试删除我拥有的子文件夹。
  • 确定你拥有它?该目录的hdfs dfs -ls 显示了什么?
  • 看起来像我。我用hdfs dfs -ls 的输出更新了原始帖子。

标签: hadoop configuration permissions hdfs


【解决方案1】:

当您访问 Web UI 时,您是以 Dr.Who 的身份访问集群,而不是您的用户。

博士。谁 无权在您的目录中删除。它是用于浏览的用户。

+------------------------------+-----------+----------------------------------------------------+
|                              |           | The user name to filter as,on static web filters   |
| hadoop.http.staticuser.user  |  dr.who   | while rendering content. An example use is the HDFS|
|                              |           | web UI (user to be used for browsing files).       |
+------------------------------+-----------+----------------------------------------------------+

参考:Who is Dr.Who?

其他参考:core-default

【讨论】:

    【解决方案2】:

    如果有人仍在查看此内容,您可以通过设置 core-site.xml 中的属性来设置您的用户

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

    这应该覆盖 dr.who 默认用户并允许您从网络界面删除/上传。

    【讨论】:

      猜你喜欢
      • 2016-09-27
      • 2015-01-13
      • 1970-01-01
      • 2014-03-01
      • 2016-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多