11.22 Apache Kafka和Apache NiFi集成

  • 介绍

Apache Kafka是一个高吞吐量的分布式消息队列系统,已成为主流的数据流通道。Apache NiFi的主要任务是将数据从各种数据源的数据提取到数据目的目标端,这里将介绍如何将Apache NiFi与Apache Kafka集成,对数据进行提取、转换和存储的几个具体案例以及细节。

  • NiFi作为Kafka的生产者
Apache Kafka和Apache NiFi集成

NiFi作为Kafka的数据生产者

随着Apache NiFi的子项目Apache MiNiFi的出现,MiNiFi可以将数据从数据源直接发送到Apache NiFi中心实例,然后该实例将数据传递到指定的Kafka Topic。这样做的主要好处是,只需在Apache NiFi中心实例上配置处理器,就可以在不编写任何代码的情况下将数据导入Kafka,并且可以直观地监视和控制该管道。

  • NiFi作为Kafka的消费者
Apache Kafka和Apache NiFi集成

NiFi作为Kafka的消费者


在有些情况下可能已经有数据发送到Kafka的管道。在这种情况下,NiFi可以充当消费者的角色,并完成将数据从Kafka提取、处理并发送到数据目标端的所有逻辑。同样,您可以在不需要编写任何代码的情况下将数据从Kafka传递到HDFS,并且可以利用NiFi的MergeContent处理器来接收来自Kafka的消息,并将它们打包为HDFS适当大小的文件。

  • 双向数据流
Apache Kafka和Apache NiFi集成

双向数据流


更复杂的情况可能涉及将NiFi,Kafka和流处理平台的功能结合起来以创建动态的数据流。在这种情况下,MiNiFi和NiFi将数据发送Kafka,从而可将其提供给流处理平台或其他分析平台,并将结果写回到NiFi所使用的不同Kafka主题,并将结果推回给MiNiFi处理收集。这种情况的另一个好处是,如果我们需要对结果进行其他处理,NiFi可以将数据传输到任何需要的地方,而无需部署新代码。


分享到:


相關文章: