`
阅读更多

 

Centos安装配置和Zookeeper安装配置,Centos安装Zookeeper

Zookeeper开机启动

 

================================

©Copyright 蕃薯耀 2020-10-20

http://fanshuyao.iteye.com/

 

一、使用VMware Workstation Pro安装CentOS-7-x86_64-Minimal-1708.iso

过程略。

 

二、修改IP地址,默认是没有局域网地址的

进入ip地址配置文件目录:

cd /etc/sysconfig/network-scripts/

 

编辑配置文件:

vi ifcfg-ens33

全部路径:
vi /etc/sysconfig/network-scripts/ifcfg-ens33

 

只要修改这个,重启网络服务后,就能获取到地址(这个比较好,设置静态地址,有时候会出现不能上网的情况)

ONBOOT=yes

 

设置静态地址:

复制代码
……

BOOTPROTO=static
……
……
ONBOOT=yes
IPADDR=192.168.132.13
GATEWAY=192.168.132.1
NETMASK=255.255.255.0
复制代码

 

修改完配置文件,重启网络:

systemctl restart network

 

三、安装Jdk和zookeeper

上传jdk和zookeeper
修改权限:

chmod 777 jdk-8u202-linux-x64.tar.gz apache-zookeeper-3.6.2-bin.tar.gz

1、解压jdk、zookeeper:

tar -zxvf jdk-8u202-linux-x64.tar.gz
tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz

 

2、修改文件夹名称(改短一点)

mv jdk1.8.0_202 /java/jdk1.8
mv apache-zookeeper-3.6.2-bin /java/zookeeper3.6.2

 

3、jdk配置:

vi /etc/profile

在文件的最后加下下面的配置:

JAVA_HOME=/java/jdk1.8
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH

重新加载配置文件:

source /etc/profile

查看版本:

java -version

 

4、修改zookeeper配置

修改配置的文件名(直接复制一份),默认文件名不生效:

cp /java/zookeeper3.6.2/conf/zoo_sample.cfg /java/zookeeper3.6.2/conf/zoo.cfg

增加zookeeper配置文件夹的目录:

mkdir /java/zookeeper3.6.2/zkdata

修改配置文件:

vi /java/zookeeper3.6.2/conf/zoo.cfg

修改dataDir的目录为:/java/zookeeper3.6.2/zkdata

dataDir=/java/zookeeper3.6.2/zkdata

修改日志目录(可不修改,默认和zkdata同一个目录):

先在Linux创建目录:
mkdir /java/zookeeper3.6.2/zkdata/logs
在zoo.cfg配置: dataLogDir
=/java/zookeeper3.6.2/zkdata/logs

修改配置文件(/java/zookeeper3.6.2/conf/zoo.cfg),配置集群:

server.1=192.168.132.11:2888:3888
server.2=192.168.132.12:2888:3888
server.3=192.168.132.13:2888:3888

其中数字1/2/3分别对应myid的文件内容,看下面:

创建myid文件:

echo 1 > /java/zookeeper3.6.2/zkdata/myid
echo 2 > /java/zookeeper3.6.2/zkdata/myid
echo 3 > /java/zookeeper3.6.2/zkdata/myid

查看文件有没有创建成功:

cat /java/zookeeper3.6.2/zkdata/myid

 

四、开放Centos系统端口,不然集群不能通讯,启动失败。注意:需要firewall-cmd --reload才能生效:
firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --zone=public --add-port=3888/tcp --permanent

firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --zone=public --add-port=8001/tcp --permanent
firewall-cmd --zone=public --add-port=8002/tcp --permanent
firewall-cmd --zone=public --add-port=8003/tcp --permanent
firewall-cmd --zone=public --add-port=8004/tcp --permanent

让端口生效:

firewall-cmd --reload


查看防火墙所有开放的端口

firewall-cmd --zone=public --list-ports

 

查看某个端口是否开放:

firewall-cmd --query-port=2181/tcp

 

移除指定端口:

firewall-cmd --zone=public --remove-port=5672/tcp --permanent #关闭5672端口

或者

firewall-cmd --permanent --remove-port=123/tcp

查看监听的端口

netstat -lnpt

检查端口被哪个进程占用

netstat -lnpt |grep 5672

 

如果很多端口要设置,想关掉防火墙,看下面:

复制代码
查看防火墙状态:
firewall-cmd --state

关闭防火墙
systemctl stop firewalld.service

禁止防火墙开机启动
systemctl disable firewalld.service
复制代码

 

五、Zookeeper单机配置

单机(不配置server.1)可以直接启动:

 

六、启动Zookeeper
进入bin目录:

cd /java/zookeeper3.6.2/bin/

启动服务:

./zkServer.sh start

或者使用全路径:
/java/zookeeper3.6.2/bin/zkServer.sh start

查看状态

./zkServer.sh status

或者使用全路径:
/java/zookeeper3.6.2/bin/zkServer.sh status

 

停止服务:

./zkServer.sh stop

或者
/java/zookeeper3.6.2/bin/zkServer.sh stop

 

启动客户端(默认启动的是本机):

./zkCli.sh

或者
/java/zookeeper3.6.2/bin/zkCli.sh

 

带端口启动:

./zkCli.sh -server 192.168.220.131:2181

 

Zookeeper Client启动后,查看根:

ls /

 

七、Zookeeper Client常用命令

1、创建节点:

create /aa a

其中/aa表示aa节点,并设置该节点的值为a。后面一定要用值,不然会创建失败。

默认创建的是持久的节点。

 

2、获取节点的值

get /aa

 

3、更新节点的值

set /aa aaaaa

 

4、删除节点

delete /aa

 

5、递归删除节点,包括下面的所有子节点

rmr /aa

 

6、创建临时的节点

create -e /bb bb

临时节点,关闭或者退出Zookeeper client时,就会消除数据,下次再进来就没有。

 

7、列表节点下面的子节点

ls /aa

 

8、退出Client

quit

 

 

Centos系统其它命令:

删除目录及下面所有的文件:

rm -rf version-2

 

八、Zookeeper IP地址配置错误导致的错

2021-01-04 11:31:19,911 [myid:1] - INFO [QuorumPeer[myid=1](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):FastLeaderElection@979] - Notification time out: 1600
2021-01-04 11:31:20,500 [myid:1] - ERROR [ListenerHandler-/192.168.132.11:3888:QuorumCnxManager$Listener$ListenerHandler@1093] - Exception while listening
java.net.BindException: 无法指定被请求的地址 (Bind failed)
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
at java.net.ServerSocket.bind(ServerSocket.java:375)
at java.net.ServerSocket.bind(ServerSocket.java:329)
at org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener$ListenerHandler.createNewServerSocket(QuorumCnxManager.java:1134)
at org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener$ListenerHandler.acceptConnections(QuorumCnxManager.java:1064)
at org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener$ListenerHandler.run(QuorumCnxManager.java:1033)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
2021-01-04 11:31:21,502 [myid:1] - ERROR [ListenerHandler-/192.168.132.11:3888:QuorumCnxManager$Listener$ListenerHandler@1112] - Leaving listener thread for address 192.168.132.11:3888 after 3 errors. Use zookeeper.electionPortBindRetry property to increase retry count.
2021-01-04 11:31:21,502 [myid:1] - INFO [QuorumPeerListener:QuorumCnxManager$Listener@979] - Leaving listener
2021-01-04 11:31:21,503 [myid:1] - ERROR [QuorumPeerListener:QuorumCnxManager$Listener@981] - As I'm leaving the listener thread, I won't be able to participate in leader election any longer: 192.168.132.11:3888
2021-01-04 11:31:21,504 [myid:1] - ERROR [QuorumPeerListener:ServiceUtils@42] - Exiting JVM with code 14

复制代码
IP地址配置错误,导致无法连接

错误的IP地址:
server.1=192.168.132.11:2888:3888
server.2=192.168.132.12:2888:3888
server.3=192.168.132.13:2888:3888

正确的IP地址:
server.1=192.168.170.11:2888:3888
server.2=192.168.170.12:2888:3888
server.3=192.168.170.13:2888:3888
复制代码

 

 九、Zookeeper设置开机启动(需要指定JAVA_HOME,不然启动失败)

1、创建Zookeeper开机启动脚本文件:

vi /etc/init.d/zookeeper

Zookeeper开机启动脚本文件内容(JAVA_HOME的路径要修改,zookeeper的bin要修改):

复制代码
#!/bin/bash 
#chkconfig:2345 20 90 
#description:zookeeper 
#processname:zookeeper 
export JAVA_HOME=/java/jdk1.8
case $1 in 
start) su root /java/zookeeper3.6.2/bin/zkServer.sh start;; 
stop) su root /java/zookeeper3.6.2/binzkServer.sh stop;; 
status) su root /java/zookeeper3.6.2/bin/zkServer.sh status;; 
restart) su root /java/zookeeper3.6.2/bin/zkServer.sh restart;; 
*) echo "require start|stop|status|restart" ;; 
esac
复制代码

 

2、给脚本添加执行权限

chmod +x /etc/init.d/zookeeper

 

3、将zookeeper添加到开机启动

chkconfig --add zookeeper

 

4、查看开机自启的服务中是否已经有我们的zookeeper

chkconfig --list zookeeper

[root@host-11 ~]# chkconfig --list zookeeper

结果:
注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。

要列出 systemd 服务,请执行 'systemctl list-unit-files'。
查看在具体 target 启用的服务请执行
'systemctl list-dependencies [target]'。

zookeeper 0:关 1:关 2:开 3:开 4:开 5:开 6:关

 

5、测试开机启动是否成功,重启服务器

reboot -f

 

6、查看zookeeper的状态:

service zookeeper status

启动:service zookeeper start
关闭:service zookeeper stop
查看状态:service zookeeper status

或者查看进程

ps -ef | grep zookeeper

 

 

 注意事项:

1、提示unable access datadir时,删除/java/zookeeper3.6.2/zkdata的version-2目录:rm -rf version-2

 

2、

-----------centos7没有iptables------------
service iptables status
service iptables stop

chkconfig iptables off
-----------------------------------------------

 

================================

©Copyright 蕃薯耀 2020-10-20

http://fanshuyao.iteye.com/

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics