每日快訊!NIFI集群搭建及基礎介紹

2023-01-10 10:15:13 來源:51CTO博客

一、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為一天內通過處理器的數據記錄。

標簽: 數據庫連接 最大等待時間 基本配置

上一篇:全球看熱訊:超深度解析 Linux I/O 的那些事兒
下一篇:每日熱議!kafka頁面管理工具--kafkaUI