阅读Kafka的消息并写入HDFS

时间:2018-05-14 20:32:40

标签: apache-spark hadoop apache-kafka

我正在寻找从Kafka读取消息(很多消息,每天大约100B)的最佳方式,在阅读了我需要对数据进行操作并将其写入HDFS的消息之后。

  • 如果我需要以最佳性能做到这一点,那么从Kafka读取消息并将文件写入HDFS的最佳方式是什么?
  • 哪种编程语言最适合?
  • 我是否需要考虑使用像Spark这样的解决方案?

2 个答案:

答案 0 :(得分:1)

您应该使用Spark流(请参阅12 of 3proxy),它提供了Kafka分区和Spark分区之间的简单对应关系。

或者您可以使用Use Kafka Streams(请参阅here)。 Kafka Streams是一个用于构建应用程序和微服务的客户端库,其中输入和输出数据存储在Kafka集群中。

答案 1 :(得分:1)

您可以使用Spark,Flink,NiFi,Streamsets ......但Confluent正是为此提供了Kafka Connect HDFS

Kafka Connect API在转换方面有些限制,因此大多数人所做的就是编写Kafka Streams作业来过滤/增强数据到辅助主题,然后写入HDFS

注意:这些选项会将许多文件写入HDFS(通常,每个Kafka主题分区一个)

  

哪种编程语言最适合?

以上每个都使用Java。但是,如果使用NiFi,Streamsets或Kafka Connect

,则无需自己编写任何代码