4

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

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

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

Spark 是否允许您并行运行多个流作业,以便您可以为每个流(或在本例中为每个 Kafka 主题)保持单独的聚合分析。如果是这样,那是如何完成的,您可以指出我的任何文件吗?

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

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

如果不是 Spark,这在 Flink 中可以做到吗?

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

4

2 回答 2

3

你问了多个问题,所以我将分别解决每个问题。

  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/

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

于 2017-01-12T17:27:07.603 回答
0

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

于 2018-01-10T17:07:31.583 回答