Nifi-2.0.0集群搭建

单机搭建

环境准备

主机名 配置信息 部署软件
192.168.1.10 64C256G40T nifi-2.0.0、 内置zookeeper、nifi-toolkit-1.28.1-bin.zip

软件包准备

nifi-2.0.0-bin.zip https://dlcdn.apache.org/nifi/2.0.0/nifi-2.0.0-bin.zip)
nifi-toolkit-1.28.1-bin.zip (2.0 版本的 toolkit 剔除了快速生成 TLS 证书的功能)https://dlcdn.apache.org/nifi/1.28.1/nifi-toolkit-1.28.1-bin.zip

下载后上传到三台机器的/data目录

JDK依赖21版本

JDK21 ARM架构 https://download.oracle.com/java/21/latest/jdk-21_linux-aarch64_bin.tar.gz
JDK21 X64架构 https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz

生成证书

# 解压两个软件包
unzip nifi-2.0.0-bin.zip  -d /data/
unzip nifi-toolkit-1.28.1-bin.zip -d /data/
cd /data/nifi-toolkit-1.28.1
# 生成证书
./bin/tls-toolkit.sh standalone  -n '192.168.1.10' -C 'CN=username,OU=NIFI'  -K 123456789012K -S 123456789012K -P 123456789012K -o '/data/nifi-2.0.0/tls' 
# 拷贝生成的证书及配置信息
cd /data/nifi-2.0.0/tls/

