【问题标题】:Spark Streaming + Kinesis : Initial record consumptionSpark Streaming + Kinesis:初始记录消耗
【发布时间】:2016-12-08 10:32:37
【问题描述】:

我正在使用 Kinesis Stream 提供 Spark 流。 我的项目是使用1s批次, 在第一批期间(队列包含几百万个项目,并且任务被告知从流的开头开始) 火花流开始消耗 10K 记录的批次。 这种情况每 10/20 秒发生一次。

即:

t0 -> records : 0 t1 -> records : 0 ..... t10 -> records: 10.000 -> total process time is 0.8s (lower than batch time) t11 -> recods : 0 .. t15 ->records : 0 .. t20 -> records: 10.000

这种行为会一直发生,直到火花到达流的顶部。在 htat 之后,每批都会每秒处理一次元素。

感觉就像在开始时它应该始终如一地处理每批记录的数量,而不是让 htat high number of batches 处理没有记录。

我忽略了任何设置?所描述的行为是预期的吗?

【问题讨论】:

  • 您的记录是否经常流入?目前尚不清楚您是如何从您的问题中收到这些信息的。
  • @YuvalItzchakov 我设置了 1s 个批次,所附图片应该回答你的问题(?)有一个 kinesis 接收器
  • 您的图片没有回答我的问题。您说感觉就像在开始时它应该始终如一地处理每批记录的数量,而没有大量的批次处理没有记录。但它不像 Spark Streaming 那样工作。如果您一次发送一批 10000 条消息,并且接收者看到它们并且没有设置 限制,它会将它们全部消耗掉。
  • 知道了,当 spark 启动时:(i)。该流包含几百万个项目(ii)。 Spark 被告知从 hte 流的开头开始(我通过删除运动表中的条目来强制执行此操作)(ii)火花开始消耗 10K 的批次,但不是连续的,而是在(10/20 秒)的空间中希望解释有道理
  • Kinesis 的开始 (TRIM_HORIZON) 位置可能存在问题。另外,您的流中有多少个分片?

标签: spark-streaming amazon-kinesis


【解决方案1】:

这个问题的原因是这个错误:spark-kinesis 消费者中的https://issues.apache.org/jira/browse/SPARK-18620,它没有正确设置 maxRate。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多