安装zookeeper之前先安装java:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
tar -xf jdk-8u231-linux-x64.tar.gz -C /usr/local/
cd /usr/local/
ln -sv jdk1.8.0_231/ jdk
cat > /etc/profile.d/java.sh <<EOF
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=\$JAVA_HOME/jre
export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar:\$JRE_HOME/lib
export PATH=\$PATH:\$JAVA_HOME/bin:\$JRE_HOME/bin
EOF. /etc/profile.d/java.sh
java -versionjavac -version |
zookeeper下载地址:
|
1
|
https://mirrors.aliyun.com/apache/zookeeper/
|
下载安装包:
|
1
|
wget https://mirrors.aliyun.com/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
|
配置DNS解析:
|
1
2
3
4
5
6
7
|
cat > /etc/hosts <<EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.0.51 zookeeper1192.168.0.52 zookeeper2192.168.0.53 zookeeper3EOF |
设置主机名:
|
1
2
3
|
hostnamectl set-hostname zookeeper1
hostnamectl set-hostname zookeeper2
hostnamectl set-hostname zookeeper3
|
配置免秘钥:
|
1
2
3
|
ssh-copy-id -i .ssh/id_rsa.pub root@zookeeper1
ssh-copy-id -i .ssh/id_rsa.pub root@zookeeper2
ssh-copy-id -i .ssh/id_rsa.pub root@zookeeper3
|
解压安装:
|
1
2
3
|
tar -xf zookeeper-3.4.14.tar.gz -C /usr/local/
cd /usr/local/
ln -sv zookeeper-3.4.14/ zookeeper
|
配置环境变量:
|
1
2
3
4
5
|
cat > /etc/profile.d/zookeeper.sh <<EOF
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=\$PATH:\$ZOOKEEPER_HOME/bin
EOF. /etc/profile.d/zookeeper.sh
|
日志目录:
|
1
|
mkdir /usr/local/zookeeper/logs
|
数据目录:
|
1
|
mkdir /data/zookeeper -pv
|
配置文件:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
cat > /usr/local/zookeeper/conf/zoo.cfg <<EOF
tickTime=2000initLimit=10syncLimit=5dataDir=/data/zookeeper
dataLogDir=/usr/local/zookeeper/logs
clientPort=2181# server.1 这个1是服务器的标识,可以是任意有效数字,标识这是第几个服务器节点,这个标识要写到dataDir目录下面myid文件里# 指名集群间通讯端口和选举端口server.1=zookeeper1:2287:3387server.2=zookeeper2:2287:3387server.3=zookeeper3:2287:3387EOF |
数据目录的myid文件的ID号和配置文件中的server.id对应:
|
1
2
3
4
5
6
|
zookeeper1echo "1" > /data/zookeeper/myid
zookeeper2echo "2" > /data/zookeeper/myid
zookeeper3echo "3" > /data/zookeeper/myid
|
复制配置文件到其他节点:
|
1
2
|
scp /usr/local/zookeeper/conf/zoo.cfg root@zookeeper2:/usr/local/zookeeper/conf/
scp /usr/local/zookeeper/conf/zoo.cfg root@zookeeper3:/usr/local/zookeeper/conf/
|
使用普通用户启动集群:这里要和hadoop配合使用,一般情况下root即可。
|
1
2
3
4
5
|
useradd hadoop
cd /usr/local/
chown -R hadoop.hadoop zookeeper/ zookeeper
chmod g+w /usr/local/zookeeper/logs/
chown -R hadoop.hadoop /data/zookeeper/
|
启动集群:
|
1
2
|
su hadoop
zkServer.sh start |
查看状态:
|
1
2
3
4
|
~]$ zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower |
停止集群:
|
1
|
zkServer.sh stop |