WebHDFS无法在安全的hadoop群集上运行

阿诺

我正在尝试使用Kerberos保护我的HDP2 Hadoop群集。

到目前为止,Hdfs,Hive,Hbase,Hue Beeswax和Hue Job /任务浏览器都可以正常工作;但是Hue的文件浏览器无法正常工作,它会回答:

WebHdfsException at /filebrowser/
AccessControlException: SIMPLE authentication is not enabled.  Available:[TOKEN, KERBEROS] (error 500)
Request Method: GET
Request URL:    http://bt1svlmy:8000/filebrowser/
Django Version: 1.2.3
Exception Type: WebHdfsException
Exception Value:    
AccessControlException: SIMPLE authentication is not enabled.  Available:[TOKEN, KERBEROS] (error 500)
Exception Location: /usr/lib/hue/desktop/libs/hadoop/src/hadoop/fs/webhdfs.py in _stats, line 208
Python Executable:  /usr/bin/python2.6
Python Version: 2.6.6
(...)

我的hue.ini文件配置了所有security_enabled=true其他相关参数集。


我相信问题出在WebHDFS。

我尝试了http://hadoop.apache.org/docs/r1.0.4/webhdfs.html#Authentication中给出的curl命令

curl -i --negotiate -L -u : "http://172.19.115.50:14000/webhdfs/v1/filetoread?op=OPEN"

答案:

HTTP/1.1 403 Forbidden
Server: Apache-Coyote/1.1
Set-Cookie: hadoop.auth=; Path=/; Expires=Thu, 01-Jan-1970 00:00:00 GMT; HttpOnly
Content-Type: text/html;charset=utf-8
Content-Length: 1027
Date: Wed, 08 Oct 2014 06:55:51 GMT

<html><head><title>Apache Tomcat/6.0.37 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 403 - Anonymous requests are disallowed</h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u>Anonymous requests are disallowed</u></p><p><b>description</b> <u>Access to the specified resource has been forbidden.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/6.0.37</h3></body></html>

通过添加具有以下curl请求的用户,我可以重现Hue的错误消息:

curl --negotiate -i -L -u: "http://172.19.115.50:14000/webhdfs/v1/filetoread?op=OPEN&user.name=theuser"

它回答:

HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Set-Cookie: hadoop.auth=u=theuser&p=theuser&t=simple&e=1412735529027&s=rQAfgMdExsQjx6N8cQ10JKWb2kM=; Path=/; Expires=Wed, 08-Oct-2014 02:32:09 GMT; HttpOnly
Content-Type: application/json
Transfer-Encoding: chunked
Date: Tue, 07 Oct 2014 16:32:09 GMT
Connection: close

{"RemoteException":{"message":"SIMPLE authentication is not enabled.  Available:[TOKEN, KERBEROS]","exception":"AccessControlException","javaClassName":"org.apache.hadoop.security.AccessControlException"}}

似乎WebHDFS和curl之间没有Kerberos协商。

我期待的是这样的:

HTTP/1.1 401 UnauthorizedContent-Type: text/html; charset=utf-8
WWW-Authenticate: Negotiate
Content-Length: 0
Server: Jetty(6.1.26)
HTTP/1.1 307 TEMPORARY_REDIRECT
Content-Type: application/octet-stream
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Set-Cookie: hadoop.auth="u=exampleuser&[email protected]&t=kerberos&e=1375144834763&s=iY52iRvjuuoZ5iYG8G5g12O2Vwo=";Path=/
Location: http://hadoopnamenode.mycompany.com:1006/webhdfs/v1/user/release/docexample/test.txt?op=OPEN&delegation=JAAHcmVsZWFzZQdyZWxlYXNlAIoBQCrfpdGKAUBO7CnRju3TbBSlID_osB658jfGfRpEt8-u9WHymRJXRUJIREZTIGRlbGVnYXRpb24SMTAuMjAuMTAwLjkxOjUwMDcw&offset=0
Content-Length: 0
Server: Jetty(6.1.26)
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Content-Length: 16
Server: Jetty(6.1.26)
A|1|2|3
B|4|5|6

知道发生了什么问题吗?

我确实hdfs-site.xml在每个节点上都有:

<property>
  <name>dfs.webhdfs.enabled</name>
  <value>true</value>
</property>

<property>
  <name>dfs.web.authentication.kerberos.principal</name>
  <value>HTTP/[email protected]</value>
</property>

<property>
  <name>dfs.web.authentication.kerberos.keytab</name>
  <value>/etc/hadoop/conf/HTTP.keytab</value> <!-- path to the HTTP keytab -->
</property>
BillLoot

看起来您不是访问WebHDFS(默认端口= 50070),而是访问HttpFS(默认端口= 14000),这是一种“普通” webapp,不能以相同的方式保护它。

WebHDFS URL通常是这样的http://namenode:50070/webhdfs/v1尝试使用该参数修改hue.ini(建议在HttpFS上使用WebHDFS)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法让pyspark作业在hadoop群集的所有节点上运行

来自分类Dev

在Hadoop群集上使用Oozie运行Sqoop Action的问题

来自分类Dev

无法在Windows 7上运行Hadoop

来自分类Dev

无法在hadoop 2.4.0上运行MapReduce作业

来自分类Dev

无法登录启用Kerberos的Hadoop群集

来自分类Dev

无法在Mesos群集上使用应用程序jar运行spark-submit

来自分类Dev

Cloudera hadoop:无法运行Hadoop fs命令,同时HBase无法在HDFS上创建目录吗?

来自分类Dev

在群集上运行Rmpi,指定库路径

来自分类Dev

在风暴群集上运行多个拓扑的问题

来自分类Dev

在群集节点上运行的Akka流

来自分类Dev

在DC / OS群集上运行Arango Shell

来自分类Dev

无法在EMR群集上安装pip安装

来自分类Dev

无法通过 VSTS 发布到安全 Service Fabric 群集

来自分类Dev

安全群集上的Register-ServiceFabricApplicationType总是超时

来自分类Dev

在远程Hadoop集群上运行Hadoop测试

来自分类Dev

在远程Hadoop集群上运行Hadoop测试

来自分类Dev

Hadoop流无法运行python

来自分类Dev

hadoop:无法运行mapreduce作业

来自分类Dev

试图在Windows上运行hadoop

来自分类Dev

在Mac OS上运行的Hadoop

来自分类Dev

在Hadoop上运行Java程序

来自分类Dev

在Hadoop 2上运行作业时无法初始化集群异常

来自分类Dev

无法运行具有多个节点的“ couchbase”群集

来自分类Dev

无法运行具有多个节点的“ couchbase”群集

来自分类Dev

无法连接到在本地主机上运行的Cassandra群集

来自分类Dev

无法从独立服务器运行 PowerShell 群集 cmdlet

来自分类Dev

在独立群集上运行PI示例的问题

来自分类Dev

在群集集群中的特定节点上运行docker容器

来自分类Dev

HazelcastSerializationException:当Jet作业在多个群集上运行时

Related 相关文章

热门标签

归档