NiFi介紹
Apache NiFi是由美國過國家安全域性(NSA)貢獻給Apache基金會的開源專案,其設計目標是自動化系統間的資料流。
參考文件
包檔案 | 版本 | 下載地址 |
---|---|---|
nifi-1.9.2-bin.tar.gz | 1.9.2 | Apache NiFi |
jdk-8u231-linux-x64.tar.gz | 1.8.231 | Oracle JDK |
埠說明
NiFi
NiFi預設埠及conf/nifi.properties
檔案中相應屬性
功能 | 屬性 | 預設值 |
---|---|---|
HTTP埠 | nifi.web.http.port | 8080 |
HTTPS埠* | nifi.web.https.port | 9443 |
遠端輸入套接字埠* | nifi.remote.input.socket.port | 10443 |
叢集節點協議埠* | nifi.cluster.node.protocol.port | 11443 |
叢集節點負載均衡埠 | nifi.cluster.node.load.balance.port | 6342 |
Web HTTP轉發埠 | nifi.web.http.port.forwarding |
標有星號(*)的埠的屬性值在conf/nifi.properties
中預設為空白
嵌入式Zookeeper
功能 | 屬性 | 預設值 |
---|---|---|
Zookeeper客戶端埠 | clientPort | 2181 |
Zookeeper伺服器仲裁和Leader選舉埠 | server.1 |
NiFi自帶嵌入式Zookeeper配置檔案路徑為conf/zookeeper.properties
配置項為:server.N=nifi-nodeN-hostname:2888:3888;2181
部署NiFi
下載NiFi包
建立存放NiFi相關部署包檔案路徑
- 部署包存放
# mkdir -p /tmp/nifi_install
複製程式碼
- 部署路徑
# mkdir -p /opt/nifi
複製程式碼
下載(上傳)JDK與NiFi至Linux伺服器/tmp/nifi_install
# ls -lh /tmp/nifi_install/
total 1.5G
-rwxr-xr-x. 1 root root 186M Nov 11 22:14 jdk-8u231-linux-x64.tar.gz
-rwxr-xr-x. 1 root root 1.3G Nov 11 22:16 nifi-1.9.2-bin.tar.gz
複製程式碼
解壓並設定JAVA_HOME
解壓NiFi與JDK
# tar -zxvf /tmp/nifi_install/*.tar.gz -C /opt/nifi/
複製程式碼
在bin/nifi-env.sh
中設定JAVA_HOME
# sed -i "21iexport JAVA_HOME=/opt/nifi/jdk1.8.0_231/" /opt/nifi/nifi-1.9.2/bin/nifi-env.sh
複製程式碼
修改HTTP埠
編輯配置檔案
# vim /data/nifi/nifi-1.9.2/conf/nifi.properties
複製程式碼
找下如下內容
...
# web properties #
nifi.web.war.directory=./lib
nifi.web.http.host=
# 修改http埠,預設埠為8080
nifi.web.http.port=18080
nifi.web.http.network.interface.default=
nifi.web.https.host=
nifi.web.https.port=
nifi.web.https.network.interface.default=
nifi.web.jetty.working.directory=./work/jetty
nifi.web.jetty.threads=200
nifi.web.max.header.size=16 KB
nifi.web.proxy.context.path=
nifi.web.proxy.host=
...
複製程式碼
配置執行記憶體
# vim /data/nifi/nifi-1.9.2/conf/bootstrap.conf
複製程式碼
修改內容如下
...
# JVM memory settings
# 初始堆大小
java.arg.2=-Xms2048m
# 最大堆大小
java.arg.3=-Xmx4096m
...
複製程式碼
可根據伺服器效能合理設定nifi記憶體
新增到服務並啟動
update-rc.d
# ln -s /opt/nifi/nifi-1.9.2/bin/nifi.sh /etc/init.d/nifi
# service nifi start
複製程式碼
systemd
建立服務指令碼
# cat > /etc/systemd/system/nifi.service << EOF
> [Unit]
> Description=nifi service
> After=network.target
>
> [Service]
> Type=forking
> LimitNOFILE=65536
> ExecStart=/opt/nifi/nifi-1.9.2/bin/nifi.sh start
> ExecStop=/opt/nifi/nifi-1.9.2/bin/nifi.sh stop
> User=root
> Restart=on-abort
>
> [Install]
> WantedBy=multi-user.target
> EOF
複製程式碼
啟動服務
# systemctl daemon-reload
# systemctl start nifi
複製程式碼
訪問
至此單節點NiFi部署完成,可以在瀏覽器中訪問http://ip:18080/nifi/
即進入Web介面