【发布时间】:2018-12-29 09:07:43
【问题描述】:
我是大数据处理的新手,我正在阅读有关流处理和构建数据管道的工具。 我找到了 Apache Spark 和 Spring Cloud Data Flow。我想知道它们的主要区别和优缺点。 有人能帮帮我吗?
【问题讨论】:
标签: apache-spark spring-cloud-dataflow
我是大数据处理的新手,我正在阅读有关流处理和构建数据管道的工具。 我找到了 Apache Spark 和 Spring Cloud Data Flow。我想知道它们的主要区别和优缺点。 有人能帮帮我吗?
【问题讨论】:
标签: apache-spark spring-cloud-dataflow
正如https://dataflow.spring.io/docs/concepts/architecture/#comparison-to-other-architectures中提到的那样
与其他架构的比较
Spring Cloud Data Flow 的架构风格不同于其他 Stream 和 Batch 处理平台。例如,在 Apache Spark、Apache Flink 和 Google Cloud Dataflow 中,应用程序在专用计算引擎集群上运行。与 Spring Cloud Data Flow 相比,计算引擎的性质为这些平台提供了更丰富的环境来对数据执行复杂的计算,但它引入了另一个执行环境的复杂性,这在创建以数据为中心的应用程序时通常不需要。这并不意味着您在使用 Spring Cloud Data Flow 时无法进行实时数据计算。例如,您可以开发使用 Kafka Streams API 的应用程序,该 API 具有时间滑动窗口和移动平均功能以及传入消息与参考数据集的连接。
【讨论】:
它们是两种完全不同的工具。
Spring Data Flow 是一个用于构建数据集成和实时数据处理管道的工具包。此工具将帮助您使用 Spring Boot 应用程序(流或任务)编排数据管道。在幕后,SCDF 可能会使用 Spring Batch。请注意,此 Spring Boot 应用程序可以调用 Spark 或 Kafka 应用程序来支持流处理。
Apache Spark 是一个数据处理引擎,它在数据密集处理和数据科学中得到了高度的应用。它拥有诸如 ML(机器学习)、Graph(图形处理)、与Apache Kafka(Spark Streaming)的集成等库。
对于流媒体,我强烈建议您学习 Apache Kafka。
【讨论】: