集群添加节点失败

最近望集群添加新机器,但是比较鲁莽,新机器没有进行参数调优,结果使得新添加的节点都挂掉了,辛亏及时回滚,不然影响了线上的一些数据处理任务。现在总结下当时发生的问题,以及最终的解决办法。

问题:

新加入的节点的nodemanager报出如下错误:

java.lang.OutOfMemoryError : unable to create new native Thread

解决办法:

乍一看,以为是内存溢出,是内存的原因。其实是线程数量创建超过机器的限制,导致的问题,跟内存没有关系。

修改一:

之后修改/etc/security/limits.conf中的参数,将如下内容加入:

* soft nofile 100000
* hard nofile 100000
* soft nproc 100000
* hard nproc 100000

reboot机器,没有效果。

修改二:

将如下内容加入到home目录的.bash_profile文件中。

ulimit -u 100000 -s 10240

source .bash_profile后,使用ulimit -a查看是否生效,发现修改有效果,但是集群作业依旧跑挂。

修改三:

将如下内容添加到/etc/security/limits.d/90-nproc.conf文件中。

*          soft    nproc     65535

这次修改完后,终于正式生效。


经过这次集群节点添加,楼主哭死的心都有了,楼主自己对linux的各个系统参数了解甚少,导致查看hadoop的log后依旧不能有效解决问题,还是求助各路大神后才解决的。所以一个好的hadoop集群运维工程师,首先是一个好的运维工程师,必须得玩转linux。

你可能感兴趣的:(Hadoop,运维)