# 关闭防火墙(3台机器)
[root@master bin]#  systemctl stop firewalld
[root@master bin]#  systemctl enable firewalld

Linux Zookeeper集群部署

# 3个节点配置hosts文件
vim /etc/hosts

192.168.10.110        master
192.168.10.141        node1
192.168.10.142        node2

Linux Zookeeper集群部署

# 基于RSA算法 生成公钥
[root@master zookeeper]# ssh-keygen
# node1的免密
[root@master zookeeper]# ssh-copy-id root@node1
# node2的免密
[root@master zookeeper]# ssh-copy-id root@node2

Linux Zookeeper集群部署


安装JDK

以下安装(2选1)

Linux Zookeeper集群部署

# 3个节点部署安装JDK (Yum安装,推荐)

yum install –y java-1.8.0-openjdk-devel.x86_64

# 检查java版本

java –version

# 检查java安装

yum list java* -y

# yum默认的java安装路径

[root@master ~]# ls /usr/bin/java -l
lrwxrwxrwx. 1 root root 22 Jun 20 15:50 /usr/bin/java -> /etc/alternatives/java

# 配置java的环境变量

#set java environment

JAVA_HOME=/etc/alternatives/java_sdk_1.8.0

CLASSPATH=$JAVA_HOME/lib/

PATH=$PATH:$JAVA_HOME/bin

export PATH JAVA_HOME CLASSPATH

# java –version


Linux Zookeeper集群部署

Zookeeper部署

# 访问官网下载Zookeeper安装包,并解压

mkdir -p /opt/zookeeper cd /opt/zookeeper

# 创建软连接

ln -s zookeeper apache-zookeeper-3.7.0-bin # 创建数据目录 mkdir -p /opt/zk/zk_data # 创建日志目录 mkdir –p /opt/zk/zk_log

# 复制包到node1和node2


下载链接:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.7.0/

Linux Zookeeper集群部署


cd /opt/zk/apache-zookeeper-3.7.0-bincp zoo_sample.cfg zoo.cfg vim zoo.cfg dataDir=/opt/zk/zk_data dataLogDir=/opt/zk/zk_log server.1=master:2888:3888 server.2=node1:2888:3888 server.3=node2:2888:3888 # 同步配置文件到其他节点 scp zoo.cfg root@node1:/opt/zookeeper/zookeeper/conf/ scp zoo.cfg root@node2:/opt/zookeeper/zookeeper/conf/


说明:

tickTime:基本事件单元,这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,每隔tickTime时间就会发送一个心跳;最小的session过期时间为2倍tickTime

dataDir:存储内存中数据库快照的位置,除非另有说明,否则指向数据库更新的事务日志。注意:应该谨慎的选择日志存放的位置,使用专用的日志存储设备能够大大提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会很大程度上影像系统性能。

client:监听客户端连接的端口。
initLimit:允许follower连接并同步到Leader的初始化连接时间,以tickTime为单位。当初始化连接时间超过该值,则表示连接失败。
syncLimit:表示Leader与Follower之间发送消息时,请求和应答时间长度。如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃。

server.A=B:C:D
    A:其中 A 是一个数字,表示这个是服务器的编号,对应myid文件
    B:是这个服务器的 ip 地址;
    C:Zookeeper服务器之间的通信端口;
    D:Leader选举的端口。

# 参考官方文档:https://zookeeper.apache.org/doc/r3.5.8/zookeeperStarted.html

Linux Zookeeper集群部署

# master节点配置,myid参考配置文件zoo.cfg中配置的信息

[root@master conf]# cd /opt/zk/zk_data/ [root@master data]# ll total 0 [root@master data]# echo '1' >myid

# node1和node2分别写入2,3

Linux Zookeeper集群部署

#(3台机器操作) 配置zk变量信息 vim /etc/profile #set zookeeper environment export ZK_HOME=/opt/zk/apache-zookeeper-3.7.0-bin

export PATH=$PATH:$ZK_HOME/bin # 配置生效 source /etc/profine

Linux Zookeeper集群部署

# 启动zk
cd /opt/zk/apache-zookeeper-3.7.0-bin/bin
./zkServer.sh start

Linux Zookeeper集群部署

# 查看zk的状态
zkServer.sh status

Linux Zookeeper集群部署

部署错误

错误1: could not find or load mian class org.apache.zookeeper.server.quorum

解决1:重新下载bin.tar.gz包

Linux Zookeeper集群部署


错误2: [myid:localhost:2181] - WARN  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1290] - Session 0x0 for sever localhost/127.0.0.1:2181, Closing socket connection. Attempting reconnect except it is a SessionExpiredException.

解决2:防火墙没有关 systemctl stop firewalld

相关文章: