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>
现在它工作正常。
【讨论】:
在简单的谷歌搜索显示其他人有相同的错误,但没有退回服务器以获取配置更改。
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