我正在寻找从Kafka读取消息(很多消息,每天大约100B)的最佳方式,在阅读了我需要对数据进行操作并将其写入HDFS的消息之后。
答案 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
,则无需自己编写任何代码