系列专题:数据湖系列文章


1. NiFi是什么

简单地说,Apache NiFi是为了自动化系统之间的数据流而构建的。虽然术语“数据流”在各种环境中使用,但我们在此处使用它来表示系统之间自动化和管理的信息流。这个问题空间一直存在,因为企业有多个系统,其中一些系统创建数据,一些系统消耗数据。已经讨论并广泛阐述了出现的问题和解决方案模式。企业集成模式 中提供了一个全面且易于使用的表单。
NiFi的诞生,要致力于解决的问题:

  1. 因为网络故障、磁盘故障、软件崩溃、人们犯错导致的系统错误。
  2. 数据读写超出了自身系统的处理能力。
  3. 获取的数据不具有规范性。
  4. 数据结构的优先级变化很快,启用新流和更改现有流的速度必须非常快。
  5. 数据结构化管理的可移植性与不同数据格式之间的依赖性。

2. 核心概念

NiFi的基本设计概念与基于流程的编程的主要思想密切相关。以下是一些主要的NiFi概念以及它们如何映射到FBP:

Processor

FBP映射:Information Packet

描述:processor是各种处理插件执行器,我们可以从中选择一个或者一组进行执行。

ProcessGroup

FBP映射:subnet

描述:ProcessGroup 是特定的一些processor,connnection的集合,这一组集合被定义成新的逻辑上的Processor,我们可以像普通的processor一样操作它。

FlowFile

FBP映射:Information Packet

描述:flowfile是系统传输的对象,里面包含各种属性key/value对以及真正的数据content。

FlowFile Prcessor

FBP映射:Black Box

描述:flowfile processor负责实际对数据流执行工作。

Flow Controller

FBP映射:Scheduler

描述:flow controller负责各个processor组件调度,路由等工作。

Connection

FBP映射:Bounded Buffer

描述:connection用来连接各个processor,编排processor流转网络。

3. NiFi架构原理

NiFi在主机操作系统上的JVM内执行。JVM上NiFi的主要组件如下:

1.Web Server

Web服务器的目的是托管NiFi基于HTTP的命令和控制API。

2.Flow Controller

流量控制器是操作的大脑。它为扩展程序提供运行的线程,并管理扩展程序何时接收要执行的资源的计划。

3.Extensions

在其他文献中描述了各种类型的NiFi扩展。这里的关键点是扩展在JVM中运行和执行。

4.FlowFile Repository

FlowFile存储库是NiFi跟踪其对流中当前活动的给定FlowFile的了解状态的地方。存储库的实现是可插入的。默认方法是位于指定磁盘分区上的持久性预写日志。

5.Content Repository

内容存储库是给定FlowFile的实际内容字节。存储库的实现是可插入的。默认方法是一种相当简单的机制,它将数据块存储在文件系统中。可以指定多个文件系统存储位置,以便获得不同的物理分区以减少任何单个卷上的争用。

6.Provenance Repository

Provenance Repository是存储所有出处事件数据的地方。存储库构造是可插入的,默认实现是使用一个或多个物理磁盘卷。在每个位置内,事件数据被索引并可搜索。

4. NiFi运行在集群

从NiFi 1.0版本开始,采用了Zero-Master Clustering范例。NiFi群集中的每个节点对数据执行相同的任务,但每个节点都在不同的数据集上运行。

Apache ZooKeeper选择单个节点作为集群协调器,ZooKeeper自动处理故障转移。

所有群集节点都会向群集协调器报告心跳和状态信息。群集协调器负责断开和连接节点。此外,每个群集都有一个主节点,也由ZooKeeper选举。作为DataFlow管理器,您可以通过任何节点的用户界面(UI)与NiFi群集进行交互。您所做的任何更改都将复制到群集中的所有节点,从而允许多个入口点。

1.对于IO

可以预期的吞吐量或延迟会有很大差异,具体取决于系统的配置方式。鉴于大多数主要NiFi子系统都有可插拔的方法,性能取决于实施。

但是,对于具体且广泛适用的内容,请考虑开箱即用的默认实现。
        这些都是持久的保证交付,并使用本地磁盘这样做。因此保守一点,假设典型服务器中的适度磁盘或RAID卷大约每秒50 MB读/写速率。

然后,对于大类数据流的NiFi应该能够有效地达到每秒100 MB或更高的吞吐量。这是因为预期每个物理分区和添加到NiFi的内容存储库都会出现线性增长。

这将在FlowFile存储库和originance存储库的某个点上出现瓶颈。我们计划提供一个基准测试和性能测试模板,以包含在构建中,允许用户轻松测试他们的系统并确定瓶颈在哪里,以及他们可能成为一个因素。此模板还应使系统管理员可以轻松进行更改并验证其影响。

2.对于CPU

流控制器充当引擎,指示特定处理器何时被赋予执行线程。编写处理器以在执行任务后立即返回线程。可以为Flow Controller提供一个配置值,指示它维护的各个线程池的可用线程。

理想的线程数取决于主机系统资源的核心数量,系统是否正在运行其他服务,以及流程中处理的性质。对于典型的IO大流量,可以使许多线程可用。

3.对于RAM

NiFi存在于JVM中,因此仅限于JVM提供的内存空间。JVM垃圾收集成为限制总实际堆大小以及优化应用程序运行时间的一个非常重要的因素。定期阅读相同内容时,NiFi作业可能是I / O密集型的。配置足够大的磁盘以优化性能。

