点击上方蓝色“大数据实战演练”,选择“设为星标”或“置顶”
回复“资料”领取独家整理的学习资料!
每一个成功人士的背后,必定曾经做出过勇敢而又孤独的决定。
放弃不难,但坚持很酷~
1、前言
今天又有朋友咨询我 ambari 相关的问题,注册主机步骤出错。他说他试了好几次,无奈只能加我好友来寻求帮助。
经过我俩的分析与探讨,完美将问题解决。自认为该问题比较经典,有总结的必要,所以就有了本篇文章,希望后来者遇到类似错误,可以有个参考。
2、问题详情

点击 “Failed” 可查看失败详情,如下图所示:

也可以去报错的节点查看 /var/log/ambari-agent/ambari-agent.log 文件内容,看看还有没有别的发现。这里,报错日志和上述错误描述一致。
3、排查步骤
可参考社区讨论帖:
https://community.cloudera.com/t5/Support-Questions/Openssl-error-upon-host-registration/td-p/94255
1)排查 ambari-agent.ini 配置
ambari 注册主机,ambari-agent 节点会去连接 ambari-server 节点,如上图所示:Connecting to Ambari server at …
所以需要确保 /etc/ambari-agent/conf/ambari-agent.ini 文件中的 server.hostname 为 ambari-server 节点主机名或 ip 。例如:
hdp1.com 为 ambari-server 节点所在主机

配置如果修改,需要重启 ambari-agent 进程才可以生效,然后我们继续通过 ambari 界面来注册主机进行尝试。
(我那朋友就是这个地方配置错了,他以为这个地方是填写当前机器主机名)
这里要特别强调一点:ambari server 在注册主机时,如 ambari-agent 未安装,则会自动安装并修改本配置,修改成 ambari-server 节点名称,该配置文件默认不必修改。
2)openssl 版本不对
$ tail -f /var/log/ambari-agent/ambari-agent.log
INFO 2018-08-09 16:39:42,666 NetUtil.py:70 - Connecting to https://xxxx:8440/ca
ERROR 2018-08-09 16:39:42,669 NetUtil.py:96 - EOF occurred in violation of protocol (_ssl.c:579)
ERROR 2018-08-09 16:39:42,669 NetUtil.py:97 - SSLError: Failed to connect. Please check openssl library versions.
Refer to: https://bugzilla.redhat.com/show_bug.cgi?id=1022468 for more details.
WARNING 2018-08-09 16:39:42,669 NetUtil.py:124 - Server at https://xxxx:8440 is not reachable, sleeping for 10 seconds...
INFO 2018-08-09 16:39:52,669 NetUtil.py:70 - Connecting to https://xxxx:8440/ca
ERROR 2018-08-09 16:39:52,672 NetUtil.py:96 - EOF occurred in violation of protocol (_ssl.c:579)
ERROR 2018-08-09 16:39:52,672 NetUtil.py:97 - SSLError: Failed to connect. Please check openssl library versions.
Refer to: https://bugzilla.redhat.com/show_bug.cgi?id=1022468 for more details.
WARNING 2018-08-09 16:39:52,672 NetUtil.py:124 - Server at https://xxxx:8440 is not reachable, sleeping for 10 seconds...
经过分析上述日志,初步判断可能是 openssl 版本不对。
[root@ambari ~]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
[root@ambari ~]# rpm -qa | grep openssl
openssl-libs-1.0.2k-12.el7.x86_64
openssl-1.0.2k-12.el7.x86_64
如果低于 openssl-1.0.1e-16.el6.x86_64 版本,则需要更新到 openssl-1.0.1e-16.el6.x86_64 及以上版本。
3)编辑 /etc/python/cert-verification.cfg 配置文件,将 [https] 节的 verify 项设为禁用
# Possible values are:
# 'enable' to ensure HTTPS certificate verification is enabled by default
# 'disable' to ensure HTTPS certificate verification is disabled by default
# 'platform_default' to delegate the decision to the redistributor providing this particular Python version
# For more info refer to https://www.python.org/dev/peps/pep-0493/
[https]
verify=disable
4)查看机器 python 版本
查看 /var/lib/ambari-agent/ambari-env.sh,默认指定的 python 版本路径为 /usr/bin/python2,所以需要检查该路径是否真实有效。

5)确定 ambari 所有节点是 Oracle JDK 1.8
在执行 ambari-server setup 时,会提示你安装 Oracle JDK ,所以咱需要确保所有 ambari 节点都安装 Oracle JDK ,这里推荐 jdk 1.8 即可。
所有节点替换为 jdk 版本后,建议重启执行下 ambari-server setup,指定 jdk 版本及路径,然后重启各 ambari-agent 节点。

jdk 安装包如下载不到,需要帮助,可私聊或加我微信获取。
6)修改 /etc/ambari-agent/conf/ambari-agent.ini 的 security 配置:
[security]
ssl_verify_cert=0
force_https_protocol=PROTOCOL_TLSv1_2
需要重启 ambari-agent 进程。
7)检查环境
确保 selinux、防火墙都处于关闭状态。
确保 /etc/hosts 文件中包含 ambari 各节点。
确保 ambari-server 节点可以免密各 agent 节点。
基于以上 7 种,逐一排查,应该就可以将主机注册成功了。如果还是不成功的话,可以私聊我或加我好友咨询。
4、注册主机过程
1)ambari-server 免密操作各 agent 节点,如该节点未安装 ambari-agent 服务,则安装 ambari-agent 服务,修改 ambari-agent.ini 服务,启动 ambari-agent 进程;否则跳过上述操作。
2)ambari-server 节点会自动根据你在页面上填写的 repo url ,自动生成 ambari-hdp-xxx.repo 文件,里面包含了 HDP、HDP-UTILS、HDP-GPL baseurl 地址。这样方便后续 agent 节点安装对于的 hdp 服务。
往期推荐
完结撒花 | 全网稀有的Ambari自定义服务集成实战(全)
公开课:Amabri自定义服务集成之前要做的规划或步骤有哪些
Ambari 2.7.3.0 安装部署 hadoop 3.1.0.0 集群完整版,附带移除 SmartSense 服务
ambari 自定义服务集成原理讲解,自定义服务项目结构解读
最后说一句(求关注,别白嫖我)
扫一扫,我们的故事就开始了。
文章有用,点赞、转发、在看都是一种支持,求三连!
另外公众号改变了推送规则,大家看文章不要忘记点击最下方的在看,点赞按钮,这样微信自动识别为常看公众号,否则很可能推送的文章可能淹没在别的文章找不到,谢谢大家。
让我知道你在看