NiFi的简介

article/2025/8/16 3:41:52

使用java开发的一个开源项目,数据处理工具

1.简介:

NiFi 是一个易于使用、功能强大而且可靠的流式数据处理和分发系统。NiFi 是为数据流设计,支持从多种数据源动态的拉取数据,并基于WEB图形界面,通过拖拽、连接、配置完成基于流程的编程,实现数据采集、处理等功能。

2. 架构:

  • Web Server:承载NiFi基于HTTP的命令和控制API。

  • Flow Controller:NiFi执行具体操作的大脑,负责从线程资源池中给Processor分配可执行的线程,以及其他资源管理调度的工作。

  • Extensions:NiFi扩展功能,可以扩展processor以及其它的组件。

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

    Processor 处理器是用于监听传入数据的NiFi组件; 从外部来源提取数据; 发布数据到外部来源; 并从FlowFiles中路由,转换或提取信息。

  • ProcessGroup:进程组是一组特定的进程及其连接,允许组合其他组件创建新组件。

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

  • FlowFile Repository:负责保存在目前活动流中FlowFile的状态,其功能实现是可插拔的。默认的方式是通过一个存储在指定磁盘分区的持久预写日志(WAL),来实现此功能。

  • Content Repository:负责保存在目前活动流中FlowFile的实际字节内容,其功能实现是可插拔的。默认的方式是一种相当简单的机制,即存储内容数据在文件系统中。多个存储路径可以被指定,因此可以将不同的物理路径进行结合,从而避免达到单个物理分区的存储上限。

  • Provenance Repository:负责保存所有跟踪事件数据,同样此功能是可插拔的,并且默认可以在一个或多个物理分区上进行存储,在每个路径下的事件数据都被索引,并且可被查询。

  • FlowFile:表示通过系统移动的每个对象,包含数据流的基本属性。flowfile是系统传输的对象,里面包含各种属性key/value对以及真正的数据content。

    flowfile作为数据流动的载体,由FlowFile属性和FlowFile内容两部分组成。 属性是提供关于数据的信息或上下文的特性,它们由键值对组成;内容是由FlowFile表示的数据。

    所有FlowFiles都具有以下标准属性:

    • uuid :FlowFile的唯一标识

    • filename :将数据存储到磁盘或外部服务时可以使用的可读文件名

    • path :在将数据存储到磁盘或外部服务时可以使用的分层结构化值,以便数据不会存储在单个目录中。

  • FlowFile Prcessor:负责实际对数据流执行工作。

  • Connection:负责不同处理器之间的连接,是数据的有界缓冲区。

  • Relationship :每个处理器具有零个或多个为其定义的关系。 这些关系被命名以表示处理FlowFile的结果。 处理器处理完FlowFile之后,它会将FlowFile路由(或“传送”)到其中一个关系。

3. 基本特性

  • 支持优先排队:nifi允许设置一个或多个优先级方案(先进先出,先进后出,最大先出),可以为每一个connection单独配置。

  • 支持数据缓冲和数据背压:nifi可以为每一个connection单独配置配置缓冲queue,背压值,保证系统平稳快速运行。

  • 保证数据交付:持久性预写日志(WAL)和content repository,可以实现非常高的事务处理,高效的负载分散,写入时复制以及发挥传统磁盘读/写的优势,保证在大规模情况依然不丢失数据。

  • 可视化操作:使用方可以通过可视化的数据流展现与编辑功能,使得用户在编辑和处理数据流时更加直观,从而提升使用效率。

  • 数据跟踪:nifi会自动记录数据流的每个操作日志,并可以从日志里回复数据。

  • 租户隔离:指定数据流的权限适用于每个组件,允许管理员用户具有细粒度的访问控制。这意味着每个NiFi集群都能够处理一个或多个组织的要求。与隔离方式相比,多租户授权支持数据流管理的自助服务模型,允许每个团队或组织在完全了解流的其余部分的情况下管理流,而无法访问流。

  • 扩展性:用户可以扩展自己的processor,优先级排序,用户界面,控制器等,同时集群支持横向扩展,保证集群的处理能力。

4. 整体简介

 

5. 系统安装

nifi可以单机运行也可以集群运行,集群运行只是在单机的基础上配置zookeepr(可以配置外部zookeeper也可以用内置的)

单机安装:

wget https://archive.apache.org/dist/nifi/1.13.2/nifi-1.13.2-bin.tar.gz

