Rule of thumb: Kafka vs Spark

时间:2018-12-19 11:19:53

标签: apache-spark apache-kafka stream

If the use case does not have any complex data processing or ML requirements can Kafka be the right choice for real time streaming?

I understand Spark provides much richer capabilities for data processing.

What I have seen is majority of the design patterns are talking about integrating Spark with Kafka and of the opinion that Spark and Kafka are not competitor technologies. Are these points still valid in end of 2018?

1 个答案:

答案 0 :(得分:1)

Kafka Streams仅处理卡夫卡中的数据。 Spark可以连接到Hadoop,S3,Hive,Mongo,Elastic等。

Kafka Connect 在外部系统和Kafka之间进行读取和写入。使用Spark不需要Kafka,但是随着您为点对点ETL作业编写越来越多的Spark,您将开始欣赏在系统之间使用Kafka。

Kafka本身仅存储消息,而不进行处理,并且可以由Spark,Storm,Samza,Flink,Beam等使用(后者是实际的实时流框架,而不能microbatching)。

每个工具都有其自己的“功能集”,但是特别是在ML中,存在有关如何在Kafka Streams中使用机器学习模型的文档,并且还有过滤器,映射,联接等。不确定我了解您如何定义“更丰富”

就Spark而言,您需要有一个集群调度程序来部署代码以扩展代码,例如YARN。与Kafka Streams相比,它更具灵活性,但是您必须根据可能具有多租户的Spark Cluster调度程序来调优每个作业(某些较大的SparkSQL查询会减慢Spark Streaming作业的速度)。

  

Spark和Kafka不是竞争对手的技术。这些积分在2018年底仍然有效吗?

Spark不会像Kafka那样保留数据,所以

火花结构化流只是Spark中的一个库,以上所有要点同样适用