NiFi的简介

使用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集群进行交互。您所做的任何更改都会同步到集群中的所有节点,从而允许多个入口点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值