kafka streams和spark streaming的区别

本文概述

  • Apache Spark
  • Kafka流
  • Kafka Streams与Spark流
Apache SparkApache Spark是一个分布式的通用处理系统,可以一次处理PB级数据。它主要用于流传输和处理数据。它分布在数千个虚拟服务器之间。大型组织使用Spark处理大量数据集。 Apache Spark允许使用大约80个高级运算符更快地构建应用程序。通过查询优化器,物理执行引擎和DAG调度程序,它获得了流和批处理数据的高性能。因此,它的速度快了一百倍。
Spark流
Apache spark通过Spark Streaming启用大型数据集的流传输。 Spark Streaming是核心Spark API的一部分,可让用户处理实时数据流。它从不同的数据源获取数据,并使用复杂的算法对其进行处理。最后,将处理后的数据推送到实时仪表板,数据库和文件系统中。
Kafka流【kafka streams和spark streaming的区别】一个客户端库,用于处理和分析存储在Kafka中的数据。 Kafka流使用户能够构建应用程序和微服务。此外,将输出存储在Kafka集群中。除了Kafka之外,它对系统没有任何外部依赖性。它一次只处理一条记录。
Kafka Streams与Spark流
参量Apache KafkaApache 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 TransformationApache Kafka不支持它。Spark支持此转换。
Fault-tolerance容错在Kafka很复杂。容错在Spark中很容易。
Language Support它主要支持Java。它支持多种语言, 例如Java, Scala, R, Python。
Use Cases纽约时报, Zalando, Trivago等使用Kafka Streams来存储和分发数据。Booking.com, Yelp(广告平台)每天使用Spark流处理数百万个广告请求。

    推荐阅读