5

我已经安装了hue,但hue中的文件浏览器无法正常工作并抛出“服务器错误(500)”

来自 error.log 的数据

webhdfs      ERROR    Failed to determine superuser of WebHdfs at http://namenode:50070/webhdfs/v1: SecurityException: Failed to obtain user group information: org.apache.hadoop.security.authorize.AuthorizationException: User: hue is not allowed to impersonate hue (error 401)
Traceback (most recent call last):
  File "/home/hduser/huef/hue/desktop/libs/hadoop/src/hadoop/fs/webhdfs.py", line 108, in superuser
    sb = self.stats('/')
  File "/home/hduser/huef/hue/desktop/libs/hadoop/src/hadoop/fs/webhdfs.py", line 188, in stats
    res = self._stats(path)
  File "/home/hduser/huef/hue/desktop/libs/hadoop/src/hadoop/fs/webhdfs.py", line 182, in _stats
    raise ex

注意:我已将以下内容添加到 core-site.xml 并启用了 webhdfs

 <property>
                <name>hadoop.proxyuser.hue.hosts</name>
                <value>*</value>
        </property>
        <property>
                <name>hadoop.proxyuser.hue.groups</name>
                <value>*</value>
        </property>

当我尝试通过 oozie in hue 访问 hdfs 文件位置时出错

An error occurred: SecurityException: Failed to obtain user group information: org.apache.hadoop.security.authorize.AuthorizationException: User: hue is not allowed to impersonate hduser (error 401)
4

4 回答 4

11

核心站点.xml

 <property>
      <name>hadoop.proxyuser.hue.hosts</name>
      <value>*</value>
 </property>
 <property>
      <name>hadoop.proxyuser.hue.groups</name>
      <value>*</value>
 </property>

hdfs-site.xml

<property>
     <name>dfs.webhdfs.enabled</name>
     <value>true</value>
</property>
于 2014-04-09T05:10:53.907 回答
2

您需要指定 hduser 作为代理用户:

 <property>
      <name>hadoop.proxyuser.hduser.hosts</name>
      <value>*</value>
 </property>
 <property>
      <name>hadoop.proxyuser.hduser.groups</name>
      <value>*</value>
 </property>

顺便说一句:您为什么不将 Hue 用作“hue”?

于 2013-09-04T16:25:50.983 回答
2

您以什么用户身份登录?

我有同样的问题,我的解决方案是创建一个名为“hdfs”的 HUE 用户,并在“hadoop”和“hdfs”Linux 用户组中添加“hue”Linux 用户。

所以现在我在 HUE Web UI 中以“hdfs”用户身份登录。

于 2014-08-15T18:26:14.047 回答
0

你可能会看到它说Failed to obtain user group information

根据Hadoop 文档,组信息是通过调用 shell 命令(在 *nix 系统上)收集的groups $USERNAME。因此,匹配的用户必须作为 Linux 用户存在于HDFS Namenode中,在此进行身份验证过程。

所以解决方案很简单,

useradd hue -g root 名称节点上。

我在 docker 容器中部署 hdfs,所以我使用 group root。该值与运行 Namenode 进程的用户(绝对是超级用户)相同。

于 2018-03-15T01:43:36.420 回答