简介
此文档描述了如何配置Hadoop HTTP web控制台,去要求用户认证。
默认地,Hadoop HTTP web控制台(JobTracker, NameNode, TaskTrackers 和 DataNodes)不需要任何认证就允许访问。
与Hadoop RPC相似, Hadoop HTTP web控制台可以被配置为需要使用HTTP SPNEGO协议认证(由FireFox或IE支持)。
还有,Hadoop HTTP web控制台同等地支持Hadoop‘s Pseudo/Simple 认证。如果此选项启用了,用户必须在首次浏览器交互中使用user.name查询参数指定它们的用户名。例如: http://localhost:50030/jobtracker.jsp?user.name=babu
.
如果一个用户认证机制被Hadoop HTTP web控制台要求,也可以实现一个插件支持动态认证机制(转到Hadoop-auth看更多写AuthenticatorHandler的细节)
下一部分描述了如何配置一个Hadoop HTTP web控制台,去要求用户认证。
配置
下面的属性应该在集群中的所有节点上的core-site.xml中。
hadoop.http.filter.initializers
:
添加到这个属性 org.apache.hadoop.security.AuthenticationFilterInitializer
初始化类。
hadoop.http.authentication.type
:
定义用于Hadoop HTTP web控制台的认证。
支持的值是: simple
| kerberos
| #AUTHENTICATION_HANDLER_CLASSNAME#
.默认值是 simple
.
hadoop.http.authentication.token.validity
:
声明一个认证token在必须被更新之前合法的时间是多长(秒)。默认值是36000.
hadoop.http.authentication.signature.secret.file
:
用于签发认证token的签名密码文件。同样的密码应该用在集群中的所有节点上,JobTracker, NameNode, DataNode 和TastTracker. 默认值是 $user.home/hadoop-http-auth-signature-secret
.
重要: 这个文件应该只对由运行这些守护进程的Unix用户可读。
hadoop.http.authentication.cookie.domain
:
用于存放认证token HTTP cookie 的域。为了认证能够在集群中所有节点上正确地工作,域必须正确地设置。这里没有默认值,HTTP cookie不会与只有一个域的主机发出的HTTP cookie 工作。
重要: 当使用IP地址时,浏览器忽略设置的cookie。因为这个设置工作正常的条件是集群中的所有节点必须配置为用hostname.domain 生成URL。
hadoop.http.authentication.simple.anonymous.allowed
:
声明当使用‘simple‘ 认证时,允许所有的匿名访问。默认值是true.
hadoop.http.authentication.kerberos.principal
:
当使用‘kerberos‘时认证时,声明为HTTP终端使用的认证规则。规则的简称必须是HTTP
per Kerberos HTTP SPNEGO 式的声明。默认值是 HTTP/_HOST@$LOCALHOST
, 如果当前的被HTTP服务器的绑定地址替换了就用_HOST。
hadoop.http.authentication.kerberos.keytab
:
用于HTTP终端的包含认证规则凭证的keytab文件的位置。默认值是$user.home/hadoop.keytab
.i。
Hadoop-2.2.0中文文档——Common-Hadoop HTTP web控制台认证,布布扣,bubuko.com