【发布时间】:2017-07-03 10:01:06
【问题描述】:
我有一个用例,我必须以 FIFO 方式处理事件。这些是从机器生成的事件。每台机器每 30 秒生成一个事件。对于特定的机器,我们需要根据先进先出的方式处理事件。
我们每天需要处理大约 2.4 亿个事件。对于如此大规模,我们需要使用 Kafka+Spark Streaming
从 Kafka 文档中我了解到,我们可以使用消息的关键字段将消息路由到特定主题分区。这确保了我可以使用机器 ID 作为键,并确保来自特定机器的所有消息都进入同一个主题分区。
50% 的问题已解决。
这里是处理端的问题。
Kafka Direct 方法的 spark 文档说 RDD 分区等同于 Kafka 分区。
那么当我执行 rdd.foreachPartition 时,任务是否以有序方式迭代?
是否保证RDD的一个partition总是在一个executor中?
是否保证foreachPartition任务只由一个线程执行整个分区?
请帮忙。
【问题讨论】:
标签: apache-spark spark-streaming