我正在学习如何使用spark,我有一个简单的程序。当我运行jar文件时,它给了我正确的结果,但我在stderr文件中有一些错误。就像这样:
15/05/18 18:19:52 ERROR executor.CoarseGrainedExecutorBackend: Driver Disassociated [akka.tcp://sparkExecutor@localhost:51976] -> [akka.tcp://sparkDriver@172.31.34.148:60060] disassociated! Shutting down.
15/05/18 18:19:52 WARN remote.ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkDriver@172.31.34.148:60060] has failed, address is now gated for [5000] ms. Reason is: [Disassociated].
你可以在那里获得整个stderr文件:
http://172.31.34.148:8081/logPage/?appId=app-20150518181945-0026&executorId=0&logType=stderr
我搜索了这个问题并找到了这个:
Why spark application fail with "executor.CoarseGrainedExecutorBackend: Driver Disassociated"?
然后我按照说法调出spark.yarn.executor.memoryOverhead,但它没有工作。
我只有一个主节点(8G内存),在spark的slaves文件中只有一个从节点 - 主节点。我这样提交:
./bin/spark-submit --class .... --master spark://master:7077 --executor-memory 6G --total-executor-cores 8 /path/..jar hdfs://myfile
我不知道执行者是什么,驱动程序是什么......哈哈...... 抱歉...
有人帮帮我吗?
答案 0 :(得分:2)
如果Spark Driver失败,它将被取消关联(来自YARN AM)。请尝试以下操作以使其更具容错性:
spark-submit
Spark Standalone群集上有--supervise
个标记
YARN yarn-cluster
模式spark.yarn.driver.memoryOverhead
参数用于增加YARN上的驱动程序内存分配注意:YARN cluster(尚未)支持驱动程序监督(spark.driver.supervise
)。
答案 1 :(得分:0)
可在http://spark.apache.org/docs/latest/cluster-overview.html或https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-architecture.html
找到驱动程序与执行程序(及其他人)的概述它们是可以在不同或相同的计算机上运行的java进程,具体取决于您的配置。驱动程序包含SparkContext,声明RDD转换(如果我没弄错 - 想想执行计划)然后将其传递给创建任务定义的spark master,询问集群管理器(它自己的,纱线, mesos)用于资源(工作节点),然后这些任务又被发送到执行程序(用于执行)。
执行者回复掌握某些信息,据我所知,如果驾驶员遇到问题或崩溃,主人会注意并告诉执行人(并依次记录)你看到的内容"驱动程序被解除了#34;这可能是因为很多事情,但最常见的是因为java进程(驱动程序)内存不足(尝试增加spark.driver.memory)
在Yarn vs Stand-alone vs Mesos上运行时有些不同,但希望这会有所帮助。如果驱动程序被取消关联,则运行的java进程(作为驱动程序)可能会遇到错误 - 主日志可能有某些内容,并且不确定是否存在特定于驱动程序的日志。希望比我更有知识的人可以提供更多信息。