2014-10-07 15 views
5

Tôi đang cố gắng bảo vệ cụm Hadoop HDP2 của mình bằng Kerberos.WebHDFS không hoạt động trên cụm an toàn hadoop

Cho đến nay, Hdf, Hive, HBase, Hue Beeswax và Hue Trình duyệt công việc/nhiệm vụ đang hoạt động bình thường; Tuy nhiên File Browser Huế không hoạt động, nó trả lời:

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 
(...) 

tập tin hue.ini My được cấu hình với tất cả security_enabled=true và các thông số liên quan thiết lập.


Tôi tin rằng sự cố xảy ra với WebHDFS.

Tôi đã thử các lệnh curl đưa ra tại http://hadoop.apache.org/docs/r1.0.4/webhdfs.html#Authentication

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

câu trả lời:

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> 

Và tôi có thể tái sản xuất thông báo lỗi Huế bằng cách thêm một người dùng với yêu cầu curl sau:

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

câu trả lời:

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"}} 

Dường như không có thỏa thuận Kerberos giữa WebHDFS và curl.

Tôi đã chờ đợi một cái gì đó như:

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 

Bất cứ ý tưởng gì có thể đã đi sai?

tôi có trong hdfs-site.xml tôi trên mỗi nút:

<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> 
+0

Hi Arnaud, Thats cool; Tôi đang cố gắng bảo vệ môi trường hadoop bằng Kerberos. Bạn có thể cho tôi biết quy trình/cách bạn đã chọn chi tiết không? –

+1

Vâng, đó sẽ là một câu trả lời dài, quá dài cho diễn đàn này. Tóm lại, bạn phải cài đặt một KDC ở đâu đó, tạo các superusers của hệ thống hadoop và các thông tin quan trọng, và suy nghĩ về việc kết nối KDC của bạn với hệ thống LDAP doanh nghiệp kế thừa của bạn để nhận dạng người dùng. Tôi đã sử dụng Ambari + một số kịch bản lệnh shell làm bằng tay để thực sự định cấu hình cụm hadoop; http://ambari.apache.org/current/installing-hadoop-using-ambari/content/ambari-kerb.html cung cấp cho bạn chi tiết. – Arnaud

+0

Ok Arnaud, Hãy để tôi xem; Đang đi với một cụm hadoop làm việc trong 2 máy ubuntu và bắt đầu với cài đặt Ambari. –

Trả lời

3

Hình như bạn không truy cập WebHDFS (cổng mặc định = 50.070) nhưng HttpFS (cổng mặc định = 14000), mà là một "đồng bằng" webapp không được bảo đảm theo cùng một cách.

Url WebHDFS thường là một cái gì đó như http://namenode:50070/webhdfs/v1; cố gắng sửa đổi hue.ini với thông số đó (WebHDFS được đề xuất trên HttpFS)

+0

Cảm ơn, đã giải quyết được vấn đề của tôi! – Arnaud

+1

Tuy nhiên, tôi có cấu hình hoạt động/chế độ chờ và tôi không thể xác định được cấu hình nào là nút tên ... Cách xử lý? – Arnaud

+1

Từ Cloudera doc: "Cả WebHDFS và HttpFS đều sử dụng API REST HTTP để chúng có thể tương thích hoàn toàn, nhưng Hue phải được cấu hình để sử dụng cái này hoặc cái kia. Để triển khai HDFS HA, bạn phải sử dụng HttpFS." (http: //www.cloudera.com/content/cloudera/vi/tài liệu/cdh4/v4-2-0/CDH4-Installation-Guide/cdh4ig_topic_15_4.html) – Arnaud

Các vấn đề liên quan