#解压安装包

tar -zxvf nifi-1.13.2-bin.tar.gz

进入conf目录修改nifi.properties文件,配置参数

nifi.web.http.host=192.168.1.3

nifi.web.http.port=8085

进入bin目录启动nifi

./nifi.sh start

浏览器输入http://192.168.1.3:8085/nifi

至此nifi安装完毕,可以开始数据同步配置啦!

作为功能强大的数据处理和分发组件,NiFi自然原生支持集群部署方式(推荐部署方式)。NiFi集群部署模式如下图:

  

Cluster Coordinator:集群协调器,用来进行管理节点添加删除的操作逻辑

Primary Node:主节点,用来运行一些不适合在集群中运行的组件

Zookeeper Client:zk节点(故障转移)

集群模式下,NiFi集群中的每个节点对数据执行相同的任务,但是每个节点都在不同的数据集上进行操作。和大部分大数据组件一样,NiFi集群使用Apache ZooKeeper提供协调服务。 Apache ZooKeeper选择一个NiFi节点作为集群协调器,故障转移由ZooKeeper自动处理。 所有集群节点向集群协调器报告心跳和状态信息。集群协调器负责节点的断开和连接。 此外,ZooKeeper会为每个集群选举一个节点作为集群主节点。 作为DataFlow管理器,您可以通过任何节点的用户界面(UI)与NiFi集群进行交互。您所做的任何更改都会同步到集群中的所有节点,从而允许多个入口点。


http://chatgpt.dhexx.cn/article/K0ICUxXw.shtml

相关文章

Nifi的入门使用

Nifi的使用 1.官方文档2.Nifi简介3.简单使用4.Template 使用nifi前,需要知道ETL在做什么,如果源端和目标端栏位不匹配,就需要用到小帮手, 让你更直观的了解映射关系,才能更好的构建DataFlow 第一步:Nifi开发…

NiFi【部署 01】NiFi最新版本1.18.0下载安装配置启动及问题处理(一篇学会部署NiFi)

Apache NIFI中文文档 地址:https://nifichina.github.io/ 1.简介 官网的介绍: An easy to use, powerful, and reliable system to process and distribute data. 一个易用、功能强大、可靠的处理和分发数据的系统。 来自网络的介绍: 2006…

5、NiFi FileFlow示例和NIFI模板示例

Apache NiFi系列文章 1、nifi-1.9.2介绍、单机部署及简单验证 2、NIFI应用示例-GetFile和PutFile应用 3、NIFI处理器介绍、FlowFlie常见属性、模板介绍和运行情况信息查看 4、集群部署及验证、监控及节点管理 5、NiFi FileFlow示例和NIFI模板示例 6、NIFI应用场景-离线同步Mys…

大数据NiFi(二):NiFi架构

文章目录 NiFi架构 一、​​​​​​​NiFi核心概念

Nifi:nifi的基本使用

Nifi的安装使用 爱购物 www.cqfenfa.com Nifi安装 首先说一下Nifi的安装,这里Nifi可以支持Windows版和Linux,只需要去官网:http://nifi.apache.org/ 根据自己需要的版本,选择下载,然后安装解压就行 各目录及主要文件…

大数据NiFi(一):什么是NiFi

文章目录 什么是NiFi 一、NiFi背景介绍

Nifi介绍、安装、实践案例

第1章NiFi基本概念 1.1 概述 简单地说,NiFi是为了自动化系统之间的数据流而构建的。虽然术语“数据流”在各种环境中使用,但我们在此处使用它来表示系统之间自动化和管理的信息流。这个问题空间一直存在,因为企业有多个系统,其中…

NiFi技术干货

第1章 NiFi概述 1.1 NiFi是什么 简单的说,NiFi就是为了解决不同系统间数据自动流通问题而建立的。虽然dataflow这个术语在各种场景都有被使用,但我们在这里使用它来表示不同系统间的自动化的可管理的信息流。自企业拥有多个系统开始,一些系…

NiFi 基本概念

NiFi基本概念 一. NiFi是什么 Apache NiFi 是一个易于使用, 功能强大且可靠的系统, 用于处理和分发数据。可以自动化管理系统间的数据流。它使用高度可配置的指示图来管理数据路由, 转换和系统中介逻辑, 支持从多种数据源动态拉取数据。NiFi 原来是 NSA(美国国家安全局) 的一…

大数据Nifi简介

