【问题标题】:Task do not assign to exectuor after spark speculation take effect in SparkStreaming火花推测在 Spark Streaming 中生效后任务不分配给执行者
【发布时间】:2019-01-07 00:17:49
【问题描述】:

我有一个 SparkStreaming 应用程序从 kafka 读取消息,所有任务流程数据的位置为 process_local。 当 executor 0 中有任务挂起时,推测生效并在其他 executor 中重新运行任务(见下图)

待处理的 img : https://imgchr.com/i/FWWMDS

但是我发现推测生效后没有任务会分配给executor 0,并且数据位置从process_local更改为any,这导致更多时间来调度任务

执行者丢失 img : https://imgchr.com/i/FWW3Nj

集群执行器信息 img : https://imgchr.com/i/FWWY3q

一些配置:

spark.speculation.interval  500ms
spark.scheduler.mode    FIFO
spark.streaming.kafka.maxRatePerPartition   100
spark.locality.wait 1s
spark.defalut.parallelism   6

如何将任务重新分配给执行程序 0 并将数据本地性从 any 恢复到 process_local?

为什么任务不再分配给执行者 0?

【问题讨论】:

标签: apache-spark spark-streaming


【解决方案1】:

根本原因是程序中使用了kafka consumer lib版本,请改用kafka v0.10.2.1,见https://issues.apache.org/jira/browse/SPARK-20780

【讨论】:

    猜你喜欢
    • 2014-06-25
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    • 2020-06-13
    • 2021-07-11
    • 2020-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多