# 把生成的配置放到nifi/conf中  覆盖配置
cp 192.168.1.10/*  /data/nifi-2.0.0/conf/ 

JDK配置

tar xf jdk-21_linux-aarch64_bin.tar.gz -C /usr/local/

# 配置nifi JAVA_home
vim /data/nifi-2.0.0/bin/nifi.sh
# 放在#!/bin/bash 下一行
export JAVA_HOME=/usr/local/jdk-21.0.7/

Zookeeper配置

cd /data/nifi-2.0.0/
mkdir -p  state/zookeeper
echo 1 > state/zookeeper/myid
vim /data/nifi-2.0.0/conf/nifi.properties
# 这里使用内置zk所以改为true
nifi.state.management.embedded.zookeeper.start=true

# zk集群配置 host:port的字符串,多个节点以英⽂逗号分隔,以实际环境中使⽤的zk为准
nifi.zookeeper.connect.string=192.168.1.10:2181
# 三台都要配置zk链接信息
vim /data/nifi-2.0.0/conf/state-management.xml
    <cluster-provider>
        <id>zk-provider</id>
        <class>org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider</class>
        <!-- zk集群配置,host:port的字符串,多个节点以英⽂逗号分隔,以实际环境中使⽤的zk为准 -->
        <property name="Connect String">192.168.1.102181</property>
        <property name="Root Node">/nifi</property>
        <property name="Session Timeout">10 seconds</property>
        <property name="Access Control">Open</property>
    </cluster-provider>
vim /data/nifi-2.0.0/conf/zookeeper.properties
# 将 server.1= 替换成如下配置
server.1=192.168.1.10:2888:3888;2181

Nifi配置

vim /data/nifi-2.0.0/conf/nifi.properties
# 集群节点间访问是否是安全的(即是否是HTTPS)
nifi.cluster.protocol.is.secure=true
# 配置用户和密码
cd /data/nifi-2.0.0/
./bin/nifi.sh set-sensitive-properties-key 123456789012K
# admin 是用户  后面是密码
./bin/nifi.sh set-single-user-credentials admin  123456789012K
# 三台都要执行
# 配置JVM根据机器配置我这里直接分配64G内存
vim /data/nifi-2.0.0/conf/bootstrap.conf
java.arg.2=-Xms64g
java.arg.3=-Xmx64g
# 启动nifi 三台都要执行
/data/nifi-2.0.0/bin/nifi.sh

# 查看日志
tail -f /data/nifi-2.0.0/logs/nifi-app.log
访问节点
https://192.168.1.10:9443/nifi
admin
123456789012K

集群搭建

环境准备

主机名 配置信息 部署软件
192.168.1.5 64C256G40T nifi-2.0.0、 内置zookeeper、nifi-toolkit-1.28.1-bin.zip
192.168.1.6 64C256G40T nifi-2.0.0、 内置zookeeper
192.168.1.7 64C256G40T nifi-2.0.0、 内置zookeeper

软件包准备

nifi-2.0.0-bin.zip https://dlcdn.apache.org/nifi/2.0.0/nifi-2.0.0-bin.zip)
nifi-toolkit-1.28.1-bin.zip (2.0 版本的 toolkit 剔除了快速生成 TLS 证书的功能)https://dlcdn.apache.org/nifi/1.28.1/nifi-toolkit-1.28.1-bin.zip

下载后上传到三台机器的/data目录

JDK依赖21版本

JDK21 ARM架构 https://download.oracle.com/java/21/latest/jdk-21_linux-aarch64_bin.tar.gz
JDK21 X64架构 https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz

配置本地解析

vim /etc/hosts

192.168.1.5 hadoop102
192.168.1.6 hadoop103
192.168.1.7 hadoop104

生成证书

# 解压两个软件包
unzip nifi-2.0.0-bin.zip  -d /data/
unzip nifi-toolkit-1.28.1-bin.zip -d /data/
cd /data/nifi-toolkit-1.28.1
# 生成证书
./bin/tls-toolkit.sh standalone  -n 'hadoop102,hadoop103,hadoop104' -C 'CN=username,OU=NIFI'  -K 123456789012K -S 123456789012K -P 123456789012K -o '/data/nifi-2.0.0/tls'
# 拷贝生成的证书及配置信息
cd /data/nifi-2.0.0/tls/
cp CN\=username_OU\=NIFI.p* hadoop102
cp CN\=username_OU\=NIFI.p* hadoop103
cp CN\=username_OU\=NIFI.p* hadoop104

cp nifi-* hadoop102
cp nifi-* hadoop103
cp nifi-* hadoop104

# 把生成的配置放到nifi/conf中
scp hadoop102/*  root@hadoop102:/data/nifi-2.0.0/conf/
scp hadoop103/*  root@hadoop103:/data/nifi-2.0.0/conf/
scp hadoop104/*  root@hadoop104:/data/nifi-2.0.0/conf/

JDK配置

# 三台机器都要执行
tar xf jdk-21_linux-aarch64_bin.tar.gz -C /usr/local/

# 配置nifi JAVA_home
vim /data/nifi-2.0.0/bin/nifi.sh
# 放在#!/bin/bash 下一行
export JAVA_HOME=/usr/local/jdk-21.0.7/

Zookeeper配置

# 三台机器都要执行
cd /data/nifi-2.0.0/
mkdir -p  state/zookeeper
# dahoop102执行
echo 1 > state/zookeeper/myid

# dahoop103执行
echo 2 > state/zookeeper/myid

# dahoop104执行
echo 3 > state/zookeeper/myid
# 三台都要配置
vim /data/nifi-2.0.0/conf/nifi.properties
# 这里使用内置zk所以改为true
nifi.state.management.embedded.zookeeper.start=true

# zk集群配置 host:port的字符串,多个节点以英⽂逗号分隔,以实际环境中使⽤的zk为准
nifi.zookeeper.connect.string=hadoop102:2181,hadoop103:2181,hadoop104:2181
# 三台都要配置zk链接信息
vim /data/nifi-2.0.0/conf/state-management.xml
    <cluster-provider>
        <id>zk-provider</id>
        <class>org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider</class>
        <!-- zk集群配置,host:port的字符串,多个节点以英⽂逗号分隔,以实际环境中使⽤的zk为准 -->
        <property name="Connect String">hadoop102:2181,hadoop103:2181,hadoop104:2181</property>
        <property name="Root Node">/nifi</property>
        <property name="Session Timeout">10 seconds</property>
        <property name="Access Control">Open</property>
    </cluster-provider>
# 三台都要配置
vim /data/nifi-2.0.0/conf/zookeeper.properties
# 将 server.1= 替换成如下配置
server.1=hadoop102:2888:3888;2181
server.2=hadoop103:2888:3888;2181
server.3=hadoop104:2888:3888;2181

Nifi配置

# 三台都要配置
vim /data/nifi-2.0.0/conf/nifi.properties
# 集群节点间访问是否是安全的(即是否是HTTPS)
nifi.cluster.protocol.is.secure=true
# 是否是集群节点,默认是false
nifi.cluster.is.node=true
# 三台都要配置
# 更新密码
cd /data/nifi-2.0.0/
./bin/nifi.sh set-sensitive-properties-key 123456789012K
./bin/nifi.sh set-single-user-credentials admin  123456789012K
# 三台都要执行
# 配置JVM根据机器配置我这里直接分配64G内存
vim /data/nifi-2.0.0/conf/bootstrap.conf
java.arg.2=-Xms64g
java.arg.3=-Xmx64g
# 启动nifi 三台都要执行
/data/nifi-2.0.0/bin/nifi.sh

# 查看日志
tail -f /data/nifi-2.0.0/logs/nifi-app.log

配置电脑解析访问

# 编辑文件
C:\Windows\System32\drivers\etc\hosts

192.168.1.5 hadoop102
192.168.1.6 hadoop103
192.168.1.7 hadoop104
访问任意节点
https://hadoop102:9443/nifi
admin
123456789012K
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。