码迷,mamicode.com
首页 > 编程语言 > 详细

Spark - ERROR Executor: Exception in tjava.lang.OutOfMemoryError: unable to create new native thread

时间:2016-02-20 17:40:54      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

如果你的Spark程序在执行过程中报出如下类似的错误:

ERROR Executor: Exception in task xxx in stage xxx
java.lang.OutOfMemoryError: unable to create new native thread

那么可能性非常大的原因是你当前通过spark-submit或spark-sql启动的程序中开启了过多的进程,以至超过了操作系统对当前用户所允许打开的进程数的上限。确定这个问题的方法是这样的:

首先,通过命令:

ulimit -u

来查看一下系统允许的当前用户能开启的进程数,默认值是1024。

然后,我们通过如下这样一条命令来持续追踪当前用户开启的进程数

while true;do ps -u your-user-name  -L | wc -l;sleep 1;done

接下就可以启动的我们Spark程序然后观察进程数量的变化了,如果发现进程数量持续上涨,并且在超过了进程上限之后抛出了OOM异常,那么就可以直接判定是用户的所能开启的进程数量收受限了。

那么什么情况会导致spark在执行过程中开启大量的进程呢?一个可能的原因是由于数据的“无序”性,导致shuffle过程开销过大。

Spark - ERROR Executor: Exception in tjava.lang.OutOfMemoryError: unable to create new native thread

标签:

原文地址:http://blog.csdn.net/bluishglc/article/details/50705052

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!