NIFI集群搭建及基础介绍

时间:2024-05-19 22:49:50

一、Nifi配置

1)  nifi基本配置

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

目录:bin/nifi.env.sh

       export JAVA_HOME=/home/user/opt/jdk1.8.0_144

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

2.  nifi运行内存配置

目录:conf/bootstarp.conf

  java.arg.2=-Xms512m

   java.arg.3=-Xmx20480m

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

3.  nifi日志配置

目录:conf/logback.xml

4.  nifi端口配置

目录:conf/nifi.properties

nifi.web.http.port=18083

默认为8080端口。

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

<cluster-provider>

        <id>zk-provider</id>

        <class>org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider</class>

        <property name="ConnectString">ip1:2182,ip2:2182,ip3:2182</property>

        <property name="RootNode">/nifi</property>

       <property name="Session Timeout">10seconds</property>

        <property name="AccessControl">Open</property>

   </cluster-provider>

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

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-8nifi提供的组件可以拖到下方的画布上使用。

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

2input portflowfile数据进入节点。

3output port flowfile数据输出节点。

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

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

6Funnel:汇聚flowfile数据。

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

8Leble:文字板

9-18nifi的基本状态栏

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

10nifi当前运行线程数。

11nifi当前队列中待执行的flowfilesize及大小

12nifi启动的远程进程组。

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

14nifi启动的处理器

15nifi未启动的处理器。

16nifi配置不可用的处理器

17nifi废弃不用的处理器。

18nifi界面最新刷新时间。

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

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集群搭建及基础介绍