Spark在yarn-client运行一直accepted

查看数: 11854 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-7-26 17:15

正文摘要:

我运行spark的spark.example.SparkPi例子,用yarn-cluster提交是可以运行的,但用yarn-client提交,日志一直打印[mw_shl_code=java,true]2017-07-26 16:53:30 INFO  yarn.Client: Application report for ...

回复

yaojiank 发表于 2017-7-26 18:06:41
zstu 发表于 2017-7-26 18:00
driver设置了1g的。其他的都是默认的。那个spark-class文件是指哪个文件

提交的时候,添加个参数即可。
--driver-java-options
找到源文件麻烦了,而且你也不能改。
zstu 发表于 2017-7-26 18:00:26
yaojiank 发表于 2017-7-26 17:56
Driver的JVM参数:
-Xmx,-Xms,如果是yarn-client模式,则默认读取spark-env文件中的SPARK_DRIVER_MEMO ...

driver设置了1g的。其他的都是默认的。那个spark-class文件是指哪个文件
yaojiank 发表于 2017-7-26 17:56:51
zstu 发表于 2017-7-26 17:53
没多大的数据量。写了一个例子
val data = sc.parallelize(Array(1,3),(4,5))
println(data.count)也是 ...

Driver的JVM参数:
-Xmx,-Xms,如果是yarn-client模式,则默认读取spark-env文件中的SPARK_DRIVER_MEMORY值,-Xmx,-Xms值一样大小;如果是yarn-cluster模式,则读取的是spark-default.conf文件中的spark.driver.extraJavaOptions对应的JVM参数值。
PermSize,如果是yarn-client模式,则是默认读取spark-class文件中的JAVA_OPTS="-XX:MaxPermSize=256m $OUR_JAVA_OPTS"值;如果是yarn-cluster模式,读取的是spark-default.conf文件中的spark.driver.extraJavaOptions对应的JVM参数值。
GC方式,如果是yarn-client模式,默认读取的是spark-class文件中的JAVA_OPTS;如果是yarn-cluster模式,则读取的是spark-default.conf文件中的spark.driver.extraJavaOptions对应的参数值。
以上值最后均可被spark-submit工具中的--driver-java-options参数覆盖。
zstu 发表于 2017-7-26 17:53:58
yaojiank 发表于 2017-7-26 17:50
看你的数据量。内存是一方面,jvm是多少

没多大的数据量。写了一个例子
val data = sc.parallelize(Array(1,3),(4,5))
println(data.count)也是报同样的错,那个jvm是多少是指什么?
yaojiank 发表于 2017-7-26 17:50:55
zstu 发表于 2017-7-26 17:44
我是用的默认driver内存512M,SparkPi运行driver端占不了那么大的内存吧,增加到1g也不行。也是同样的错 ...

看你的数据量。内存是一方面,jvm是多少
zstu 发表于 2017-7-26 17:44:44
本帖最后由 zstu 于 2017-7-26 17:48 编辑
yaojiank 发表于 2017-7-26 17:37
先从原理来讲:yarn-cluster模式下,driver运行在AM(Application Master)中,它负责向YARN申请资源,并监督 ...

我是用的默认driver内存512M,SparkPi运行driver端占不了那么大的内存吧,增加到1g也不行。也是同样的错误。
yaojiank 发表于 2017-7-26 17:37:58
先从原理来讲:yarn-cluster模式下,driver运行在AM(Application Master)中,它负责向YARN申请资源,并监督作业的运行状况。当用户提交了作业之后,就可以关掉Client,作业会继续在YARN上运行。

yarn-client模式下,Application Master仅仅向YARN请求executor,client会和请求的container通信来调度他们工作,Client不能关闭。因为driver在客户端。
这里产生异常,是因为driver暂用了内存。可能你的内存或则jvm过小造成的。

关闭

推荐上一条 /2 下一条