使用Azure事件中心进行Spark Streaming

时间:2017-09-26 13:30:16

标签: azure spark-streaming hdinsight azure-eventhub azure-iot-hub

我们使用spark-streaming-eventhubs从我们的Spark Streaming应用程序中的IoTHub读取数据。我想了解这个库是否完全处理了抵消和租赁管理? 在this博文中,它说:

  

...按设计,每个EventHubsReceiver实例只处理一个事件中心分区。每个接收器实例都需要一个CPU内核才能运行,您需要留下一些CPU内核来处理接收到的数据。因此,如果在Event Hubs参数中将分区计数设置为N,则需要确保为流应用程序分配2xN CPU核心。

那是否意味着图书馆会自动为每个分区创建一个接收器并管理租约? 它会自动将检查点写入检查点位置吗?

它还说我们需要为流应用程序分配2xN CPU核心。如果IoTHub中有4个分区,那么需要8个CPU内核,它是否真的正确?那么创建可以处理多个用例并输出到多个位置而不是每个用例/位置的一个流应用程序的应用程序是否有意义?

在后一种情况下,例如有3个应用程序从同一个IoTHub(4个分区)读取我们需要24个核心,这是昂贵的...

谢谢!

1 个答案:

答案 0 :(得分:3)

是的,如果您指的是this library - 我们支持租赁管理并从库中完全重放Offset(即,库为每个分区创建一个接收器并管理每个分区的租约和检查点位置)。

我们为那篇文章中的CPU故事 - 不再适用 - 道歉 - 为了给出一些背景知识 - 我们继续进行了2次EventHubs-to-SPARK适配器工作 - 一段时间后我们认识到并巩固了它们。您正在查看一篇文章,该文章引用了已弃用的EventHubs工作 - 该工作已过时 - 我们将修复此问题。