5. 参考资料

[01]https://www.jianshu.com/p/62b7e44cfd0b

数据湖:数据同步工具NiFi相关推荐

  1. 4万字全面掌握数据库, 数据仓库, 数据集市,数据湖,数据中台

    ↑↑↑关注后"星标"简说Python 人人都可以简单入门Python.爬虫.数据分析 简说Python推荐来源:数据社 作者修鹏李One old watch, like brief ...

  2. 数据湖 数据孤岛 数据沼泽

    数据仓库 据仓库是一种存储架构,旨在保存从多个数据源提取的数据,这些数据源包括操作数据存储.事务数据存储,以及企业内的部门数据集市.数据仓库将数据组合为一种聚合.摘要形式,适合于进行企业级数据分析以及 ...

  3. 数据湖+数据中台,金山云大数据平台竞争力如何?

    随着疫情稳定,出行的解禁,正是拉动老客户消费和挖掘潜客的机会,那么银行在数字化时代的营销业务是如何实现的?首先在业务层面需要与各大电商平台.OTA.出行.O2O.线下餐饮.购物中心达成广泛的权益合作: ...

  4. 数禾云上数据湖最佳实践

    简介: 数禾科技从成立伊始就组建了大数据团队并搭建了大数据平台.并在ECS上搭建了自己的Cloudera Hadoop集群.但随着公司互联网金融业务的快速扩张发展,大数据团队承担的责任也越来越重,实时 ...

  5. “数据湖”:概念、特征、架构与案例

    写在前面: 最近,数据湖的概念非常热,许多前线的同学都在讨论数据湖应该怎么建?阿里云有没有成熟的数据湖解决方案?阿里云的数据湖解决方案到底有没有实际落地的案例?怎么理解数据湖?数据湖和大数据平台有什么 ...

  6. 数据湖就是坑人的新概念?那些挖坑的企业,后来都怎么样了

    |0x00 什么是数据湖 数据湖的概念最初是由大数据厂商提出的,可以简单理解为一个集中存储数据的数据库,不论是结构化数据or非结构化数据,海量数据or少量数据,都能够支持存储和计算.就像在湖中有多个支 ...

  7. 怎么理解数据湖?(深度长文)

    ▲ 点击上方"分布式实验室"关注公众号 回复"1"抽取技术书 最近,数据湖的概念非常热,许多前线的同学都在讨论数据湖应该怎么建?阿里云有没有成熟的数据湖解决方案 ...

  8. 星环云原生数据湖,为企业精准决策提供全方位技术支撑

    随着数据价值由数据统一化逐渐到数据生态化演进,企业对数据平台的需求越来越高,许多企业面临内部数据孤岛等现状,需要全集团统一的.可共享的数据平台,来推进建设统一的数据平台,构建数据驱动业务的数字化转型战 ...

  9. 震惊!这篇文章解读数据仓库、数据湖、数据中台等概念,竟然写了4万字!

    点击上方 "zhisheng"关注, 星标或置顶一起成长 Flink 从入门到精通 系列文章 如今,随着诸如互联网以及物联网等技术的不断发展,越来越多的数据被生产出来-据统计,每天 ...

最新文章

  1. C语言如何使用其他文件定义的结构体?(C++报错:无法转换到不完整的类【需在头文件中定义结构体??】)
  2. S5PV210开发 -- USB 你知道多少?(一)
  3. java高级知识点_JAVA高级阶段知识点汇总
  4. 20220207-CTF-MISC-第11题--- base64隐写--附带脚本
  5. 每个人都必须阅读的10篇Java文章
  6. 全球超算500强新榜发布:美国卫冕 中国力争
  7. 第3章 FOR命令中的变量
  8. python培训班骗局-深圳盐田区python专业培训机构,真实经历分享
  9. 质子和中子数量的一点疑问
  10. 计算机四级c语言题库及答案,计算机四级考试题库及答案
  11. 二级路由添加网络打印机的方法
  12. 荣耀智慧屏x1鸿蒙2.0功能,让家庭中心回归客厅-荣耀智慧屏X1评测
  13. no moudle named sklearn-impute
  14. UEFI开发探索82- YIE002USB开发板(05 制作HID设备)
  15. redhat7磁盘扩容详细步骤
  16. 服务器nvme硬盘识别不了,解决部分主板无法识别NVMe协议的固态硬盘问题
  17. 逆向的大门已经打开,就算为此过敏体质 也值了
  18. win10电脑防火墙允许ping设置
  19. 卷积神经网络——vgg16网络及其python实现
  20. 组态王如何修改电脑时间实例

热门文章

  1. 高频交易(二)浅谈高频交易中比较成熟的一些交易策略
  2. win10 premiere cc 软件无声音解决办法
  3. BootStrap框架模块:BootStrap4基础
  4. 服务器挂起文件怎么删除,挂起的更改
  5. 基于OCR识别引擎的识别表格文字并将结果以Excel电子表格的形式原样导出的Android客户端代码
  6. profix使用过程中遇到的一些问题
  7. 观景台售票情况数据分析【Python】
  8. Linux 4.19.111 供电(power supply )子系统
  9. 有没有免费压缩视频的软件?压缩视频其实很简单
  10. 评分模型的检验方法和标准信用评分及实现