spark on yarn-client 奇怪问题

来源:互联网 发布:mac word卡住了怎么办 编辑:程序博客网 时间:2024/05/16 05:51

运行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


结果运行如下 不报错:

$ ./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 就出错, 说明的确是 环境有问题。  如果环境 无问题后,再检查自己的 逻辑代码。





0 0
原创粉丝点击