HADOOP HTTPFS:通过 Http 访问应用程序时出现错误“用户:ubuntu 不允许模拟 ubuntu”

Posted

技术标签:

【中文标题】HADOOP HTTPFS:通过 Http 访问应用程序时出现错误“用户:ubuntu 不允许模拟 ubuntu”【英文标题】:HADOOP HTTPFS : giving error "User: ubuntu is not allowed to impersonate ubuntu" while accessing the application through Http 【发布时间】:2013-03-12 08:21:37 【问题描述】:

我已经在我的集群上安装了 hadoop 1.0.4,有 1 个 master 和 3 个 slave, 现在我正在安装 HTTPFS(hadoop-hdfs-httpfs-0.20.2-cdh3u5-SNAPSHOT) 以使用 http 协议访问 HDFS 内容,

我可以通过它访问正常页面

curl -i "http://myhost:14000"

效果很好:)

但是如果我尝试访问 HDFS,那么它会给我错误(ubantu 是我的用户):(

curl -i "http://myhost:14000/webhdfs/v1?user.name=ubantu&op=OPEN"

错误:

    "RemoteException":"message":"User: ubantu is not allowed to impersonate ubantu",
"exception":"RemoteException","javaClassName":"org.apache.hadoop.ipc.RemoteException"

提前致谢。

【问题讨论】:

请忽略我对此的编辑,我误读了这个问题,并认为您拼错了 linux 发行版的 ubuntu 的名称,而实际上 ubantu 是您的用户 【参考方案1】:

您是否按照此处所述配置 core-site.xml:http://hadoop.apache.org/docs/current/hadoop-hdfs-httpfs/ServerSetup.html

#HTTPFSUSER# 是启动 httpfs 守护进程的用户在哪里? (大概是“ubantu”)?

完成此操作后,重新启动 HDFS 守护程序。

【讨论】:

【参考方案2】:

解决了这个问题,因为我还没有将我的用户 ubantu 添加到 hadoop 用户组中。 将用户 ubantu 添加到 hadoop 组和 将 core-site.xml 中的属性更新为

     <property>
        <name>hadoop.proxyuser.myhttpfsuser.hosts</name>
        <value>httpfs-host.foo.com</value>
     </property>
     <property>
        <name>hadoop.proxyuser.myhttpfsuser.groups</name>
        <value>hadoop</value>
     </property>

现在它工作正常。

【讨论】:

httpfs-host.foo.com 上应该做什么?【参考方案3】:

简单的谷歌搜索显示其他人有相同的错误,但没有退回服务器以获取配置更改。

https://groups.google.com/a/cloudera.org/forum/?fromgroups=#!topic/cdh-user/dSJP-a_Lcqo

【讨论】:

感谢 bmucklow 的回答,但我已经对此做了很多研发,您建议的网站我已经访问过,但仍然出现同样的错误。

以上是关于HADOOP HTTPFS:通过 Http 访问应用程序时出现错误“用户:ubuntu 不允许模拟 ubuntu”的主要内容,如果未能解决你的问题,请参考以下文章

[hadoop3.x系列]HDFS REST HTTP API的使用HttpFS

ambari 2.7 下安装httpfs

C++通过http协议操作hdfs

2022-05-13 HDFS 数据存储与数据管理

如何在hadoop-2.6.0上编译运行自己编写的java代码

开启httpfs