大数据问题排查系列-开启 kerberos 后无法访问 HIVESERVER2 等服务的 WEBUI
Posted 明哥的IT随笔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据问题排查系列-开启 kerberos 后无法访问 HIVESERVER2 等服务的 WEBUI相关的知识,希望对你有一定的参考价值。
大数据问题排查系列-开启 kerberos 后无法访问 HIVESERVER2 等服务的 WEBUI
1 前言
大家好,我是明哥!
在博文“从技术视角看大数据行业的发展趋势”中,我们提到大数据的一个发展趋势是日益重视数据安全。在数据安全上,有四个方面的问题需要解决,即 3A + 1E:
- 3A 是指 authentication, authorization 和 audit 即认证,授权和审计,分别解决了用户身份校验,用户权限校验,事后审计监督的问题;
- 1E 指的是 encryption 即加密,包括对静态数据的加密和对传输过程中数据的加密。
- 在3A+1E中,authentication 用户认证是基础。试想,如果用户身份验证没有做好,那么就可能冒用别人的身份,安全也就无从谈起了;
- 在大数据领域,解决 authentication 用户认证问题,事实上的标准是 Kerberos, 常见的主流大数据框架,都支持 kerberos 认证方式。
- 在实际工作中,几乎所有的金融行业和保险行业的大数据集群都启用了 kerberos, 这一趋势也在快速蔓延到电信行业,制造行业等各个行业;
- 而同时由于一些小伙伴对 kerberos 不太熟悉,使用过程中由于姿势不对,也遇到了各种五花八门的问题。
有鉴于此,笔者在大数据问题排查系列中,准备专门开一个 kerberos问题排查子序列,专门讲述常见的 kerberos 问题与解决方法。
本文是该子序列第一篇,以下是正文。
2. 问题概述
大数据集群开启kerberos后,一些服务如 HDFS/YARN/HIVESERVER2 的 webui无法访问, 如下图所示,分别对应 chrome 和 firefox 访问 hdfs webui的报错:
3 问题原因
- 通过查看 HDFS/YARN 服务的配置,可以发现开启了 “Enable Kerberos Authentication for HTTP Web-Consoles”, 所以此时因为用户通过浏览器访问 WEBUI 时会因为没有认证无法访问;
- 通过查看服务的后台日志,也能确认是用户认证的问题,以下是相关日志截图:
4 问题解决
- 解决方法1:可以关掉 hdfs/yarn/hive 的 “Enable Kerberos Authentication for HTTP Web-Consoles”,需要注意,hive 中该配置项需要在高级配置段中设置,如下图所示:
- 解决方法2:如果安全管理很严格,不能采用上述方法1,此时可以安装个 kerberos windows 客户端,在使用浏览器访问 webui前,先在 kerberos windows 客户端通过用户名和密码的认证,然后就可以使用浏览器正常访问 webui了,需要注意 chrome浏览器的相关配置比较复杂,建议使用 firefox 浏览器。相关截图如如下图所示:
5 知识总结
- 大数据领域,解决数据安全中用户认证 authentication 问题,事实上的标准是使用 kerberos;
- 一旦大数据服务开启了 kerberos 安全认证,默认情况下其 webui 页面的访问,同样需要通过 kerberos 认证才能访问;
- windows下kerberos 安全认证,可以使用 MIT Kerberos 的 windows 客户端,输入principal和对应的密码经过认证后,就可以使用浏览器正常访问开启了 kerberos 安全的大数据服务的 web ui了,且浏览器推荐使用 firefox;
- 也可以关闭开启了 kerberos 安全认证的大数据服务的 webui 的 http 认证,即“ disable Kerberos Authentication for HTTP Web-Consoles”,此时浏览器访问其 webui 不需要经过 kerberos 安全认证;
!关注不迷路~ 各种福利、资源定期分享!欢迎小伙伴们扫码添加明哥微信,后台加群交流学习。
以上是关于大数据问题排查系列-开启 kerberos 后无法访问 HIVESERVER2 等服务的 WEBUI的主要内容,如果未能解决你的问题,请参考以下文章
开启 Kerberos 安全的大数据环境中,Yarn Container 启动失败导致作业失败
开启 Kerberos 安全的大数据环境中,Yarn Container 启动失败导致作业失败