【NIFI】1.NIFI入门

NIFI是什么

Apache NIFI是一个易于使用,功能强大且可靠的系统,用于处理分发数据 ,可以自动化管理系统间的数据流。
优点:

NIFI核心组件概念

NIFI思想可以完全契合FBP(Flow Based Programing)的设计思想,主要核心组件及其概念如下表所示:

NIFI组件 概念
FlowFile FlowFile代表通过系统移动的每个对象,对于每个对象,NiFi都会跟踪键/值对属性字符串及其零个或多个字节的关联内容的映射。FlowFile中有attribute和content
Processor 处理器是在系统之间进行数据路由,转换或中介的某种组合。处理器可以访问给定FlowFile及其内容流的属性。处理器可以在给定的工作单元中对零个或多个FlowFiles进行操作,并提交该工作或回滚。
Connection 连接提供了处理器之间的实际链接。这些充当队列,并允许各种进程以不同的速率进行交互。这些队列可以动态地进行优先级排序,并且可以在负载上设置上限,从而可以实现背压。
Flow Controller 流控制器维护有关进程如何连接以及管理所有进程使用的线程及其分配的知识。流控制器充当代理,促进处理器之间的FlowFiles交换。
Group 进程组是一组特定的进程及其连接,可以通过输入端口接收数据,并通过输出端口发送数据。以这种方式,过程组允许仅通过其他组件的组合来创建全新的组件。

NIFI优点:

NIFI架构

NIFI架构.jpg

Web Server:承载nifi基于http的命令和控制API
Flow Controller:整个操作的核心,为将要运行的组件提供线程,管理调度
Extensions:基于JVM运行,支持各类java的NiFi扩展
FlowFile Repository:跟踪存储FlowFile状态数据
Content Repository:存储FlowFile内容数据
Provenance Repository:源头存储库,存储所有事件数据

NiFi 集群架构

NIFI集群.jpg

NIFI集群零主模式
Cluster Coordinator:集群协调器,管理节点的添加删除等操作逻辑
Primary Node:主节点,用来运行一些不适合在从节点运行的组件
Zookeeper Client:zk节点

NiFi的性能

NiFi的设计目的是充分利用底层主机系统能力,这种资源的最大化在CPU和磁盘方面尤为明显。基于For IO,For CPU,For RAM优化。

NiFi 的关键特性

流管理:保证交付,数据缓冲 背压和压力释放,队列优先级,特殊流质量
易用性:可视化流程,流模板,数据起源跟踪,可以记录和重放细粒度历史记录缓冲区
灵活的缩放模型:水平扩展,扩展和缩小

NiFi入门

  • FlowFile:每条“用户数据”(即用户带入NiFi进行处理和分发的数据)均称为FlowFile。FlowFile由两部分组成:属性和内容。内容是用户数据本身。属性是与用户数据关联的键/值对。
  • processor:处理器是NiFi组件,负责创建,发送,接收,转换,路由,拆分,合并和处理FlowFiles。它是NiFi用户可用来构建其数据流的最重要的构建块。

运行开发环境,下载安装jdk
下载:NiFi官网 https://nifi.apache.org/download.html
修改默认端口:/conf/nifi.properties 137 nifi.web.http.port=58080
Linux 启动:进入安装目录 前台运行bin/nifi.sh run 后台运行 bin/nifi.sh start,查看nifi状态bin/nifi.sh status
作为服务进行安装bin/nifi.sh installbin/nifi.sh install [服务名],启动时service nifi start

常用的处理器

配置处理器

其他组件

数据流传入点(input-port):用于组与组之间的数据连接
数据流输出点(output-port):
组(process-group):
远程组(remote process-group):
聚合(funnel):将多connection的数据整合到一个connection
模板(template):将若干组件整合成一个组,从该组创建数据流模板,模板可以到处XML格式
便签(label):写备注信息
导航(Navigate):
操作区(Operate):

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • NiFi基本概念 概述 简单地说,NiFi是为了自动化系统之间的数据流而构建的。虽然术语“数据流”在各种环境中使用...
    菜鸟Coders阅读 7,374评论 0 3
  • Apache nifi 开发指南 版本:V 1.6 日期:2018年6月13日 [if !supportLists...
    行走的数据智能阅读 8,406评论 0 1
  • 1.NiFi简介 Apache Nifi是一个易用、强大、可靠的数据处理和分发系统。 主要功能:数据流程管理,设计...
    一个老冯阅读 969评论 0 0
  • 1.介绍 本开发人员指南的目的是为读者提供了解Apache NiFi扩展的开发方式所需的信息,并帮助他们解释开发组...
    小王爱写BUG阅读 1,098评论 0 1
  • 为了能够创建一个高效的NiFi数据数据流程,我们需要了解有哪些Processor类型可以使用。每个新的NiFi版本...
    一个老冯阅读 1,256评论 0 0