天天看點

搭建JEESZ分布式架構7--Zookeeper注冊中心安裝

ZooKeeper是一個分布式開源架構,提供了協調分布式應用的基本服務,它向外部應用暴露一組通用服務——分布式同步(Distributed Synchronization).命名服務(Naming Service).叢集維護(Group Maintenance)等,簡化分布式應用協調及其管理的難度,提供高性能的分布式服務。ZooKeeper本身可以以Standalone模式安裝運作,不過它的長處在于通過分布式ZooKeeper叢集(一個Leader,多個Follower),基于一定的政策來保證ZooKeeper叢集的穩定性和可用性,進而實作分布式應用的可靠性。(我是網上抄寫的,友善大家學習,請勿吐槽!!)

這裡先講解一下單節點安裝(後期會提供叢集安裝模式),由于直接進行操作,故下面記錄詳細步驟:

ZooKeeper Standalone模式

1.修改作業系統的/etc/hosts 檔案中添加

# zookeeper servers (主機IP jeesz-provider-01)

[root@cloud  ~]#  vi/etc/hosts

xxx.xxx.xxx.xxxjeesz-provider-01

2.到 http://apache.fayea.com/zookeeper/下載下傳 zookeeper-3.4.6

[root@cloud  ~]# wgethttp://apache.fayea.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

由于我提前下載下傳了并上傳到了我指定的目錄:/home/jeesz

3. 解壓zookeeper 安裝包

[root@cloud  jeesz] tar -zxvfzookeeper-3.4.6.tar.gz

4. 在/home/jeesz/zookeeper-3.4.6目錄下建立以下目錄

[root@cloud  ~]# cd /home/jeesz/zookeeper-3.4.6 

[root@cloud  zookeeper-3.4.6]# mkdirdata 

[[email protected]]# mkdir logs

5.将 zookeeper-3.4.6/conf 目錄下的 zoo_sample.cfg 檔案拷貝一份,命名為為zoo.cfg

[[email protected]]# cpzoo_sample.cfg zoo.cfg

6.修改 zoo.cfg 配置檔案

[[email protected] conf]# vizoo.cfg

# The number ofmilliseconds of each tick

tickTime=2000

# The number of ticksthat the initial

# synchronization phasecan take

initLimit=10

# The number of ticksthat can pass between

#sending a request and getting an acknowledgement

syncLimit=5

# the directory wherethe snapshot is stored.

# donot use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/home/jeesz/zookeeper-3.4.6/data

dataLogDir=/home/jeesz/zookeeper-3.4.6/logs

# the port at which theclients will connect

clientPort=2181

#2888,3888 are election port

server.1=jeesz-provider-01:2888:3888

7.在/home/jeesz/zookeeper-3.4.6/data 下建立 myid 檔案

編輯 myid 檔案,并在對應的 IP 的機器上輸入對應的編号。如在 zookeeper 上,myid

檔案内容就是 1。如果隻在單點上進行安裝配置,那麼隻有一個 server.1。

[[email protected] data]# vi myid

1

8.jeesz 使用者下修改 vi /home/jeesz/.bash_profile,增加 zookeeper 配置

[[email protected] ~] vi /home/jeesz/.bash_profile

# zookeeper env

exportZOOKEEPER_HOME=/home/jeesz/zookeeper-3.4.6

exportPATH=$ZOOKEEPER_HOME/bin:$PATH

使配置檔案生效

[[email protected]~]# source/home/jeesz/.bash_profile

9.在防火牆中打開要用到的端口 2181.2888.3888

切換到 root 使用者權限,執行以下指令:

[[email protected] ~]# chkconfig iptables on

[[email protected] ~]# service iptables start

編輯/etc/sysconfig/iptables

[[email protected] ~]# vi /etc/sysconfig/iptables

增加以下 3 行:

-A INPUT -m state --stateNEW -m tcp -p tcp --dport 2181 -j ACCEPT

-A INPUT -m state --stateNEW -m tcp -p tcp --dport 2888 -j ACCEPT

-A INPUT -m state --stateNEW -m tcp -p tcp --dport 3888 -j ACCEPT

重新開機防火牆:

[[email protected] ~] service iptables restart

檢視防火牆端口狀态:

[[email protected]]# serviceiptables status

Table: filter

Chain INPUT (policyACCEPT)

num  target    prot opt source              destination         

1    ACCEPT    all  --  0.0.0.0/0           0.0.0.0/0           stateRELATED,ESTABLISHED 

2    ACCEPT    icmp --  0.0.0.0/0           0.0.0.0/0           

3    ACCEPT    all  --  0.0.0.0/0           0.0.0.0/0           

4    ACCEPT    tcp  --  0.0.0.0/0           0.0.0.0/0           state NEW tcp dpt:22 

5    REJECT    all  --  0.0.0.0/0           0.0.0.0/0           reject-withicmp-host-prohibited 

6    ACCEPT    tcp  --  0.0.0.0/0           0.0.0.0/0           state NEW tcp dpt:8080 

7    ACCEPT    tcp  --  0.0.0.0/0           0.0.0.0/0           state NEW tcp dpt:2181 

8    ACCEPT    tcp  --  0.0.0.0/0           0.0.0.0/0           state NEW tcp dpt:2888 

9    ACCEPT    tcp  --  0.0.0.0/0           0.0.0.0/0           state NEW tcp dpt:3888 

Chain FORWARD (policyACCEPT)

num  target    prot opt source              destination         

1    REJECT    all  --  0.0.0.0/0           0.0.0.0/0           reject-withicmp-host-prohibited 

Chain OUTPUT (policyACCEPT)

num  target    prot opt source              destination   

10.啟動并測試 zookeeper

(1) 到/home/jeesz/zookeeper-3.4.6/bin 目錄中執行:

[[email protected] bin]# zkServer.shstart

(2) 輸入 jps 指令檢視程序:

[[email protected]]# jps

48064 Jps

47348 QuorumPeerMain

46826 Bootstrap

其中,QuorumPeerMain 是 zookeeper 程序,啟動正常

(3) 檢視狀态:

[[email protected] bin]# zkServer.shstatus

JMX enabled by default

Using config: /home/jeesz/zookeeper-3.4.6/bin/../conf/zoo.cfg

Mode: standalone

(4) 檢視 zookeeper 服務輸出資訊:

由于服務資訊輸出檔案在/home/jeesz/zookeeper-3.4.6/bin/zookeeper.out

[[email protected]]# tail -fzookeeper.out 

2016-02-16 02:20:14,500[myid:] - INFO  [main:[email protected]] - Reading configuration from:/home/jeesz/zookeeper-3.4.6/bin/../conf/zoo.cfg

2016-02-16 02:20:14,700[myid:] - ERROR [main:[email protected]] - Invalid configuration, only oneserver specified (ignoring)

......

11.停止 zookeeper 程序

[[email protected]]# zkServer.shstop

12.配置 zookeeper 開機使用jeesz 使用者啟動

編輯/etc/rc.local 檔案,加入:

[[email protected]]# vi /etc/rc.local

su - jeesz -c'/home/jeesz/zookeeper-3.4.6/bin/zkServer.sh start'

源碼位址擷取:mingli

有興趣的朋友們可以前往球球哦~一起分享學習技術:2042849237

請大家持續關注搭建JEESZ分布式架構8--消息中間件安裝單、多節點