问题导读 1.如何配置 Hadoop HTTP web-consoles 所需要的用户身份验证? 2.哪个配置文件可以配置 Hadoop HTTP认证? 3.hadoop.http.authentication.type的默认值是什么? 4.你认为Hadoop HTTP web认证的价值是什么? 注释: Hadoop HTTP web-consoles翻译为hadoop HTTP控制台,这里不太好理解,这里个人理解为我们的普通web网页。为什么要对它认证那,应该是为了不随便让其它人访问,以免遭到攻击,破坏等原因。 说明 这个文档描述了如何配置 Hadoop HTTP web-consoles 所需要的用户身份验证 默认 Hadoop HTTP web-consoles (JobTracker, NameNode, TaskTrackers 和DataNodes)允许访问没有任何的验证。 类似的Hadoop RPC,Hadoop HTTP web-consoles 可以被配置需要Kerberos身份认证使用HTTP SPNEGO协议(支持浏览器比如 Firefox 和【IE】 Internet Explorer) 额外的,Hadoop HTTP web-consoles 支持等效的hadoop的伪/简单 身份认证.如果选项被禁用,用户必须指定它们的用户名在浏览器中交互使用 user.name查询字符串参数。举例:http://localhost:50030/jobtracker.jsp?user.name=babu. 如果HTTP web-consoles定制身份验证是必需的,实现一个插件来支持所述备用认证机制是有可能的。(参考Hadoop的Hadoop的身份验证的详细信息,编写验证处理程序) 下面描述了如何配置hadoop HTTP web-consoles需要的用户认证 配置 下面属性应该在集群所有节点 core-site.xml 文件中。hadoop.http.filter.initializers: 添加到这个属性的org.apache.hadoop.security.AuthenticationFilterInitializer初始化类 hadoop.http.authentication.type: 定义用户 HTTP web-consoles.的认证。支持值是: simple | kerberos | #AUTHENTICATION_HANDLER_CLASSNAME#. 默认值是simple hadoop.http.authentication.token.validity: 指示认证token多长时间是有效的,在更新之前。默认值是36000 hadoop.http.authentication.signature.secret.file: 签名蜜月文件用于签名蜜月tokens. 同样密钥应该用于集群所有节点,JobTracker, NameNode, DataNode and TastTracker. 默认值是s $user.home/hadoop-http-auth-signature-secret. 重要:文件是只读的对于运行守护进程的Linux用户。 hadoop.http.authentication.cookie.domain:domain使用HTTP cookie存储认证token。为了认证通过集群所有节点正确的工作,domain必须正确设置。没有默认值,http没有domain仅与hostname发布的http cookie工作。 重要: 当使用ip地址,浏览器忽略cookie域名设置。这样的设置集群所有节点正确工作必须配置产生带有 hostname.domain的urls 在它上面 hadoop.http.authentication.simple.anonymous.allowed: 意思是如果使用 ‘simple’ 身份验证时,允许匿名请求.默认值是true hadoop.http.authentication.kerberos.principal:意思是当使用 ‘kerberos’认证时, Kerberos principal 用于HTTP endpoint。 The principal short 名称必须是HTTP对 Kerberos HTTP SPNEGO 规范。默认值是 HTTP/_HOST@$LOCALHOST,_HOST 如果当前是-,替换为绑定HTTP server的地址 hadoop.http.authentication.kerberos.keytab:带有Kerberos principal认证的本地keytab 文件用于 HTTP endpoint。默认值是 $user.home/hadoop.keytab.i 版本【2.7.1】