为什么执行者会被司机杀死?

时间:2016-09-30 12:18:54

标签: scala apache-spark

我的火花工作的第一阶段非常简单。

  1. 它从大量文件中读取(大约30,000个文件,总共100GB) - > RDD[String]
  2. 做地图(解析每一行) - > RDD[Map[String,Any]]
  3. 过滤器 - > RDD[Map[String,Any]]
  4. 合并(.coalesce(100, true)
  5. 当它运行时,我观察到一种非常特殊的行为。执行程序的数量增长,直到我在spark.dynamicAllocation.maxExecutors中指定的给定限制(在我的应用程序中通常为100或200)。然后它开始迅速减少(大约14000/33428个任务)并且只剩下几个执行器。他们是killed by the drive。完成此任务后。执行程序的数量增加回其最大值。

    下面是最低的执行者数量的截图。

    enter image description here

    这是任务摘要的屏幕截图。

    enter image description here

    我猜这些执行者因为空闲而被杀死。但是,在这种情况下,我不明白为什么他们会闲着。在舞台上还有很多工作要做......

    你知道为什么会这样吗?

    修改

    有关执行者被杀的驱动程序日志的更多详细信息:

    16/09/30 12:23:33 INFO cluster.YarnClusterSchedulerBackend: Disabling executor 91.
    16/09/30 12:23:33 INFO scheduler.DAGScheduler: Executor lost: 91 (epoch 0)
    16/09/30 12:23:33 INFO storage.BlockManagerMasterEndpoint: Trying to remove executor 91 from BlockManagerMaster.
    16/09/30 12:23:33 INFO storage.BlockManagerMasterEndpoint: Removing block manager BlockManagerId(91, server.com, 40923)
    16/09/30 12:23:33 INFO storage.BlockManagerMaster: Removed 91 successfully in removeExecutor
    16/09/30 12:23:33 INFO cluster.YarnClusterScheduler: Executor 91 on server.com killed by driver.
    16/09/30 12:23:33 INFO spark.ExecutorAllocationManager: Existing executor 91 has been removed (new total is 94)
    

    登录执行程序

    16/09/30 12:26:28 INFO rdd.HadoopRDD: Input split: hdfs://...
    16/09/30 12:26:32 INFO executor.Executor: Finished task 38219.0 in stage 0.0 (TID 26519). 2312 bytes result sent to driver
    16/09/30 12:27:33 ERROR executor.CoarseGrainedExecutorBackend: RECEIVED SIGNAL 15: SIGTERM
    16/09/30 12:27:33 INFO storage.DiskBlockManager: Shutdown hook called
    16/09/30 12:27:33 INFO util.ShutdownHookManager: Shutdown hook called
    

1 个答案:

答案 0 :(得分:0)

我在由于空闲超时而被杀死的执行程序上看到了这个问题。我有一个非常苛刻的计算负载,但它主要是在 UDF 中计算的,对 Spark 不可见。我相信有一些可以调整的火花参数。

尝试查看 https://spark.apache.org/docs/latest/configuration.html#spark-properties 中的 spark.executor 参数,看看是否有任何内容跳出。