spark on yarn java8_Spark on YARN 常见问题总结

问题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为用户名)

hadoopsoftnofile65536//最大文件数软限制

hadoophardnofile65536//最大文件数硬限制

hadoopsoftnproc65536//最大进程数软限制

hadoophardnproc65536//最大进程数硬限制

保存后重新登录

如果已配置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)

输入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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值