目录 1 NIFI简介2 NIFI核心概念3 NIFI构架3.1 网络服务器3.2 流控制器3.3 扩展3.4 FlowFile存储库3.5 内容存储库3.6 源头存储库 1 NIFI简介 Apache NiFi 是一个易于使用,功能强大且可靠的系统,用于处理和分发数据。可以自动化管理系统间的数据流。它支…

springboot error at line 1, column 5. Encountered: “\uff01“ (65281), after : ““

出现这种错误表面mybatis配置文件中sql查询语句中出现了中文字符,需要将对应的中文字符修改为英文。 ERROR 10500 --- [nio-8081-exec-8] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] …

编码GBK的不可映射字符 和 错误: 非法字符: ‘\uff1b‘

题目:解决编码GBK的不可映射字符 和 错误: 非法字符: ‘\uff1b’ 解决编码GBK的不可映射字符 1)首先,在d盘所示的目录新建一个文本文件(记事本),保存时字符集为utf-8 2)输入(d:&…

如何处理“错误: 非法字符: ‘\uff1b‘”

解决方法:把原代码中的中文分号改为英文分号。 注意事项:中英文切换时应尤其注意符号问题。

Lexical error at line 1, column 20. Encountered: “\uff01“ (65281), after : ““

问题&#xff1a; 测试myBatis的动态SQL的时候&#xff0c;控制台提示我出现了&#xff1a;Lexical error at line 1, column 20. Encountered: "\uff01" (65281), after : "" 的错误 原因&#xff1a; 在<if test"sex !null and sex &#xff0…

深度学习之格式转换笔记(三):keras(.hdf5)模型转TensorFlow(.pb) 转TensorRT(.uff)格式

环境&#xff1a; tensorflow1.15&#xff0c;cuda10.0&#xff0c;cudnn7.6.4 将keras训练好保存的.hdf5格式模型转为tensorflow的.pb模型&#xff0c;然后转为tensorrt支持的uff格式。 keras(.hdf5)模型转TensorFlow(.pb) # h5_to_pb.pyfrom keras.models import load_mod…

Jetson 学习笔记(五):pb转uff---pb转onnx转trt----pth转onnx转pb

文章目录 pb转uff具体代码运行结果 pb转onnx转trt具体代码pb转onnx运行结果onnx转化trt方法1:trtexec方法2:onnx-tensorrt工具 推理trt模型 pth转onnxonnx转pb方法1:onnx-tensorflow工具方法2:代码执行 pb转uff具体代码 这里用的是uff自带的一个转换器&#xff0c;直接通过调用…

Tensorflow pb模型转uff模型方法及遇到KeyError20和expected Const问题解决

项目所需要将Tensorflow 生成的pb模型转为uff模型&#xff0c;方法很简单&#xff0c;但是遇到的问题着实很多&#xff0c;这里主要记录下问题及解决方法&#xff0c;总之&#xff0c;最后是成功生成uff格式的模型的&#xff0c;有需要的可以参考。 pb模型转为uff模型的方法及步…

安装TensorRT,然后导入uff库包的时候报错:ImportError: ERROR: Failed to import module(cannot import name ‘GraphDef`)

欢迎大家关注笔者&#xff0c;你的关注是我持续更博的最大动力 原创文章&#xff0c;转载告知&#xff0c;盗版必究 安装TensorRT&#xff0c;然后导入uff库包的时候报错&#xff1a;ImportError: ERROR: Failed to import module&#xff08;cannot import name GraphDef from…

pb模型转uff模型(tensorflow2.x)

大多数的博客只是提到tensorflow1.x系列下的转换。大概步骤就是安装tensorrt&#xff0c;同时安装tensorrt下的几个python的wl文件。可参见博主之前的博客: 1.tensorrt的安装Ubuntu配置TensorRT及验证_竹叶青lvye的博客-CSDN博客 2.tensorrt下几个whl文件的安装TensorRT加速方…

Sony索尼HLG灰片电影调色LUT预设合集 HLG CINEMATIC LUTPACK BUNDLE

Sony索尼HLG灰片电影调色LUT预设合集 HLG CINEMATIC LUTPACK BUNDLE 原文地址&#xff1a;https://www.aeziyuan.com/t-20546.html 包括用于Sony索尼LOG相机的39组LUT预设。是目前为止Sony索尼相机最好的预设之一。 它适用于支持LUT预设效果的大多数软件。例如Premiere Pro&…