
一、Nifi配置
1) nifi基本配置
1.jdk配置:nifi新版本要求jdk版本必須1.8以上
【資料圖】
目錄:bin/nifi.env.sh
export JAVA_HOME=/usr/java/jdk1.8
忽略此項配置,nifi將使用系統默認Java環境啟動。
2. nifi運行內存配置
目錄:conf/bootstarp.conf
java.arg.2=-Xms2048m
java.arg.3=-Xmx4096m
根據服務器性能合理設置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一致。
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界面
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或者鼠標右鍵畫布空白處。
下載模板:
使用模板:選擇界面上分的template拖放至畫布,選擇要使用的模板。
Nifi的模板會保存組中的處理器配置及CONTROLLERSERVERS。例如數據庫連接,但是不會保存密碼。
2) CONTROLLER SERVERS
Nifi中的控制器,例如數據庫連接,XML讀取,JSON讀取器。
Nifi中子group可以繼承父group中的控制器。建議在根畫布及newflow中配置控制器。
每個控制器都是一個實例,如數據庫連接,交給同一個控制器管理更為節省資源及方便。
在空白處右鍵點擊CONFIGURE:
下圖為一個DBCPConnectionPool數據庫連接控制器的配置說明:
依次為:
1.數據庫連接的URL,類似于JDBC中的URL。
2.數據庫驅動類名
3.數據庫驅動類目錄(jar包需要放置在nifi可訪問到的地址,集群需要每個節點都上傳jar包)。
4.數據庫用戶名
5.密碼
6.最大等待時間
7.最大連接數
8.測試SQL。
3) PROCESSOR
Nifi處理器:
1:處理器名字
2:處理器的ID
3:處理器類型
4:處理器所屬nar包
5:處理器輸出日志級別
6:處理器輸出的關系,配置處理器時所有關系需要處理:拖放給下一處理器,或者選擇終止關系(配置處理器時選中要自動終止的關系)。
7:處理器基礎設置
8:處理器定時設置
9:處理器屬性
10:備注
1:處理器定時任務類型1.timer2.cron
2:單個節點處理器并發數,如圖單節點并發數為1,集群為9個節點時并發數為9
3:根據定時任務類型不同配置不同,圖中為600秒執行一次
4:當nifi為集群模式時:可以配置處理器為主節點運行或所有節點運行。一般獲取數據的處理器使用主節點運行,防止重復消費。
處理器屬性:某些屬性需配合CONTROLLER SERVERS使用,如圖中的數據庫連接。
依次配置項為:
1:數據庫連接
2:數據庫類型
3:表名
4:需要返回的字段
5:最大值列,可依據此列完成增量同步
6:最大等待時間 0S表示一直等待。
7:分頁條數,1000表示每條SQL查詢出1000條記錄。
8:查詢時的where條件。
GenerateTableFetch擁有state屬性:記錄Maximum-valueColumns的值。
1:處理器五分鐘內接受到的flowfile數據。
2:處理器五分鐘讀取和寫的數據大小
3:處理器五分鐘輸出的數據
4:處理器五分鐘內的執行次數和時間。
5:處理器當前使用的線程數。如圖為一個線程在運行。
6:處理器的SUCCESS關系輸出值ExecuteSQL處理器。其中failure關系為自動終止。
點擊處理器左鍵可以查看Data Provenance
Data Provenance為一天內通過處理器的數據記錄。