Centos7.2下安裝 ZooKeeper(單機版)

目錄

1.1 機器準備

#一臺虛擬機
hostname:myhost
ip:ip_address

1.2 系統環境(防火牆+selinux)

[yuki@myhost ~]$ cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[yuki@myhost ~]$ sudo firewall-cmd --state							 #查看防火牆的狀態
running
[yuki@myhost ~]$ sudo firewall-cmd --list-ports                       #查看防火牆已經開放的端口
5666/tcp 10050/tcp
[yuki@myhost ~]$ sudo firewall-cmd --list-services                    #查看防火牆開放的服務
dhcpv6-client ssh
#假設設置zookeeper的服務端口爲2181,允許2181/tcp端口訪問 
[yuki@myhost ~]$ sudo firewall-cmd --zone=public --permanent --add-port=2181/tcp
success
[yuki@myhost ~]$ sudo firewall-cmd --reload                                       	#重新加載防火牆配置
success 
[yuki@myhost ~]$ sudo firewall-cmd --list-ports
5666/tcp 10050/tcp 2181/tcp
[yuki@myhost ~]$ sudo setenforce 0  &&   sudo getenforce
Permissive
[yuki@myhost ~]$ sudo sed -i  "s/SELINUX=enforcing/SELINUX=disabled/g"  /etc/sysconfig/selinux 

1.3 軟件安裝約定

zookeeper軟件版本:zookeeper-3.4.12.tar.gz
安裝包存放目錄:/home/tools
zookeeper安裝目錄:/home/zookeeper-3.4.12

1.4 下載安裝包

ZooKeeper官網下載地址: http://mirrors.hust.edu.cn/apache/zookeeper

[yuki@myhost ~]$ cd /home/tools/
[yuki@myhost tools]$ sudo yum install -y wget
[yuki@myhost tools]$ sudo wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz
[yuki@myhost tools]$ ll 
-rw-r--r--. 1 root root 36667596 4月  25 2018 zookeeper-3.4.12.tar.gz

1.5 解壓安裝包

[yuki@myhost tools]$ tar xf zookeeper-3.4.12.tar.gz 
[yuki@myhost tools]$ ll
總用量 24918
drwxr-xr-x. 10 yuki root      4096 3月  27 2018 zookeeper-3.4.12
-rw-r--r--.  1 root root  36667596 4月  25 2018 zookeeper-3.4.12.tar.gz

1.6 安裝

[yuki@myhost tools]$ sudo mv /home/tools/zookeeper-3.4.12  /home/zookeeper-3.4.12
[yuki@myhost tools]$ ll /home/zookeeper-3.4.12/
總用量 1616
drwxr-xr-x.  2 yuki root    4096 3月  27 2018 bin
-rw-r--r--.  1 yuki root   87945 3月  27 2018 build.xml
drwxr-xr-x.  2 yuki root      74 3月  27 2018 conf
drwxr-xr-x. 10 yuki root    4096 3月  27 2018 contrib
drwxr-xr-x.  2 yuki root    4096 3月  27 2018 dist-maven
drwxr-xr-x.  6 yuki root    4096 3月  27 2018 docs
-rw-r--r--.  1 yuki root    1709 3月  27 2018 ivysettings.xml
-rw-r--r--.  1 yuki root    8197 3月  27 2018 ivy.xml
drwxr-xr-x.  4 yuki root    4096 3月  27 2018 lib
-rw-r--r--.  1 yuki root   11938 3月  27 2018 LICENSE.txt
-rw-r--r--.  1 yuki root    3132 3月  27 2018 NOTICE.txt
-rw-r--r--.  1 yuki root    1585 3月  27 2018 README.md
-rw-r--r--.  1 yuki root    1770 3月  27 2018 README_packaging.txt
drwxr-xr-x.  5 yuki root      44 3月  27 2018 recipes
drwxr-xr-x.  8 yuki root    4096 3月  27 2018 src
-rw-r--r--.  1 yuki root 1483366 3月  27 2018 zookeeper-3.4.12.jar
-rw-r--r--.  1 yuki root     819 3月  27 2018 zookeeper-3.4.12.jar.asc
-rw-r--r--.  1 yuki root      33 3月  27 2018 zookeeper-3.4.12.jar.md5
-rw-r--r--.  1 yuki root      41 3月  27 2018 zookeeper-3.4.12.jar.sha1

1.7 創建數據目錄和日誌目錄

[yuki@myhost tools]$ cd /home/zookeeper-3.4.12/
[yuki@myhost zookeeper-3.4.12]$ sudo mkdir -p data logs

