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

时间:2017-01-12 14:09:00

标签: apache-spark flink-streaming apache-spark-2.0

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

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

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

Spark是否允许您并行运行多个流式处理作业,以便您可以为每个流保持单独的聚合分析,或者在每种情况下保持每个Kafka主题。如果是这样,那怎么办,你可以指点我的任何文件?

为了清楚起见,我的用例是从不同的来源流式传输,每个来源可能具有我需要执行的不同分析以及不同的数据结构。我希望能够有多个Kafka主题和分区。我知道每个Kafka分区都映射到Spark分区,并且可以并行化。

我不确定如何并行运行多个Spark流媒体作业,以便能够从多个Kafka主题中读取,并将这些主题/流的单独分析制成表格。

如果不是Spark就可以在Flink中做到这一点吗?

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

2 个答案:

答案 0 :(得分:3)

您已经提出了多个问题,因此我将分别解决每个问题。

  1. Spark是否允许您并行运行多个流媒体作业?
    1. 是否有关于使用Kafka的Spark Streaming的文档?
    2. https://spark.apache.org/docs/latest/streaming-kafka-integration.html

      1. 如何开始?
      2. 一个。书:https://www.amazon.com/Learning-Spark-Lightning-Fast-Data-Analysis/dp/1449358624/

        湾运行/学习Spark的简便方法:https://community.cloud.databricks.com

答案 1 :(得分:0)

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