初赛

在构建大数据管道时,我们需要考虑如何吸收出现在通常是Hadoop生态系统大门口的数据量,多样性和速度。 在决定采用哪种工具来满足我们的要求时,诸如可伸缩性,可靠性,适应性,开发时间成本等方面的初步考虑都将发挥作用。 在这篇文章中。 我们将简要介绍三个Apache提取工具: FlumeKafkaNiFi 。 所有这三种产品均具有出色的性能,可以水平缩放,并提供一种插件架构,可以通过自定义组件扩展功能。

阿帕奇水槽

Flume部署由一个或多个配置了拓扑的代理组成。 Flume Agent是一个JVM进程,它承载Flume拓扑的基本构建块,即源,通道和接收器。 Flume客户端将事件发送到源,源将这些事件成批放置到称为通道的临时缓冲区中,然后数据从那里流到连接到数据最终目标的接收器。 接收器也可以是其他Flume代理的后续数据源。 代理可以链接起来,并且每个都有多个源,通道和接收器。

Flume是一个分布式系统,可用于收集,聚合流事件并将其传输到Hadoop中。 它带有许多内置源,通道和接收器,例如Kafka Channel和Avro接收器。 Flume基于配置,并具有拦截器 ,可对运行中的数据执行简单的转换。

如果不小心,很容易使用Flume丢失数据。 例如,选择内存通道以实现高吞吐量具有不利的一面,即当代理程序节点发生故障时,数据将丢失。 文件通道将以增加延迟为代价提供持久性。 即使这样,由于数据不会复制到其他节点,因此File通道仅与基础磁盘一样可靠。 Flume确实通过多跳/扇入扇出流提供了可伸缩性。 对于高可用性(HA),可以水平缩放代理。

阿帕奇·卡夫卡

Kafka是一种分布式的高吞吐量消息总线,可数据生产者与消费者分离 。 消息按主题进行组织,主题被划分为多个分区,并且跨集群中的节点(称为代理)复制分区。 与Flume相比,Kafka具有更好的可伸缩性和消息持久性。 Kafka现在有两种形式:“经典”生产者/消费者模型,以及新的Kafka-Connect ,它提供了到外部数据存储的可配置连接器(源/接收器)。

Kafka可用于事件处理以及大型软件系统的组件之间的集成。 开箱即用地处理数据峰值和背压 (快速生产,缓慢消费)。 此外,Kafka附带有Kafka Streams ,可以将其用于简单的流处理,而无需像Apache Spark或Apache Flink那样需要单独的集群。

由于消息在磁盘上持久保存并在群集中复制,因此数据丢失的情况比Flume少见。 也就是说,使用Kafka客户端或通过Connect API,生产者/源和消费者/接收者通常需要自定义编码。 与Flume一样,邮件大小也有限制。 最后,为了能够进行通信,Kafka的生产者和消费者都必须就协议,格式和模式达成共识,这在某些情况下可能会出现问题。

Apache NiFi

NiFl与Flume和Kafka不同。 可以处理任意大小的消息。 NiFi在基于Web的拖放式UI的背后,在群集中运行,并提供实时控制,可轻松管理任何源与任何目标之间的数据移动。 它支持格式,架构,协议,速度和大小不同的分散源。

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并非旨在解决的数据流挑战。

结论

总结:

还有更多要讨论的内容,但这将是书的主题而不是文章。 另外,由于此处提到的工具正在Swift发展,因此与所有其他有关新兴技术的简短分析一样,迟早也必将过时。

翻译自: https://www.javacodegeeks.com/2017/07/big-data-ingestion-flume-kafka-nifi.html

