NIFI集群搭建及基础介绍

时间:2023-01-10 11:03:50

一、Nifi配置

1)  nifi基本配置

1.      jdk配置:nifi新版本要求jdk版本必须1.8以上

目录:bin/nifi.env.sh

       export JAVA_HOME=/usr/java/jdk1.8

NIFI集群搭建及基础介绍

   忽略此项配置,nifi将使用系统默认Java环境启动。

2.  nifi运行内存配置

目录:conf/bootstarp.conf

  java.arg.2=-Xms2048m

   java.arg.3=-Xmx4096m

   根据服务器性能合理设置nifi内存

NIFI集群搭建及基础介绍

3.  nifi日志配置

目录:conf/logback.xml

NIFI集群搭建及基础介绍

4.  nifi端口配置

目录:conf/nifi.properties

nifi.web.http.port=18083

默认为8080端口。

NIFI集群搭建及基础介绍

5.  nifi基本命令

nifi.sh start 启动

nifi.sh stop 关闭

nifi.sh restart 重启

nifi.sh status 状态

以上基本配置完成,可单节点模式启动nifi。

2)  nifi集群配置

1.      配置zookeeper

目录:conf/zookeeper.properties

clientPort=2181 zookeeper端口

server.1=ip1:2888:3888

server.2=ip2:2888:3888

server.3=ip3:2888:3888

         zookeeper服务器设置,nifi集群有多少节点需要配置server

         server.1中的数字1为服务器的ID,需要与myid文件中的id一致,下一步将配置myid。

2.      配置myid

在nifi目录下创建文件夹/state/zookeeper/并创建文件myid

文件内容与第一步中的server.id一致。

NIFI集群搭建及基础介绍

3.      配置state-management.xml

目录:conf/state-management.xml

zk-provider

org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider

ip1:2182,ip2:2182,ip3:2182

/nifi

10seconds

Open

Connect String配置为nifi节点的ip加zookeeper端口号,以逗号分隔

4.      配置nifi节点属性

目录:conf/ nifi.properties

nifi.state.management.embedded.zookeeper.start=true

使用内置zookeeper

nifi.zookeeper.connect.string=ip1:2182,ip2:2182,ip3:2182

与上一步中的connect string一致。

 

下面配置需每个节点单独配,根据节点的IP相应配置,保持集群中节点使用的端口一致

  nifi.cluster.is.node=true

nifi.cluster.node.address=本机IP

nifi.cluster.node.protocol.port=9999

nifi.remote.input.host=本机IP

nifi.remote.input.secure=false

nifi.remote.input.socket.port=9998

nifi.web.http.host=本机IP 

配置完成后即可依次启动节点,集群将选举产生主节点。

 

二、Nifi界面

NIFI集群搭建及基础介绍

 

1-8为nifi提供的组件可以拖到下方的画布上使用。

1:processor :nifi提供的多种处理器。

2:input port:flowfile数据进入节点。

3:output port flowfile数据输出节点。

4:group组,可以将多种处理器放入同一个组中,组与组之间可以通过input port和output port传输flowfile数据。

5:Remote process group:远程进程组,可将flowfile发送至别的节点。

6:Funnel:汇聚flowfile数据。

7:Template:可拖放导入的模板配置。

8:Leble:文字板

9-18为nifi的基本状态栏

9:nifi集群节点状态。9/9表示有集群中有九个节点,并九个节点都在线。

10:nifi当前运行线程数。

11:nifi当前队列中待执行的flowfile的size及大小

12:nifi启动的远程进程组。

13:nifi未启动的远程进程组。

14:nifi启动的处理器

15:nifi未启动的处理器。

16:nifi配置不可用的处理器

17:nifi废弃不用的处理器。

18:nifi界面最新刷新时间。

19:nifi画布缩略图及操作按钮。

20:当前位置。

1)  总览界面

Summary 摘要包含处理器,GROUP等一系列整体摘要信息。

Counters 计数器界面,需要配合计数器处理器(UpdateCounter)使用。

Bulletin Board nifi通讯信息页面。

Date Provenance flowfile数据总览。

Controller Settings 设置界面,可以配置线程数等一些设置。

Flow conf History nifi配置历史。

Cluster nifi集群模式时,可以查看集群状态,管理节点。

 

三、Nifi使用

1)  模板

创建模板:在要创建模板的group中点击面板左侧的create template或者鼠标右键画布空白处。

NIFI集群搭建及基础介绍

下载模板:

NIFI集群搭建及基础介绍

使用模板:选择界面上分的template拖放至画布,选择要使用的模板。

NIFI集群搭建及基础介绍

Nifi的模板会保存组中的处理器配置及CONTROLLERSERVERS。例如数据库连接,但是不会保存密码。

 

2)  CONTROLLER SERVERS

Nifi中的控制器,例如数据库连接,XML读取,JSON读取器。

Nifi中子group可以继承父group中的控制器。建议在根画布及newflow中配置控制器。

每个控制器都是一个实例,如数据库连接,交给同一个控制器管理更为节省资源及方便。

在空白处右键点击CONFIGURE:

下图为一个DBCPConnectionPool数据库连接控制器的配置说明:

NIFI集群搭建及基础介绍

依次为:

1.      数据库连接的URL,类似于JDBC中的URL。

2.      数据库驱动类名

3.      数据库驱动类目录(jar包需要放置在nifi可访问到的地址,集群需要每个节点都上传jar包)。

4.      数据库用户名

5.      密码

6.      最大等待时间

7.      最大连接数

8.      测试SQL。

3)  PROCESSOR

Nifi处理器:

NIFI集群搭建及基础介绍

1:处理器名字

2:处理器的ID

3:处理器类型

4:处理器所属nar包

5:处理器输出日志级别

6:处理器输出的关系,配置处理器时所有关系需要处理:拖放给下一处理器,或者选择终止关系(配置处理器时选中要自动终止的关系)。

7:处理器基础设置

8:处理器定时设置

9:处理器属性

10:备注

NIFI集群搭建及基础介绍

1:处理器定时任务类型1.timer2.cron

2:单个节点处理器并发数,如图单节点并发数为1,集群为9个节点时并发数为9

3:根据定时任务类型不同配置不同,图中为600秒执行一次

4:当nifi为集群模式时:可以配置处理器为主节点运行或所有节点运行。一般获取数据的处理器使用主节点运行,防止重复消费。

NIFI集群搭建及基础介绍

处理器属性:某些属性需配合CONTROLLER SERVERS使用,如图中的数据库连接。

依次配置项为:

1:数据库连接

2:数据库类型

3:表名

4:需要返回的字段

5:最大值列,可依据此列完成增量同步

6:最大等待时间 0S表示一直等待。

7:分页条数,1000表示每条SQL查询出1000条记录。

8:查询时的where条件。

GenerateTableFetch拥有state属性:记录Maximum-valueColumns的值。

NIFI集群搭建及基础介绍

1:处理器五分钟内接受到的flowfile数据。

2:处理器五分钟读取和写的数据大小

3:处理器五分钟输出的数据

4:处理器五分钟内的执行次数和时间。

5:处理器当前使用的线程数。如图为一个线程在运行。

6:处理器的SUCCESS关系输出值ExecuteSQL处理器。其中failure关系为自动终止。

 点击处理器左键可以查看Data Provenance

Data Provenance为一天内通过处理器的数据记录。

NIFI集群搭建及基础介绍