spark-shell 运行报错 OutOfMemoryError

来源:互联网 发布:windows update被禁用 编辑:程序博客网 时间:2024/06/04 17:55

spark-shell 运行报错 OutOfMemoryError

错误信息:

java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:714)
at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:949)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1360)
at org.apache.spark.rpc.netty.Dispatcher$$anonfun$1.apply$mcVI$sp(Dispatcher.scala:198)
at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:141)
at org.apache.spark.rpc.netty.Dispatcher.<init>(Dispatcher.scala:197)
at org.apache.spark.rpc.netty.NettyRpcEnv.<init>(NettyRpcEnv.scala:54)
at org.apache.spark.rpc.netty.NettyRpcEnvFactory.create(NettyRpcEnv.scala:447)
at org.apache.spark.rpc.RpcEnv$.create(RpcEnv.scala:53)
at org.apache.spark.SparkEnv$.create(SparkEnv.scala:253)
at org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:193)
at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:288)
at org.apache.spark.SparkContext.<init>(SparkContext.scala:457)
at org.apache.spark.repl.SparkILoop.createSparkContext(SparkILoop.scala:1017)
at $iwC$$iwC.<init>(<console>:15)
at $iwC.<init>(<console>:24)
at <init>(<console>:26)
at .<init>(<console>:30)
at .<clinit>(<console>)
at .<init>(<console>:7)
at .<clinit>(<console>)
at $print(<console>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)


原因 :可能是你的用户线程数已经快要达到上限


解决方案:

1.先查询用户的当前线程数 (用你的用户名 替换 <loginName>) 

ps -u <loginName> -L | wc -l 


2.查询当前用户的线程上限

 ulimit -u 

3.设置用户线程上限(如设置成2048,按照你的需求设置)  临时

utimit -u 2048


4.永久设置线程上限

vim /etc/profile

在最后面加上

ulimit -u 2048

然后执行

source /etc/profile 

此时,再来查看线程上限:

 ulimit -u 

输出:

2048

即修改成功


至此,问题已解决





1 0
原创粉丝点击