大数据流处理赏罚:Flume、Kafka和NiFi比拟
在构建大数据流水线时,我们必要思量处理赏罚数据的数目,种类和速率,这些数据凡是呈此刻Hadoop生态体系的进口。在抉择回收哪种器材来满意我们的要求时,城市思量到可扩展性、靠得住性、顺应性、开拓时刻方面的本钱等起源身分。在本文中,我们将扼要先容三种Apache处理赏罚器材:Flume,Kafka和NiFi。这三种产物都具有精彩的机能,可以横向扩展,并提供插件机制,可通过自界说组件扩展成果。 Apache Flume Flume陈设由一个或多个行使拓扑设置的署理构成。Flume署理是一个JVM历程,它承载Flume拓扑的根基构建块,即源、通道和吸取器。Flume客户机将变乱发送到源,该源将这些变乱成批安排到名为channel的姑且缓冲区中,然后从该缓冲区中数据流到毗连到数据最终目标地的吸取器。吸取器也可所以其他Flume署理的后续数据源。署理可以被链接,而且每个署理都有多个源、通道和吸取器。 ![]() Flume是一个漫衍式体系,可用于网络、聚合流变乱并将其传输到Hadoop中。它有很多内置的源、通道和吸取器,譬喻Kafka通道和Avro吸取器。Flume是基于设置的,它有拦截器来对通道中的数据执行简朴的转换。 假如不警惕,行使Flume很轻易丢失数据。譬喻,为高吞吐量选择内存通道有一个弱点,即当署理节点封锁时,数据将丢失。文件通道将以增进耽误为价钱提供耐久性。纵然云云,因为数据没有复制到其他节点,因此文件通道仅与底层磁盘一样的靠得住性。Flume通过多跳/扇入扇出流提供了可伸缩性。对付高可用性(HA),可以程度扩展署理。 Apache Kafka Kafka是一种漫衍式、高吞吐量的动静总线,它将数据出产者与斲丧者分分开来。动静被组织成主题,主题被拆两全分区,分区被跨集群中的节点(称为署理)复制。与Flume对比,Kafka具有更好的可扩展性和动静耐久性。Kafka此刻有两种气魄沤背秃一种是“经典”的出产者/斲丧者模子,另一种是新的Kafka-Connect,它为外部数据存储提供可设置的毗连器(源/吸取器)。 Kafka可用于大型软件体系组件之间的变乱处理赏罚和集成。另外,Kafka附带了Kafka流,它可以用于简朴的流处理赏罚,而不必要像Apache Spark或Apache Flink那样的单独集群。 因为动静被耐久化在磁盘上,而且在集群中被复制,因此数据丢失环境不像Flume那样常见。也就是说,无论是行使Kafka客户端照旧通过Connect API,出产者/来历和斲丧者/吸取器凡是都必要自界说编码。与Flume一样,动静巨细也有限定。最后,为了可以或许举办通讯,Kafka的出产者和斲丧者必需就协议、名目和架构告竣同等,这在某些环境下也许会有题目。 Apache NiFi 与Flume和Kafka差异,NiFi可以处理赏罚恣意巨细的动静。在基于Web的拖放式用户界面后头,NiFi在集群中运行,并提供及时节制,使您可以轻松打点任何源和任何方针之间的数据移动。它支持差异名目、模式、协议、速率和巨细的分手和漫衍式源。 NiFi可以用于具有严酷安详性和合规性要求的要害使命数据流中,在哪里我们可以可视化整个进程并及时举办变动。在撰写本文时,它有近200个随时可用的处理赏罚器(包罗Flume和Kafka处理赏罚器),可以举办拖放、设置和当即投入行使。NiFi的一些要害特征是优先级列队、数据跟踪和每个毗连的背压阈值设置。 尽量NiFi用于建设容错出产管道,但它还没有像Kafka那样复制数据。假如一个节点产生妨碍,那么可以将流定向到另一个节点,可是列队守候妨碍节点的数据必需守候该节点规复。NiFi不是一个成熟的ETL器材,也不是伟大计较和变乱处理赏罚(CEP)的抱负选择。为此,它应该毗连到Apache Flink,Spark Streaming或Storm等流式传输框架。 组合 没有哪个器材 满意您的全部要求。组合以更好方法执行差异操纵的器材可以实现成果的加强,并进步处理赏罚更多场景的机动性。按照您的需求,NiFi和Flume都可以充当Kafka出产者或斲丧者。 Flume-Kafka集成很是受接待,它有本身的名字:Flafka(我不是这样做的)。Flafka包罗Kafka源,Kafka通道和Kafka池。团结Flume和Kafka,Kafka可以停止自界说编码并操作Flume颠末拭魅战检验的资源和吸取器,通过Kafka通道的Flume变乱将在Kafka署理中举办存储和复制,以实现弹性。 组合器材也许看起来很挥霍,由于它好像在成果较量重叠。譬喻,NiFi和Kafka都提供了署理来毗连出产者和斲丧者。可是,它们的做法差异:在NiFi中,大部门数据流逻辑不在出产者/斲丧者内部,而是在署理中,应承齐集节制。NiFi的构建是为了做一件重要的工作:数据流打点。通过两种器材的团结,NiFi可以充实操作Kafka靠得住的流数据存储,同时办理Kafka无法办理的数据流挑衅。 END 总结: ![]()
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |