如何并行对多个 Spark 作业执行多个 Kafka 主题

How to do multiple Kafka topics to multiple Spark jobs in parallel

如果这个问题没有意义,请原谅,因为我刚刚开始使用 Spark 并试图理解它。

据我所知,Spark 是对流数据进行实时分析的一个很好的用例,然后可以将其推送到下游接收器,例如 hdfs/hive/hbase 等

我有两个问题。我不清楚在任何给定时间是否只有 1 个火花流作业 运行ning 或多个。假设我需要对来自 Kafka 的每个主题或流入 Kafka 的每个源执行不同的分析,然后将这些结果推送到下游。

Spark 是否允许您运行 并行处理多个流作业,以便您可以为每个流或在本例中为每个 Kafka 主题保持单独的聚合分析。如果是这样,那是怎么做到的,你能给我指点什么文件吗?

需要说明的是,我的用例是从不同的来源进行流式传输,每个来源可能具有我需要执行的潜在不同分析以及不同的数据结构。我希望能够拥有多个 Kafka 主题和分区。我了解每个 Kafka 分区映射到一个 Spark 分区,并且可以并行化。

我不确定您如何 运行 并行执行多个 Spark 流作业,以便能够从多个 Kafka 主题中读取数据,并对这些 topics/streams 进行单独的分析。

如果不是 Spark,这可以在 Flink 中实现吗?

其次,如何开始使用 Spark,似乎每个组件都有一家公司和/或发行版可供选择,Confluent-Kafka、Databricks-Spark,Hadoop-HW/CDH/MAPR。是否真的需要所有这些,或者在限制供应商数量的同时开始使用大数据管道的最小和最简单的方法是什么?从 POC 开始似乎是一项艰巨的任务。

您提出了多个问题,我将一一解答。

  1. Spark 是否允许您运行 并行处理多个流作业?

  1. 是否有任何关于使用 Kafka 进行 Spark Streaming 的文档?

https://spark.apache.org/docs/latest/streaming-kafka-integration.html

  1. 如何开始?

一个。书:https://www.amazon.com/Learning-Spark-Lightning-Fast-Data-Analysis/dp/1449358624/

b。 run/learn Spark 的简单方法:https://community.cloud.databricks.com

我同意 Akbar and John 我们可以 运行 从不同来源并行读取多个流。 我想补充一点,如果你想在流之间共享数据,你可以使用 Spark SQL API。因此,您可以将 RDD 注册为 SQL table 并在所有流中访问相同的 table 。这是可能的,因为所有流共享相同的 SparkContext