Spark on YARN 常见问题总结

网友投稿 619 2022-05-28

问题1:

在slave上运行40~50个executor之后,该slave上的nodemanager直接崩溃,报错信息如下:

java.lang.OutOfMemory, unable to create new native thread

at java.lang.Thread.start0(Native Method)

at java.lang.Thread.start(Thread.java:640)

原因:

排查内存充足,可见根因并非内存不足。

实际原因为Linux默认进程数量限制,Linux默认进程数为4096,而60个executor会创建近7000个进程,导致超过系统进程数限制而作业失败。

解决方案

修改Linux允许的最大进程数。

修改 /etc/security/limits.conf 文件,添加如下代码:(hadoop为用户名)

hadoop    soft    nofile    65536            //    最大文件数软限制

hadoop    hard    nofile    65536            //    最大文件数硬限制

hadoop    soft    nproc    65536            //    最大进程数软限制

hadoop    hard    nproc    65536            //    最大进程数硬限制

保存后重新登录

如果已配置hadoop用户免密登录,则可以直接修改 /etc/profile 文件,加入如下代码:

ulimit -u 65536

ulimit -n 65536

每次进入系统时会运行profile,即可解除Linux进程和文件数限制。

问题2:

slave节点无法接收container,排查发现节点状态是 unhealthy node

原因:

排查unhealthy node reason:节点系统盘耗尽

解决方案:

挂载新硬盘分区,扩容Linux根分区

一、分区并创建PV

1).创建新分区

$>fdisk

输入m显示帮助菜单,输入n创建一个分区,选择p创建主分区

(可以通过e创建Extend分区,然后再创建p)

Spark on YARN 常见问题总结

输入P查看刚才创建好的分区信息

输入t改变分区的格式为8e(Linux LVM)逻辑卷格式

输入w保存退出分区界面

2).创建物理卷

$>pvcreate /dev/sda4

$>pvdisplay

$>pvscan

二、扩容VG

1).把刚才创建好的pv添加到系统中根分区所在卷组中。之前看到系统的根分区所在的卷组为/dev/mapper/rhel/root,组名为rhel,逻辑卷名为root

该卷组Free PE为0,说明卷组已经没有容量了

2).扩容原有卷组

$>vgextend rhel /dev/sda4

$>vgdisplay

三、扩容LV,即扩容根分区

1).根据Free PE和PE size 来扩容根分区

$>lvextend -L +xxG /dev/mapper/rhel/root

$>lvdisplay

2).使扩容命令立即生效

$>xfs_growfs /dev/rhel/root

spark

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:盲文技术探究
下一篇:鲲鹏云服务器源码安装STAR-Fusion
相关文章