【问题标题】:spark streaming with kafka how to handle handle driver exceptions使用kafka进行火花流处理如何处理驱动程序异常
【发布时间】:2018-05-26 03:20:29
【问题描述】:

我有一个 SPARK 流应用程序,它从 kafka 直接流中读取连续传入的数据。

这是我的设置

   spark-core_2.10 - 2.1.1
   spark-streaming_2.10 - 2.1.1
   spark-streaming-kafka-0-10_2.10 - 2.0.0
   kafka_2.10 - 0.10.1.1

它在大多数情况下运行良好,但有时当我正在写入 kafka 的其他应用程序重新启动时,我会收到以下错误。

 WARN NetworkClient: Error while fetching metadata with correlation id 139022 : {topic4908100105=LEADER_NOT_AVAILABLE}
 18/05/24 11:59:33 WARN NetworkClient: Error while fetching metadata with correlation id 139022 : {topic000001=LEADER_NOT_AVAILABLE}
.
.
.

 ERROR JobScheduler: Error generating jobs for time 1527163130000 ms
 java.lang.IllegalArgumentException: requirement failed: numRecords must not be negative

我在 SO 中看到了其他帖子,人们建议重新启动 kafka 或 spark 应用程序以从该错误中恢复。但是我的应用程序必须在没有任何人工干预的情况下连续运行!

有没有办法在我的 Spark 消费者类 (java) 中处理此异常并重新启动流或应用程序?

【问题讨论】:

    标签: apache-spark apache-kafka spark-streaming


    【解决方案1】:

    警告 NetworkClient:获取相关 ID 为 139022 的元数据时出错:{topic4908100105=LEADER_NOT_AVAILABLE} 24 年 5 月 18 日 11:59:33 警告 NetworkClient:获取相关 ID 为 139022 的元数据时出错:{topic000001=LEADER_NOT_AVAILABLE}

    这是 Kafka 的问题,因为每个分区的领导者和追随者都在那里。领导者服务的请求。如果由于 zookeeper 问题导致 leader 不可用,Kafka 将抛出此错误。

    您需要修复 Kafka 问题才能接收数据。但是,您可以使用以下配置属性来处理异常情况。

    • --conf spark.yarn.maxAppAttempts=10
    • --conf spark.yarn.am.attemptFailuresValidityInterval=1h
    • --conf spark.yarn.max.executor.failures=10
    • --conf spark.yarn.executor.failuresValidityInterval=1h

    【讨论】:

    • 我没有使用 Yarn,我使用 Spark 独立模式来运行我的应用程序。
    猜你喜欢
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多