使用 Azure 事件中心的 Spark Streaming
Spark Streaming using Azure Event Hubs
我们在 Spark Streaming 应用程序中使用 spark-streaming-eventhubs 从 IoTHub 读取数据。我想了解抵消和租赁管理是否完全由该库处理?
在 this 博客 post 中说:
...by design each EventHubsReceiver instance only handles one Event Hubs partition. Each receiver instance requires one CPU core to run, and you need to leave some CPU cores to process the received data. So if you set partition count to N in Event Hubs parameters, you need to make sure you assign 2xN CPU cores to the streaming application.
那么这是否意味着图书馆将自动为每个分区创建一个接收器并管理租约?
它会自动将检查点写入检查点位置吗?
它还说我们需要将 2xN CPU 个核心分配给流媒体应用程序。因此,如果 IoTHub 中有 4 个分区,则需要 8 CPU 个核心,这真的正确吗?那么创建可以处理多个用例并输出到多个位置的应用程序而不是每个用例/位置一个流式应用程序是否有意义?
在后一种情况下,例如有 3 个应用程序从同一个 IoTHub(4 个分区)读取,我们需要 24 个内核,这很昂贵...
谢谢!
是的,如果您指的是 this library - 我们支持租约管理,并完全在库中从 Offset 重播(即,库为每个分区创建一个接收器并管理每个分区的租约和检查点位置) .
我们对 CPU 的故事——不再适用——在那篇文章中表示歉意——提供一些背景——我们有 2 个 EventHubs-to-SPARK 适配器工作正在进行——过了一段时间我们认识到了这一点并整合了它们。您正在查看的文章提到了已弃用的 EventHubs 成果 - 它已经过时 - 我们会修复它。
我们在 Spark Streaming 应用程序中使用 spark-streaming-eventhubs 从 IoTHub 读取数据。我想了解抵消和租赁管理是否完全由该库处理? 在 this 博客 post 中说:
...by design each EventHubsReceiver instance only handles one Event Hubs partition. Each receiver instance requires one CPU core to run, and you need to leave some CPU cores to process the received data. So if you set partition count to N in Event Hubs parameters, you need to make sure you assign 2xN CPU cores to the streaming application.
那么这是否意味着图书馆将自动为每个分区创建一个接收器并管理租约? 它会自动将检查点写入检查点位置吗?
它还说我们需要将 2xN CPU 个核心分配给流媒体应用程序。因此,如果 IoTHub 中有 4 个分区,则需要 8 CPU 个核心,这真的正确吗?那么创建可以处理多个用例并输出到多个位置的应用程序而不是每个用例/位置一个流式应用程序是否有意义?
在后一种情况下,例如有 3 个应用程序从同一个 IoTHub(4 个分区)读取,我们需要 24 个内核,这很昂贵...
谢谢!
是的,如果您指的是 this library - 我们支持租约管理,并完全在库中从 Offset 重播(即,库为每个分区创建一个接收器并管理每个分区的租约和检查点位置) .
我们对 CPU 的故事——不再适用——在那篇文章中表示歉意——提供一些背景——我们有 2 个 EventHubs-to-SPARK 适配器工作正在进行——过了一段时间我们认识到了这一点并整合了它们。您正在查看的文章提到了已弃用的 EventHubs 成果 - 它已经过时 - 我们会修复它。