zookeeper installation is divided into three modes: Standalone mode, the dummy pattern cluster and cluster mode.
Zookeeper need to use the installation file, to http://zookeeper.apache.org/ through the download link to download.
First, the stand-alone mode installation ZooKeeper . 1, set the environment variable
1 2 3 4 5 6 7 8 9
$ ZK_FILE=/vagrant/zookeeper-3.4.13.tar.gz $ ZK_INSTALL_PATH=/opt/zk $ ZK_INSTALL_DIR=$ZK_INSTALL_PATH /zookeeper-3.4.13 $ ZK_DATA_DIR=$ZK_INSTALL_PATH /zookeeper-3.4.13/data $ ZK_LOG_DIR=$ZK_INSTALL_PATH /zookeeper-3.4.13/log $ ZK_CFG=$ZK_INSTALL_DIR /conf/zoo.cfg $ ZK_SERVER_ID=1 $ ZK_PORT=2181 $ ZK_SERVER_LIST=server.1=127.0.0.1:2888:3888
2, to create the installation directory and extract the installation directory zk
1 2 3
$ mkdir -p $ZK_INSTALL_PATH $ tar -zxvf $ZK_FILE -C $ZK_INSTALL_PATH >> /var/null $ ls -l $ZK_INSTALL_PATH
3, the new data and log directory, which generates myid file, copy the configuration file zoo.cfg
1 2 3 4 5
$ mkdir $ZK_DATA_DIR $ mkdir $ZK_LOG_DIR $ echo $ZK_SERVER_ID >> $ZK_DATA_DIR /myid $ cp $ZK_INSTALL_DIR /conf/zoo_sample.cfg $ZK_CFG $ cat $ZK_CFG
4, configuration zoo.cfg data directory, log directory, port number, and confirm the configuration server list
1 2 3 4 5 6
$ sed -i 's#dataDir=/tmp/zookeeper#dataDir=' $ZK_DATA_DIR '#' $ZK_CFG $ sed -i '$a dataLogDir=' $ZK_LOG_DIR $ZK_CFG $ sed -i 's/2181/' $ZK_PORT '/g' $ZK_CFG $ sed -i '$a ' $ZK_SERVER_LIST $ZK_CFG $ cat $ZK_CFG
5、启动zk并查看状态
1 2
$ sh $ZK_INSTALL_DIR /bin/zkServer.sh start $ sh $ZK_INSTALL_DIR /bin/zkServer.sh status
6、利用zkCli操作zk
1
$ sh $ZK_INSTALL_DIR /bin/zkCli.sh
可以输入以下命令进行操作, 查看结果
1 2 3
> ls / > create /test value1 > get /test
二、通过vagrant一键安装单机版的zookeeper 1、整理一中的shell命令成zk-install.sh脚本文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>zk压缩包路径>>>>>>>>>>>>>>>>>>>>>>>>>>>>" echo $ZK_FILE echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>zk安装路径&安装目录>>>>>>>>>>>>>>>>>>>>>" echo $ZK_INSTALL_PATH echo $ZK_INSTALL_DIR echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>zk数据目录&日志目录>>>>>>>>>>>>>>>>>>>>>" echo $ZK_DATA_DIR echo $ZK_LOG_DIR echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>zk的myid>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" echo $ZK_SERVER_ID echo ">>>>>>>>>>>>>>>>>>>>>>>>>zk端口及服务器列表>>>>>>>>>>>>>>>>>>>>>>>>>" echo $ZK_PORT echo $ZK_SERVER_LIST echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>zk配置文件>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" ZK_CFG=$ZK_INSTALL_DIR /conf/zoo.cfg echo $ZK_CFG echo ">>>>>>>>>>>>>>>>>>>>新建zk安装目录并解压zk到该目录>>>>>>>>>>>>>>>>>>>" mkdir -p $ZK_INSTALL_PATH tar -zxvf $ZK_FILE -C $ZK_INSTALL_PATH >> /var/null echo ">>>>>>>>>>>>>>>>>>>>>新建zk数据和日志目录及myid>>>>>>>>>>>>>>>>>>>>>" mkdir $ZK_DATA_DIR mkdir $ZK_LOG_DIR echo $ZK_SERVER_ID >> $ZK_DATA_DIR /myidecho ">>>>>>>>>>>>>>>>>>>>>>>>>>>>配置zoo.cfg>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" cp $ZK_INSTALL_DIR /conf/zoo_sample.cfg $ZK_CFG sed -i 's#dataDir=/tmp/zookeeper#dataDir=' $ZK_DATA_DIR '#' $ZK_CFG sed -i '$a dataLogDir=' $ZK_LOG_DIR $ZK_CFG sed -i 's/2181/' $ZK_PORT '/g' $ZK_CFG sed -i '$a ' $ZK_SERVER_LIST $ZK_CFG tail -n 20 $ZK_CFG echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>启动zk>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" sh $ZK_INSTALL_DIR /bin/zkServer.sh start
2、新建Vagrantfile文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
Vagrant.configure("2" ) do |config| config.vm.box = "centos7-base-jdk8" config.vm.hostname = "centos7-jdk8-zk-standalone" config.vm.network "private_network" , ip: "192.168.13.10" config.vm.provider "virtualbox" do |v| v.name = "centos7-jdk8-zk-standalone" v.memory = 大专栏 zookeeper安装:单机模式、伪集群模式、集群模式 r">2048 v.cpus = 2 end config.vm.provision "shell" do |s| s.path = "zk-install.sh" s.env = {ZK_FILE: "/vagrant/zookeeper-3.4.13.tar.gz" , ZK_INSTALL_PATH: "/opt/zk" , ZK_INSTALL_DIR: "/opt/zk/zookeeper-3.4.13" , ZK_PORT: "2181" , ZK_DATA_DIR: "/opt/zk/zookeeper-3.4.13/data" , ZK_LOG_DIR: "/opt/zk/zookeeper-3.4.13/log" , ZK_SERVER_ID: "1" , ZK_SERVER_LIST: "server.1=127.0.0.1:2888:3888" } end end
3、通过vagrant up启动虚拟机
三、通过vagrant一键安装zookeeper伪集群 1、zk伪集群指的是在一台集群上安装zk集群 需要注意每个zk进程对外端口(默认2181,用于客户端链接zk集群),选主端口(默认3888-进行leader选举时使用的端口),集群通信端口(默认2888-集群follow链接leader的通信端口)配置不冲突。 myid=1, 2181, 2888, 3888 myid=2, 2182, 2887, 3887 myid=3, 2183, 2886, 3886
2、zk-install.sh同二使用的是相同内容,Vagrantfile如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
Vagrant.configure("2" ) do |config| config.vm.box = "centos7-base-jdk8" config.vm.hostname = "centos7-jdk-zk-local-cluster" config.vm.provider "virtualbox" do |v| v.name = "centos7-jdk-zk-local-cluster" v.memory = 2048 v.cpus = 2 end (1 ..3 ).each do |i| config.vm.provision "shell" do |s| s.path = "zk-install.sh" s.env = {ZK_FILE: "/vagrant/zookeeper-3.4.13.tar.gz" , ZK_INSTALL_PATH: "/opt/zk/zk-server#{i} " , ZK_INSTALL_DIR: "/opt/zk/zk-server#{i} /zookeeper-3.4.13" , ZK_PORT: "218#{i} " , ZK_DATA_DIR: "/opt/zk/zk-server#{i} /zookeeper-3.4.13/data" , ZK_LOG_DIR: "/opt/zk/zk-server#{i} /zookeeper-3.4.13/log" , ZK_SERVER_ID: "#{i} " , ZK_SERVER_LIST: "server.1=127.0.0.1:2888:3888\nserver.2=127.0.0.1:2887:3887\nserver.3=127.0.0.1:2886:3886" } end end end `` ` 3、同样使用vagrant up 命令,可以启动虚拟机,并自动安装 4、ssh进入虚拟机, 查看各个目录下对应的zk安装情况 可以看到,zk-server2作为leader节点, 其他两个节点作为follower节点 ![zk-local-cluster-status ][10] 5、可以通过xshell给三个节点的zkCli.sh 分别发送命令, ![zk-local-cluster-cli ][11] 四、通过vagrant一键安装zookeeper集群 1、集群ip规划 zk_server1 => 1 192.168.13.21 centos7-jdk-zk-cluster-1 zk_server2 => 2 192.168.13.22 centos7-jdk-zk-cluster-2 zk_server3 => 3 192.168.13.23 centos7-jdk-zk-cluster-3 2、zk-install.sh同二使用的是相同内容,Vagrantfile如下: ` `` rubyVagrant.configure("2" ) do |config| config.vm.box = "centos7-base-jdk8" zk_servers = { :zk_server1 => ["192.168.13.21" , "1" , "centos7-jdk-zk-cluster-1" ], :zk_server2 => ["192.168.13.22" , "2" , "centos7-jdk-zk-cluster-2" ], :zk_server3 => ["192.168.13.23" , "3" , "centos7-jdk-zk-cluster-3" ] } zk_server_list = "server.1=192.168.13.21:2888:3888\nserver.2=192.168.13.22:2888:3888\nserver.3=192.168.13.23:2888:3888" zk_servers.each do |zk_server_name, zk_server_cfg| config.vm.define zk_server_name do |app_config| app_config.vm.hostname = zk_server_cfg[2 ] app_config.vm.network "private_network" , ip: zk_server_cfg[0 ] app_config.vm.provider "virtualbox" do |v| v.name = zk_server_cfg[2 ] v.memory = 1048 v.cpus = 2 end app_config.vm.provision "shell" do |s| s.path = "zk-install.sh" s.env = {ZK_FILE: "/vagrant/zookeeper-3.4.13.tar.gz" , ZK_INSTALL_PATH: "/opt/zk" , ZK_INSTALL_DIR: "/opt/zk/zookeeper-3.4.13" , ZK_PORT: "2181" , ZK_DATA_DIR: "/opt/zk/zookeeper-3.4.13/data" , ZK_LOG_DIR: "/opt/zk/zookeeper-3.4.13/log" , ZK_SERVER_ID: zk_server_cfg[1 ], ZK_SERVER_LIST: zk_server_list} end end end end
3, through vagrant up to pull three virtual machines and automatically install zk After installation, the virtual machine, verify the correct installation
OK, here it is over, the installation of three models can be quickly installed experimental environment by vagrant.