1.8 配置Zookeeper

[yuki@myhost zookeeper-3.4.12]$ cd  /home/zookeeper-3.4.12/conf/
[yuki@myhost conf]$ pwd
/home/zookeeper-3.4.12/conf
[yuki@myhost conf]$ ll
總用量 12
-rw-r--r--. 1 yuki root  535 3月  27 2018 configuration.xsl
-rw-r--r--. 1 yuki root 2161 3月  27 2018 log4j.properties
-rw-r--r--. 1 yuki root  922 3月  27 2018 zoo_sample.cfg
[yuki@myhost conf]$ sudo cp zoo_sample.cfg  zoo.cfg 

[yuki@myhost conf]$ sudo vi zoo.cfg
# 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=/home/zookeeper-3.4.12/data              		######
dataLogDir=/home/zookeeper-3.4.12/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
server.1=IP:2888:3888   				#####
#
# 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

其中:
2888端口號是zookeeper服務之間通信的端口。
3888是zookeeper與其他應用程序通信的端口。

然後,在dataDir=/home/zookeeper-3.4.12/data 下創建myid文件(編輯myid文件,並在對應的IP的機器上輸入對應的編號。例如:在安裝zookeeper機器上,myid 文件內容就是1。如果只在單點上進行安裝配置,那麼只有一個server.1)

[yuki@myhost ~]$ cd /home/zookeeper-3.4.12/data/
[yuki@myhost data]$ sudo vi myid
[xzds@DSCQ-BID29 data]$ cat myid 
1

1.9 設置環境變量

[yuki@myhost data]$ sudo vi /etc/profile

#添加如下內容到結尾:
export ZOOKEEPER_HOME=/home/zookeeper-3.4.12
export PATH=$ZOOKEEPER_HOME/bin:$PATH  

[yuki@myhost data]$ source /etc/profile
[yuki@myhost data]$ echo $ZOOKEEPER_HOME
/home/zookeeper-3.4.12
[yuki@myhost data]$ echo $PATH
/home/zookeeper-3.4.12/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/xzds/JDK_HOME/jdk1.8.0_131/bin:/home/xzds/.local/bin:/home/xzds/bin:/home/xzds/JDK_HOME/jdk1.8.0_131/bin

2.0 啓動Zookeeper

[yuki@myhost data]$  sudo chown -R yuki:root /home/zookeeper-3.4.12/
[yuki@myhost data]$ whoami
yuki

###ZooKeeper相關腳本都在 /home/zookeeper-3.4.12/bin目錄下
[yuki@myhost ~]$ cd /home/zookeeper-3.4.12/bin/
[yuki@myhost bin]$ ll
總用量 36
-rwxr-xr-x. 1 yuki root  232 3月  27 2018 README.txt
-rwxr-xr-x. 1 yuki root 1937 3月  27 2018 zkCleanup.sh
-rwxr-xr-x. 1 yuki root 1056 3月  27 2018 zkCli.cmd
-rwxr-xr-x. 1 yuki root 1534 3月  27 2018 zkCli.sh
-rwxr-xr-x. 1 yuki root 1759 3月  27 2018 zkEnv.cmd
-rwxr-xr-x. 1 yuki root 2696 3月  27 2018 zkEnv.sh
-rwxr-xr-x. 1 yuki root 1089 3月  27 2018 zkServer.cmd
-rwxr-xr-x. 1 yuki root 6773 3月  27 2018 zkServer.sh

#啓動ZooKeeper服務
#和nohup一樣會在執行啓動腳本的路徑下生成一個zooKeeper.out日誌文件
[yuki@myhost bin]$ sudo ./zkServer.sh  start
ZooKeeper JMX enabled by default
Using config: /home/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

