本文概述
- Apache Spark
- Kafka流
- Kafka Streams与Spark流
Spark流
Apache spark通过Spark Streaming启用大型数据集的流传输。 Spark Streaming是核心Spark API的一部分,可让用户处理实时数据流。它从不同的数据源获取数据,并使用复杂的算法对其进行处理。最后,将处理后的数据推送到实时仪表板,数据库和文件系统中。
Kafka流【kafka streams和spark streaming的区别】一个客户端库,用于处理和分析存储在Kafka中的数据。 Kafka流使用户能够构建应用程序和微服务。此外,将输出存储在Kafka集群中。除了Kafka之外,它对系统没有任何外部依赖性。它一次只处理一条记录。
Kafka Streams与Spark流
参量 | Apache Kafka | Apache Spark |
---|---|---|
Developers | 最初由LinkedIn开发。后来, 捐赠给Apache Software Foundation。 | 最初在加利福尼亚大学开发。后来, 它被捐赠给了Apache Software Foundation。 |
Infrastructure | 它是一个Java客户端库。因此, 它可以在支持Java的任何地方执行。 | 它在Spark堆栈的顶部执行。它可以是独立的Spark, YARN或基于容器的。 |
Data Sources | 它通过主题和流处理来自Kafka本身的数据。 | Spark从各种文件, Kafka, Socket源等中提取数据。 |
Processing Model | 它在事件到达时对其进行处理。因此, 它使用了一次事件(连续)处理模型。 | 它具有微批量处理模型。它将传入的流分成小批量以进行进一步处理。 |
Latency | 它的延迟比Apache Spark低 | 它具有更高的延迟。 |
ETL Transformation | Apache Kafka不支持它。 | Spark支持此转换。 |
Fault-tolerance | 容错在Kafka很复杂。 | 容错在Spark中很容易。 |
Language Support | 它主要支持Java。 | 它支持多种语言, 例如Java, Scala, R, Python。 |
Use Cases | 纽约时报, Zalando, Trivago等使用Kafka Streams来存储和分发数据。 | Booking.com, Yelp(广告平台)每天使用Spark流处理数百万个广告请求。 |
推荐阅读
- Apache Kafka教程
- apache kafka和apache storm的区别
- apache kafka和rabbitmq的区别
- kafka安全性
- kafka中的消息压缩
- kafka流处理的关键概念
- kafka流处理
- kafka实时例子
- kafka创建twitter生产者(producer)