Spark on YARN 常见问题总结

举报
William Wang 发表于 2020/02/29 17:26:39 2020/02/29
【摘要】 一些常见的Spark on YARN的bug

问题1

slave上运行40~50executor之后,该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,而60executor会创建近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

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

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

输入w保存退出分区界面

2).创建物理卷

$>pvcreate /dev/sda4

$>pvdisplay

$>pvscan

二、扩容VG

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

该卷组Free PE0,说明卷组已经没有容量了

2).扩容原有卷组

$>vgextend rhel /dev/sda4

$>vgdisplay

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

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

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

$>lvdisplay

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

$>xfs_growfs /dev/rhel/root



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。