NIFI+外部zookeeper集群部署
1、配置jdk环境
使用rpm -qa | grep jdk 指令查看服务器是否安装过jdk,这里一般用于卸载openjdk,
[root@hadoop1 ~]# rpm -qa|grep java
1.1、openjdk卸载----卸载指令:
[root@hadoop1 ~]# rpm -e --nodeps +安装包名 卸载
使用这一行命令也可以卸载 yum -y remove copy-jdk-configs-3.3-2.el7.noarch
[root@hadoop3 java]# rpm -qa | grep jdk
查看openjdk是否卸载干净
当显示为空时则表示系统自带的openjdk卸载干净了
1.2、在/usr/创建java目录
把jdk-8u181-linux-x64.tar.gz 部署包放到/usr/java/目录下
执行解压指令
tar -xvf jdk-8u181-linux-x64.tar.gz 将jdk部署包解压到该目录下
修改包名 执行
1.3、配置jdk环境 vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
在文件的最下面添加
#jdk环境配置
export JAVA_HOME=/usr/java/jdk1.8
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
配置完成后执行source /etc/profile/使得配置生效
1.4、jdk安装校验
使用java -version 查看jdk环境是否生效,显示如下结果则jdk环境配置成功。
2、更改主机名
2.1使用hostname查看当前主机名称
[root@hadoop2 ~]# hostname
2.2、编辑hosts文件
[root@hadoop2 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.109 hadoop1
192.168.0.111 hadoop2 //服务器IP和对应的hostname 别名 IP修改成服务器对应IP
192.168.0.112 hadoop3 //服务器IP和对应的hostname 别名
[root@hadoop1 ~]# scp hosts root@192.168.0.111:/etc/
[root@hadoop1 ~]# scp hosts root@192.168.0.112:/etc/
2.3、编辑network文件
[root@hadoop1 ~]# vi /etc/sysconfig/network hostname 要对应本机 192.168.0.109 服务器
NETWORKING=yes
HOSTNAME=hadoop1
[root@hadoop2 ~]# vim /etc/sysconfig/network hostname 要对应本机 192.168.0.111 服务器
NETWORKING=yes
HOSTNAME=hadoop2
[root@hadoop3 ~]# vim /etc/sysconfig/network hostname 要对应本机 192.168.0.112 服务器
NETWORKING=yes
HOSTNAME=hadoop3
3.4 编辑hostname文件
[root@hadoop1 ~]# vim /etc/hostname hostname 要对应本机 192.168.0.109 服务器
hadoop1
[root@hadoop2 ~]# vim /etc/hostname hostname 要对应本机 192.168.0.111 服务器
hadoop2
[root@hadoop3 ~]# vim /etc/hostname hostname 要对应本机 192.168.0.112 服务器
hadoop3
4、配置免密登录 3台互认。需要开通ssh 22端口
4.1、创建密钥--登录Linux进入/root/.ssh/目录下
4.2、没有生成密钥的目录如下
4.3、执行ssh-keygen -t rsa 创建密钥
[root@hadoop1
一路回车即可。
4.4、创建信任
4.4.1、把生成的公钥文件id_rsa.pub通过命令ssh-copy-id -i /root/.ssh/id_rsa.pub root@hadoop2传过去
发到每一台服务器包括本机
ssh-copy-id -i /root/.ssh/id_rsa.pub root@hadoop1
ssh-copy-id -i /root/.ssh/id_rsa.pub root@hadoop2
ssh-copy-id -i /root/.ssh/id_rsa.pub root@hadoop3
4.4.2、同时在hadoop2、hadoop3上执行生成密钥ssh-keygen -t rsa ,发送密钥到指定服务器
ssh-copy-id -i /root/.ssh/id_rsa.pub root@hadoop1
ssh-copy-id -i /root/.ssh/id_rsa.pub root@hadoop2
ssh-copy-id -i /root/.ssh/id_rsa.pub root@hadoop3
4.5、验证免密登录是否生效
5、zookeeper集群部署
5.1、解压zookeeper部署包
由于测试服务器home目录容量最大,所以我这边的集群部署都在/home/下
[root@hadoop1 home]# tar -zxvf zookeeper-3.4.8.tar.gz
解压完成后[root@hadoop1 home]# ll
将zookeeper压缩文件解压后,我们进入到 conf 目录:
[root@hadoop1 opt]# cd zookeeper-3.4.8/conf/
5.2、将 zoo_sample.cfg 文件复制并重命名为 zoo.cfg 文件。
[root@hadoop1 conf]# cp zoo_sample.cfg zoo.cfg
5.3、修改配置文件 zoo.cfg
然后通过 vim zoo.cfg 命令对该文件进行修改:
5.3.1、修改
dataDir=/home/zookeeper-3.4.8/data
dataLogDir=/home/zookeeper-3.4.8/log
5.3.2、由于我们配置日志和数据存储的路径将zookeeper集群存储数据路径为/home/zookeeper-3.4.8/data、/home/zookeeper-3.4.8/log
所以我们需要在/home/zookeeper-3.4.8/创建data、log文件夹
[root@hadoop1 zookeeper-3.4.8]# mkdir data
[root@hadoop1 zookeeper-3.4.8]# mkdir log
[root@hadoop1 zookeeper-3.4.8]# ll
在/home/zookeeper-3.4.8/data目录下编辑myid
[root@hadoop1 data]# vi myid
hadoop1服务器对应的myid为1
hadoop2服务器对应的myid为2
hadoop3服务器对应的myid为3
输入数字2
5.3.3、新增集群服务( 配置成服务器别名比IP效果好,服务器迁移后只需重新配置hostname集群重新生效,不需要重新修改zookeeper配置文件)
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888
配置好zoo.cfg后
5.3.4、将配置好的zookeeper发送到第二台、第三台服务器
[root@hadoop1 home]# scp -r zookeeper-3.4.8/ root@hadoop2:/home/
[root@hadoop1 home]# scp -r zookeeper-3.4.8/ root@hadoop3:/home/
在/home/zookeeper-3.4.8/data/下
把myid修改成hadoop1 修改成1 hadoop3 修改成3
5.3.5、zookeeper启动顺序 (zookeeper集群是通过myid值得大小来选举leader的。由于hadoop4的myid是3,最大)
①、192.168.0.112 hadoop3
②、192.168.0.111 hadoop2
③、192.168.0.109 hadoop1
5.3.6、zookeeper 指令 执行路径/home/zookeeper-3.4.8/bin
[root@hadoop1
[root@hadoop3 bin]# ./zkServer.sh start
[root@hadoop2 bin]# ./zkServer.sh start
zkServer.sh start zookeeper启动
zkServer.sh stop zookeeper停止
zkServer.sh restart zookeeper重启
[root@hadoop4 bin]# ./zkServer.sh status
[root@hadoop3 bin]# ./zkServer.sh status
[root@hadoop2 bin]# ./zkServer.sh status
zkServer.sh status 查看zookeeper状态 需要启动3台后看zookeeper服务启动状态
6、nifi安装,将nifi-1.8.0-bin.tar.gz部署包上传到服务器/home/目录下,后解压
[root@hadoop1 home]# tar -zxvf nifi-1.8.0-bin.tar.gz
修改包名 mv nifi-1.8.0 nifi
[root@hadoop1 nifi]# cd bin
[root@hadoop1 bin]# vim nifi-env.sh
export JAVA_HOME=/usr/java/jdk1.8/
[root@hadoop1 bin]# cd ../conf
bootstrap.conf:配置服务运行占用资源大小
state-management.xml:zookeeper连接配置(使用外部zookeeper,这里暂不需配置)
zookeeper.properties:zookeeper服务配置(自带的zookeeper服务配置,暂不需配置)
nifi.properties:nifi服务配置
[root@hadoop1 conf]# vim nifi.properties (135行136行)
205、206、207行
226:hadoop1:2181,hadoop2:2181,hadoop3:2181
227、228:3 secs 修改成30 secs
229:/nifi修改成/nifi-prod/
[root@hadoop2 conf]# vim nifi.properties
226:hadoop1:2181,hadoop2:2181,hadoop3:2181
227、228:3 secs 修改成30 secs
229:/nifi修改成/nifi-prod/
[root@hadoop3 conf]# vim nifi.properties
226:hadoop1:2181,hadoop2:2181,hadoop3:2181
227、228:3 secs 修改成30 secs
229:/nifi修改成/nifi-prod/
[root@hadoop1 conf]# vim bootstrap.conf
35、36行根据服务器资源配置nifi服务占用资源大小
[root@hadoop1 bin]# ./nifi.sh start
[root@hadoop2 bin]# ./nifi.sh start
[root@hadoop3 bin]# ./nifi.sh start
分别启动3个nifi服务实例
访问连接:http://192.168.0.109:58080/nifi/
服务器自动更新重启后,nifi集群3节点启动后都连接不了集群
解决办法:将/home/nifi/conf/flow.xml.gz文件删除(3台都要删除)
查看日志在/home/nifi/logs下执行 [root@hadoop3 logs]# tail -f nifi-app.log 当发现出现successfully 如下所示 基本上集群就启动成功了