#查看ZooKeeper進程
[yuki@myhost bin]$  jps   
4184 QuorumPeerMain
4206 Jps
其中,QuorumPeerMain是zookeeper進程,啓動正常。
[yuki@myhost bin]$ sudo ps -ef |grep zookeeper
yuki      4184     1  0 15:01 pts/1    00:00:00 /home/yuki/JDK_HOME/jdk1.8.0_131/bin/java -Dzookeeper.log.dir=. -Dzookeepe.root.logger=INFO,CONSOLE -cp /home/zookeeper-3.4.12/bin/../build/classes:/home/zookeeper-3.4.12/bin/../build/lib/*.jar:/home/zookeeper-3.4.12/bin/../lib/slf4j-log4j12-1.7.25.jar:/home/zookeeper-3.4.12/bin/../lib/slf4j-api-1.7.25.jar:/home/zookeeper-3.4.12/bin/../lib/netty-3.10.6.Final.jar:/home/zookeeper-3.4.12/bin/../lib/log4j-1.2.17.jar:/home/zookeeper-3.4.12/bin/../lib/jline-0.9.94.jar:/home/zookeeper-3.4.12/bin/../lib/audience-annotations-0.5.0.jar:/home/zookeeper-3.4.12/bin/../zookeeper-3.4.12.jar:/home/zookeeper-3.4.12/bin/../src/java/lib/*.jar:/home/zookeeper-3.4.12/bin/../conf: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /home/zookeepe-3.4.12/bin/../conf/zoo.cfg
yuki      4222  4103  0 15:02 pts/1    00:00:00 grep --color=auto zookeeper

#查看ZooKeeper狀態  
[yuki@myhost bin]$ sudo  ./zkServer.sh status   
ZooKeeper JMX enabled by default
Using config: /home/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: standalone

#停止ZooKeeper服務
[yuki@myhost bin]$ sudo  ./zkServer.sh stop  
ZooKeeper JMX enabled by default
Using config: /home/zookeeper-3.4.12/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED

[yuki@myhost bin]$ sudo  jps
4270 Jps

[yuki@myhost bin]$ sudo  ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/zookeeper-3.4.12/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

2.1 編寫zookeeper啓動腳本


[yuki@myhost rc.d]$ cd /etc/rc.d/init.d/
[yuki@myhost init.d]$ ll
總用量 36
-rw-r--r--. 1 root root 13948 9月  16 2015 functions
-rwxr-xr-x. 1 root root  2989 9月  16 2015 netconsole
-rwxr-xr-x. 1 root root  6630 9月  16 2015 network
-rw-r--r--. 1 root root  1160 2月  20 01:35 README
-rwxr-xr-x. 1 root root  1709 4月  24 2017 zabbix-agent

###編寫啓動腳本
[yuki@myhost init.d]$ sudo vi zookeeper
#!/bin/bash  
#chkconfig:2345 20 90  
#description:zookeeper  
#processname:zookeeper
source /etc/profile  
#export JAVA_HOME=/home/yuki/JDK_HOME/jdk1.8.0_131 
#export PATH=$JAVA_HOME/bin:$PATH  

#define variables
zookeeper_start_file="/home/zookeeper-3.4.12/bin/zkServer.sh"

case $1 in  
          start)
		  sudo ${zookeeper_start_file} start
		  ;;  
          stop)
		  sudo ${zookeeper_start_file} stop
		  ;;  
          status)
		  sudo ${zookeeper_start_file} status
		  ;;  
          restart)
		  sudo ${zookeeper_start_file} restart
		  ;;  
          *)  echo "require start|stop|status|restart"  
		  ;;  
esac  

然後,我們就可以下面的命令來啓動或者停止zookeeper服務了

[yuki@myhost init.d]$ /etc/init.d/zookeeper  start  或者service zookeeper start
ZooKeeper JMX enabled by default
Using config: /home/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

2.2 設置zookeeper開機自啓動

[yuki@myhost init.d]$ sudo chkconfig zookeeper on 
[yuki@myhost init.d]$ echo $?
0
[yuki@myhost init.d]$ sudo chkconfig --add zookeeper
[yuki@myhost init.d]$ sudo chkconfig --list 

注意:該輸出結果只顯示 SysV 服務,並不包含原生 systemd 服務。SysV 配置數據可能被原生 systemd 配置覆蓋。 
      如果您想列出 systemd 服務,請執行 'systemctl list-unit-files'。
      欲查看對特定 target 啓用的服務請執行
      'systemctl list-dependencies [target]'。

netconsole      0:關    1:關    2:關    3:關    4:關    5:關    6:關
network         0:關    1:關    2:開    3:開    4:開    5:開    6:關
zabbix-agent    0:關    1:關    2:關    3:關    4:關    5:關    6:關
zookeeper       0:關    1:關    2:開    3:開    4:開    5:開    6:關

基於 xinetd 的服務:
        chargen-dgram:  關
        chargen-stream: 關
        daytime-dgram:  關
        daytime-stream: 關
        discard-dgram:  關
        discard-stream: 關
        echo-dgram:     關
        echo-stream:    關
        nrpe:           開
        tcpmux-server:  關
        time-dgram:     關
        time-stream:    關
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章