安装java环境
-
下载jdk,这就不用说了吧
https://download.oracle.com/otn/java/jdk/8u211-b12/478a62b7d4e34b78b671c754eaaf38ab/jdk-8u211-linux-x64.tar.gz?AuthParam=1561776727_ad53904309344ce63b77b1b3d8a93092 -
上传到服务器,方法很多,可以通过ftp或者rz
-
解压以后配置环境变量
vi /etc/profile
添加如下内容:
export JAVA_HOME=jdk安装目录
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
- 刷新配置并测试
//刷新配置
source /etc/profile
//测试安装
java
javac
安装zookeeper(单机)
- 下载zookeeper(注意版本)
http://apache.fayea.com/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz - 上传到服务器跟jdk一样
ftp或rz - 解压并复制配置文件
//解压
tar -zxvf 上传的安装包
//复制一份配置文件为zoo.cfg
cp (你的解压目录)/conf/zoo_sample.cfg zoo.cfg
- 运行服务
//运行服务
进入安装目录
cd (安装目录)/bin
sh zkServer.sh start;//启动
sh zkServer.sh stop;//停止
sh zkServer.sh status;//查看状态
sh zkServer.sh restart;//重启
查看日志后边跟 tail -f zookeeper.out即可
- 客户端测试
sh zkCli.sh -server ip:port
默认port为2181
安装zookeeper(集群)
zookeeper的三个角色:leader/follower/observer
按照单机版配置4台服务器,1个leader,2个follower,1个observer,确保四台服务器可以相互ping通,防火请什么的
和单机版不同的地方在于:
- zoo.cfg不同
leader和follower的配置基本相同,observer与他俩不同
需要在配置文件指定的dataDir地址中创建一个myid的文件,此文件只有一行内容,并且就是一个数字,数字范围是1-255之间,而这个数字写几,看下边的配置文件讲解
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/opt/zookeeper/zookeeper-3.4.14/data
dataLogDir=/opt/zookeeper/zookeeper-3.4.14/logs
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
#如果是observer节点需要额外配置如下内容
#peerType=observer
#这里是重点,注意两个端口号,不要出现占用的情况,不可使用2181,因为2181是客户端的端口号,会冲突
# 格式: server.节点序号=ip:port1:port2(如果是observer节点还需要加上 :observer )
# port1是节点间通信的端口,port2是用来选举leader节点的端口
server.1=192.168.0.201:2001:3001 #这个是leader
server.2=192.168.0.202:2001:3001 #这个是follower1
server.3=192.168.0.203:2001:3001 #这个是follower2
server.4=192.168.0.204:2001:3181:observer #这个是observer
配置如上所写,分别代表如下信息:
节点 | server序号(也就是myid文件的内容) | 配置信息 |
---|---|---|
leader节点 | 1 | server.1 |
follower节点 | 2 | server.2 |
follower节点 | 3 | server.3 |
observer节点 | 4 | server.4 |
-
observer和其他服务器不同
observer节点需要额外配置
peerType=observer
节点配置还需要加上observer,例如上边配置的四台服务 -
端口号问题
端口不要说设置为被占用的端口,比如说3306,2181等等,因为启动之后会一直报错.