CDH重启服务cloudera-scm-agent启动失败( MainThread agent ERROR Heartbeating to 172.16.66.242:7182 )

时间:2024-04-05 12:33:06

今天我登陆cdh监控页面172.16.66.242:7180界面时发现拒绝访问,发现我的cdh服务挂掉了。

这个没啥,我就准备重启服务嘛,按照正常流程,先检查下mysql服务

先确保mysql启动服务
service mysqld status

如果没有开启重启下

service mysqld restart

然后进入

cd /opt/cloudera-manager/cm-5.11.1/etc/init.d

然后主节点

主节点242server启动
./cloudera-scm-server restart

我的3台从节点242,243,244,245IP地址依次启动

./cloudera-scm-agent restart

问题来了,先是报错我的设备空间不够

CDH重启服务cloudera-scm-agent启动失败( MainThread agent ERROR Heartbeating to 172.16.66.242:7182 )

我一开始以为是服务器的运行内存不够,

用free -g查看了下,31g的机器内存,光cache就用了21个g,可用才有3个g,百度网上文章得到以下解决方法

echo 1 > /proc/sys/vm/drop_caches

CDH重启服务cloudera-scm-agent启动失败( MainThread agent ERROR Heartbeating to 172.16.66.242:7182 )

命令解释如下,参考链接https://www.cnblogs.com/rocky-AGE-24/p/7629500.html

CDH重启服务cloudera-scm-agent启动失败( MainThread agent ERROR Heartbeating to 172.16.66.242:7182 )

可是我发现还是没有解决问题,启动agent服务还是报错设备没有空间。

网上百度了文章,得知报这种错误设备没有空间应该是2种错误引起的,要么磁盘空间不够,要么inode过多,

参考以下文章

http://blog.51cto.com/php2012web/1828097

我用命令查看了下,果然磁盘要超载了,磁盘和inode都是100%了

free -m free -g 查看内存使用
df -h查看磁盘空间
df -ia 查看inode使用情况

CDH重启服务cloudera-scm-agent启动失败( MainThread agent ERROR Heartbeating to 172.16.66.242:7182 )

请教了我的一个前辈(马可老师)后得知大概起始给系统挂载分盘时候分配的磁盘太小,然后随着日后使用,磁盘不够,有2种解决方法,第一种治标的,采用删除日志方法,linux系统所有文件的日志保存在/var/log下,可以删日志把空间腾出来,

另一种治本的方法,涉及到一个概念LVM,不过操作比较困难,建议大家现在虚拟机里练熟了再操作,老师给的2篇链接如下

http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/22/3093405.html

http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/24/3096087.html

我比较投机,采用第一种,

查看var/log下面各个目录占用磁盘大小

du --max-depth=1 -h /var/log

CDH重启服务cloudera-scm-agent启动失败( MainThread agent ERROR Heartbeating to 172.16.66.242:7182 )

然后进入各自的目录下,把一些占用空间大的日志目录子文件全部rm -rf掉,这时候再看我的磁盘空间,一开始占用100%的只占80%左右了。

我以为问题解决掉了,继续重启agent服务,发现还是不行。真的很糟糕,当时那个心情。

然后只能查看agent启动日志,在我的机器上,目录大概如下,我查看了日志的最后100行内容

cd  /opt/cloudera-manager/cm-5.11.1/log/cloudera-scm-agent

tail -100 cloudera-scm-agent.log
CDH重启服务cloudera-scm-agent启动失败( MainThread agent ERROR Heartbeating to 172.16.66.242:7182 )

多次查看,发现大概报的错误和网上的一种错误一致,都含有连接主节点心跳失败的信息,大概如下

CDH重启服务cloudera-scm-agent启动失败( MainThread agent ERROR Heartbeating to 172.16.66.242:7182 )

MainThread agent        ERROR    Heartbeating to 172.16.66.242:7182

网上这种错误很多,可是我按照他们方式没有解决掉,于是我尝试的敲了下命令。

./cloudera-scm-agent status,而不是用start或者restart

这时候系统提示我

CDH重启服务cloudera-scm-agent启动失败( MainThread agent ERROR Heartbeating to 172.16.66.242:7182 )


pid文件存在??纳尼?我就用进程查看了****意,此时我的4台机器,242server主节点启动成功,242,243两台ip的机器agent没有启动成功,244,245的agent启动成功了)

敲如ps  -ef | grep cloudera-scm-agent

得到一系列关于cloudera-scm-agent的进程信息,因为242agent启动失败了,我都全部用kill -9杀死。

然后我以为我重启agent可以成功,发现还是不行,还是报错pid文件存在,

我百度了下pid文件的存放位置,然后敲cd /proc,然后ls 下,发现很多目录,都是我们机器正在运行的进程的pid目录

CDH重启服务cloudera-scm-agent启动失败( MainThread agent ERROR Heartbeating to 172.16.66.242:7182 )

 不过之前我已经kill掉的agent进程已经找不到目录了,我真的是脑袋都要炸了,还是没搞定,,,,

我想了下242提示agent的pid文件还存在,245不是agent启动成功了嘛,他应该也有pid文件的,我在245机器上

ps  -ef | grep cloudera-scm-agent,发现了一个重要信息,


CDH重启服务cloudera-scm-agent启动失败( MainThread agent ERROR Heartbeating to 172.16.66.242:7182 )

终于让我找到了pid文件的位置,我找到这个目录文件,

CDH重启服务cloudera-scm-agent启动失败( MainThread agent ERROR Heartbeating to 172.16.66.242:7182 )


然后删了这个pid文件,这时候重启agent服务,终于不报错了,我依次删了243机器关于agent的pid文件,重启成功,

CDH重启服务cloudera-scm-agent启动失败( MainThread agent ERROR Heartbeating to 172.16.66.242:7182 )

这时候所有的server和agent都启动成功了,进入172.16.66.242:7180,终于可以重启大数据集群服务了

CDH重启服务cloudera-scm-agent启动失败( MainThread agent ERROR Heartbeating to 172.16.66.242:7182 )

那个忽略掉我的警告太多的界面,我也很无奈,重启2次了,嘿嘿,好了,希望这篇博客对大家有帮助。

大概知识点如下:

1如何重启cm服务

2设备空间不足的解决方法

3系统进程的pid文件位置

4如何解决掉agent启动失败的问题(agent已死,但pid文件存在)

谢谢大家