spark on yarn-client 奇怪问题
2016-05-06 20:25
579 查看
运行spark 程序 以 yarn-client 就报错, 以 yarn-cluster 就不报错。
报错如下:
16/05/06 16:46:24 WARN cluster.YarnSchedulerBackend$YarnSchedulerEndpoint: ApplicationMaster has disassociated: 10.60.104.147:37086
16/05/06 16:46:24 WARN remote.ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkYarnAM@10.60.104.147:37086] has failed, address is now gated for [5000] ms. Reason: [Disassociated]
16/05/06 16:46:24 WARN cluster.YarnSchedulerBackend$YarnSchedulerEndpoint: ApplicationMaster has disassociated: 10.60.104.147:37086
16/05/06 16:46:46 INFO cluster.YarnClientSchedulerBackend: SchedulerBackend is ready for scheduling beginning after waiting maxRegisteredResourcesWaitingTime: 30000(ms)
Exception in thread "main" java.lang.IllegalStateException: Cannot call methods on a stopped SparkContext
at org.apache.spark.SparkContext.org$apache$spark$SparkContext$$assertNotStopped(SparkContext.scala:103)
at org.apache.spark.SparkContext$$anonfun$parallelize$1.apply(SparkContext.scala:715)
at org.apache.spark.SparkContext$$anonfun$parallelize$1.apply(SparkContext.scala:714)
看不到 明显原因,只是说 sparkContext stop了。 在 localhost:8088 yarn 上看 spark的 运行的 具体 history 日志,发现是 :
is running beyond virtual memory limits.
超过 虚拟内存限制。
google 大法: + stackoverflow 大法, 英文搜
I solved the issue by setting yarn.nodemanager.vmem-check-enabled to false in yarn-site.xml,
在 yarn-site.xml 中 改了这个 就成功了。
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
( 如何保存 history 日志,在
mapred-site.xml 中 增加以下配置:
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop2:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop2:19888</value>
</property>
通过web浏览器查看 hdfs上 数据: http://localhost:50070/
)
总结: 当运行自己的程序出错时, 先 排查是否是 环境问题:
那么就运行 spark官方的 示例程序:
http://spark.apache.org/docs/latest/running-on-yarn.html
结果运行如下 不报错:
将deploy-mode 改成 client 就出错, 说明的确是 环境有问题。 如果环境 无问题后,再检查自己的 逻辑代码。
报错如下:
16/05/06 16:46:24 WARN cluster.YarnSchedulerBackend$YarnSchedulerEndpoint: ApplicationMaster has disassociated: 10.60.104.147:37086
16/05/06 16:46:24 WARN remote.ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkYarnAM@10.60.104.147:37086] has failed, address is now gated for [5000] ms. Reason: [Disassociated]
16/05/06 16:46:24 WARN cluster.YarnSchedulerBackend$YarnSchedulerEndpoint: ApplicationMaster has disassociated: 10.60.104.147:37086
16/05/06 16:46:46 INFO cluster.YarnClientSchedulerBackend: SchedulerBackend is ready for scheduling beginning after waiting maxRegisteredResourcesWaitingTime: 30000(ms)
Exception in thread "main" java.lang.IllegalStateException: Cannot call methods on a stopped SparkContext
at org.apache.spark.SparkContext.org$apache$spark$SparkContext$$assertNotStopped(SparkContext.scala:103)
at org.apache.spark.SparkContext$$anonfun$parallelize$1.apply(SparkContext.scala:715)
at org.apache.spark.SparkContext$$anonfun$parallelize$1.apply(SparkContext.scala:714)
看不到 明显原因,只是说 sparkContext stop了。 在 localhost:8088 yarn 上看 spark的 运行的 具体 history 日志,发现是 :
is running beyond virtual memory limits.
超过 虚拟内存限制。
google 大法: + stackoverflow 大法, 英文搜
I solved the issue by setting yarn.nodemanager.vmem-check-enabled to false in yarn-site.xml,
在 yarn-site.xml 中 改了这个 就成功了。
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
( 如何保存 history 日志,在
mapred-site.xml 中 增加以下配置:
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop2:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop2:19888</value>
</property>
通过web浏览器查看 hdfs上 数据: http://localhost:50070/
)
总结: 当运行自己的程序出错时, 先 排查是否是 环境问题:
那么就运行 spark官方的 示例程序:
http://spark.apache.org/docs/latest/running-on-yarn.html
结果运行如下 不报错:
$ ./bin/spark-submit --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode cluster \ --driver-memory 4g \ --executor-memory 2g \ --executor-cores 1 \ --queue thequeue \ lib/spark-examples*.jar \ 10
将deploy-mode 改成 client 就出错, 说明的确是 环境有问题。 如果环境 无问题后,再检查自己的 逻辑代码。
相关文章推荐
- 上机报告5-1项目一数组分离
- 136 - Ugly Numbers
- leetcode 036 Valid Sudoku
- 装饰模式:不修改代码,给对象扩展新的功能
- redis info命令详解
- 谈谈农村农业农民
- mybatis日记之mapper参数判断
- CUDA学习笔记(1)
- Linux基础操作
- 迷宫最短路径
- 我排第几个——康托展开
- NYOJ 325 zb的生日
- hibernate 中使用XML配置方式cascade取值
- 如何编译&使用boost库?
- LineNumberReader
- RxJava使用(二)filter 操作符
- 要不要冗余字段
- atan2数学函数应用实例
- 《STL源码剖析》学习笔记-第4章 序列式容器
- Codeforces Round #350 (Div. 2) D1,D2Magic Powder(二分)