【发布时间】:2017-09-01 21:39:19
【问题描述】:
Kafka 作为存储系统可以作为长期数据的数据存储。它可以毫无问题地复制和分发。那么我可以从 Kafka 中的所有历史数据创建 RDD 并创建批处理视图,然后将其与 Spark Streaming Views 结合起来吗?
【问题讨论】:
标签: apache-spark apache-kafka spark-streaming batch-processing lambda-architecture
Kafka 作为存储系统可以作为长期数据的数据存储。它可以毫无问题地复制和分发。那么我可以从 Kafka 中的所有历史数据创建 RDD 并创建批处理视图,然后将其与 Spark Streaming Views 结合起来吗?
【问题讨论】:
标签: apache-spark apache-kafka spark-streaming batch-processing lambda-architecture
tl;dr 是的,但为什么呢?
根据前 Twitter 和 Lambda 架构的作者 Nathan Marz 的说法,这些是批处理层中主数据集的存储要求:
Kafka 满足所有这些要求,因此从技术上讲,它确实可以将主数据集存储在您的批处理层中。
但是,由 Jay Kreps(前 LinkedIn)设计的 Kappa Architecture 比 Lambda 架构更容易使用——而且我想说在满足物联网等现代用例方面更有效。实现它所需要做的就是分布式、可扩展、不可变、可配置的流,这正是 Kafka 提供的。那么为什么不这样做呢?
在 Lambda 架构的批处理层中使用 Kafka 进行数据存储是未充分利用其功能 - 其唯一目的是迫使其进入实际上随着时间推移效率降低的架构。
【讨论】: