求助:3节点Cloudera集群安装时向<hostname>:7182发送心跳失败
嘿,我处理过超多Cloudera Manager安装时的心跳失败问题,结合你说的3节点集群场景,给你列几个最靠谱的排查和修复步骤:
先把主机名解析这件事盯死
这是触发心跳失败最常见的原因。得确保所有3个节点(包括Cloudera Manager所在的节点)的主机名能互相准确解析——不管是靠/etc/hosts配置还是DNS服务都行。
先在每个节点上跑hostname -f,看看输出的**完全限定域名(FQDN)**是什么,然后把所有节点的FQDN和对应IP都写到每个节点的/etc/hosts里,格式大概是这样:192.168.1.100 cm-server.example.com cm-server 192.168.1.101 node1.example.com node1 192.168.1.102 node2.example.com node2写完后别忘验证:在CM服务器上ping每个节点的FQDN,在每个节点上ping CM服务器的FQDN,确保都能通。
检查7182端口的连通性
Cloudera Manager Server靠7182端口收Agent的心跳,所以必须保证所有Agent节点能访问这个端口。
在每个Agent节点上跑nc -zv cm-server.example.com 7182(如果没装nc就用telnet cm-server.example.com 7182),要是连接失败,肯定是防火墙或者安全组把端口挡住了。
修复的话,比如用firewalld的话,就在CM节点上执行:firewall-cmd --add-port=7182/tcp --permanent firewall-cmd --reload要是用iptables,就加对应的允许规则就行。
看看Cloudera Agent的状态和配置对不对
先在每个Agent节点上查服务状态:systemctl status cloudera-scm-agent,没启动的话就启动它:systemctl start cloudera-scm-agent。
然后打开Agent的配置文件/etc/cloudera-scm-agent/config.ini,确认server_host这一行填的是CM Server的正确FQDN,别填IP或者错的主机名。
要是改了配置,记得重启Agent:systemctl restart cloudera-scm-agent。时间同步绝对不能忽略
Cloudera集群对时间同步要求特别严,节点之间时间差太大也会导致心跳失败。确保所有节点都装了NTP服务(比如chrony或者ntpd),跑timedatectl status看看同步状态,保证所有节点的时间误差在几秒以内。翻日志找具体问题
如果上面的步骤都试了还不行,就去看Agent的日志文件/var/log/cloudera-scm-agent/cloudera-scm-agent.log,里面会有更详细的错误提示——比如连接超时、证书问题、权限问题啥的,跟着日志提示再针对性修复就行。
内容的提问来源于stack exchange,提问作者Saurabh Rana

