首页 > 代码库 > Hadoop-2.2.0中文文档——Common-Hadoop HTTP web控制台认证

Hadoop-2.2.0中文文档——Common-Hadoop HTTP web控制台认证

简介

此文档描述了如何配置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。