大数据摄取:Flume,Kafka和NiFi相关推荐

  1. 大数据Hadoop之——Kafka安全机制(Kafka SSL认证实现)

    文章目录 一.概述 1)SASL认证概述 2)Delegation Token认证概述 3)SSL认证概述(本章实现) 二.各种安全认证机制对比和使用场景 三.Kafka SSL认证实现 1)创建ss ...

  2. kafka数据到flume_大数据摄取:Flume,Kafka和NiFi

    kafka数据到flume 初赛 在构建大数据管道时,我们需要考虑如何吸收出现在通常是Hadoop生态系统大门口的数据量,多样性和速度. 在决定采用哪种工具来满足我们的要求时,诸如可伸缩性,可靠性,适 ...

  3. 大数据(9) - Flume的安装与使用

    Flume简介 --(实时抽取数据的工具) 1) Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集.聚集.移动的服务,Flume只能在Unix环境下运行. 2) Flume基于流式架构 ...

  4. 大数据之Flume原理

    听完小吴老师讲的以后,做的笔记~~~ 1.Flume定义 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方 ...

  5. 大数据技术之Kafka

    版本:V2.0 前言 本笔记主要记录尚硅谷kafka视频笔记                                  视频链接 一. kafka概述 1.1 消息队列 (1)点对点模式(一对 ...

  6. 大数据技术——Flume原理分析

    摘要 主要是分析和讲解Flum的原理源码分析 Flume概述 Flume是的一个分布式.高可用.高可靠的海量日志采集.聚合和传输的系统,支持在日志系统中定制各类数据发送方,用于收集数据,同时提供了对数 ...

  7. 大数据中台之Kafka,到底好在哪里?

    来自:架构之美 Hello,大家好,今天给大家分享一个大数据里面很火的技术--Kafka,Kafka 是一个分布式的消息系统,其高性能在圈内很出名.本人阅读过多个大数据生态的开源技术的源码,个人感觉 ...

  8. 大数据技术之 Kafka (第 3 章 Kafka 架构深入 ) Kafka 生产者

    3.2.1 分区策略  1)分区的原因  (1)方便在集群中扩展,每个 Partition 可以通过调整以适应它所在的机器,而一个 topic又可以有多个 Partition 组成,因此整个集群就可以 ...

  9. 大数据技术之 Kafka (第 1 章 Kafka 概述)

    第 1 章 Kafka 概述 1.1 定义 Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域. 1.2 消息队列 1.2.1 传统消息 ...

最新文章

  1. 欧拉函数求一个数倒数的循环节长度
  2. 一代测序+二代测序+三代测序
  3. 每日一皮:“为什么要离开我,我做得还不够好吗?”
  4. mapxtreme开发资料全集
  5. matlab 电路频率响应_学习电子电路有什么仿真软件?有哪些优缺点?
  6. activemq网络桥接_ActiveMQ –经纪人网络解释–第3部分
  7. 手把手教你逼走员工的23种套路,大写的服!
  8. Java实训项目1:GUI学生信息管理系统 - 实训概述
  9. oracle 不查加锁的记录,查询记录时给oracle记录加锁
  10. web 开发生产率_11种可帮助Web开发人员克服最后期限的生产力工具
  11. 3DES实现加密算法
  12. win10 c盘压缩卷只能压出一半?或只能压缩出一点空间的完美解决方案
  13. 计算机网盘变成红色是怎么回事,电脑小知识:硬盘变红了会带来哪些危害?
  14. 新式奶茶的2019:市场分化、洗牌加剧
  15. SparkCore:RDD累加器和广播变量(最详细的介绍)!!!!!!
  16. 爬虫 scrapy框架 爬取360图片
  17. Linux终极shell-Z Shell
  18. 【037】SylixOS助力龙芯入门平台2K龙芯派发布
  19. Python在GF(2⁸)有限域上求解多项式的乘法逆元——基于扩展欧几里得算法
  20. 关于Zotero参考文献格式调整

热门文章

  1. JavaFX官方教程(二)之JavaFX体系结构
  2. Java类加载器总结
  3. 同学们,看看这里吧!!!
  4. 第三章用sql语句操作数据
  5. lombok进行有参无参构造出现的问题
  6. java 路径 20,java中得到classpath和当前类的绝对路径的一些方法(路径中的%20进行替换空格)...
  7. java谓词_在Java中谓词
  8. stream获取filter
  9. python 随机排序_Python 如何随机打乱列表(List)排序
  10. centos8安装并启动tomcat9