1. 程式人生 > >ZooKeeper 單機模式和叢集模式的環境搭建

ZooKeeper 單機模式和叢集模式的環境搭建

ZooKeeper環境搭建

下載最新穩定版的 Zookeeper

Standalone Operation

  1、 將下載的 ZooKeeper 解壓,進入 conf 目錄,複製一份 zoo_sample.cfg 的配置檔案命名為 zoo.cfg,修改如下:

# the basic time unit in milliseconds used by ZooKeeper. It is used to do heartbeats
tickTime=2000
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/var/lib/zookeeper
# the port at which the clients will connect
clientPort=2181

  2、 進入 bin 目錄,啟動 ZooKeeper:

./zkServer.sh start

  啟動執行後會建立相關目錄,所以注意相關目錄的寫許可權。啟動的日誌如下:

ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.9/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

  3、 Client Connecting to ZooKeeper

  客戶端連線到 ZooKeeper:

./zkCli.sh -server 127.0.0.1:2181

  連線成功的日誌輸出:

Welcome to ZooKeeper!
2016-09-05 09:53:14,485 [myid:] - INFO  [main-SendThread(127.0.0.1:2181):[email protected]] - Opening socket connection to server 127.0.0.1/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2016-09-05 09:53:14,625 [myid:] - INFO  [main-SendThread(127.0.0.1:2181):
[email protected]
] - Socket connection established to 127.0.0.1/127.0.0.1:2181, initiating session [zk: 127.0.0.1:2181(CONNECTING) 0] 2016-09-05 09:53:14,800 [myid:] - INFO [main-SendThread(127.0.0.1:2181):[email protected]] - Session establishment complete on server 127.0.0.1/127.0.0.1:2181, sessionid = 0x156f80a3ea00000, negotiated timeout = 30000 WATCHER:: WatchedEvent state:SyncConnected type:None path:null [zk: 127.0.0.1:2181(CONNECTED) 0]

  4、 基本指令操作

  (1)help 幫助指令,列出可操作的相關指令

ZooKeeper -server host:port cmd args
    stat path [watch]
    set path data [version]
    ls path [watch]
    delquota [-n|-b] path
    ls2 path [watch]
    setAcl path acl
    setquota -n|-b val path
    history 
    redo cmdno
    printwatches on|off
    delete path [version]
    sync path
    listquota path
    rmr path
    get path [watch]
    create [-s] [-e] path data acl
    addauth scheme auth
    quit 
    getAcl path
    close 
    connect host:port

  (2)create /test_znode test_data

[zk: 127.0.0.1:2181(CONNECTED) 2] create /test_znode test_data
Created /test_znode

  (3)ls /

[zk: 127.0.0.1:2181(CONNECTED) 3] ls /
[zookeeper, test_znode]

  (4)get /test_znode

[zk: 127.0.0.1:2181(CONNECTED) 4] get /test_znode
test_data
cZxid = 0x6
ctime = Mon Sep 05 09:59:46 CST 2016
mZxid = 0x6
mtime = Mon Sep 05 09:59:46 CST 2016
pZxid = 0x6
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 9
numChildren = 0

  (5)set /test_znode other_data

[zk: 127.0.0.1:2181(CONNECTED) 5] set /test_znode other_data
cZxid = 0x6
ctime = Mon Sep 05 09:59:46 CST 2016
mZxid = 0x7
mtime = Mon Sep 05 10:02:20 CST 2016
pZxid = 0x6
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 10
numChildren = 0

  (6)delete /test_znode

[zk: 127.0.0.1:2181(CONNECTED) 6] delete /test_znode
[zk: 127.0.0.1:2181(CONNECTED) 7] ls /
[zookeeper]

Clustered (Multi-Server) Setup

  為獲取穩定的服務,需要將 ZooKeeper 部署在分散式叢集中,由於 ZooKeeper 通過仲裁機制
檢測系統是否可以正常對外提供服務,所以叢集選擇奇數個伺服器進行搭建。構建容錯叢集最小的伺服器數是3臺伺服器。

  1、 每臺伺服器中,同 Standalone Operation 一樣,在 zookeeper 解壓目錄下的 conf 目錄中建立 zoo.cfg 配置檔案:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper
# the port to listen for client connections; that is, the port that clients attempt to connect to.
clientPort=2181
server.1=192.168.1.111:2888:3888
# Ubuntu_Server_64_1
server.2=192.168.1.133:2888:3888
# Ubuntu_Server_64_2
server.3=192.168.1.135:2888:3888

  其中,server.id=host:port:port的配置說明:

  • server.id:在 zoo.cfg 檔案中配置的配置的 dataDir 路徑下(即:/var/lib/zookeeper)建立myid檔案,裡面寫入 id
  • host:構建 zookeeper 叢集的伺服器的 ip 地址
  • port:第一個 port 用於連線 leader 伺服器;第二個 port 用於 leader election

  2、 每臺伺服器中,在 zoo.cfg 檔案中配置的配置的 dataDir 路徑下(即:/var/lib/zookeeper)建立myid檔案
  注意 myid 檔案中寫入該伺服器的 id 標識,注意只能有一行,不能包括其他多餘的字元;並且 該 id 要與 zoo.cfg 中配置的 server.id 相對應(ip要對應)

  3、 啟動 zookeeper 叢集
  (1)啟動其中一個、zookeeper 伺服器

./zkServer.sh start

  (2)嘗試連線伺服器

telnet 192.168.1.111 2181

  輸出資訊後輸入 stat

[email protected]:/usr/local/zookeeper-3.4.9/bin$ telnet 192.168.1.135 2181
Trying 192.168.1.135...
Connected to 192.168.1.135.
Escape character is '^]'.
stat
This ZooKeeper instance is not currently serving requests
Connection closed by foreign host.

  由於只啟動了一個伺服器,所以整個 zookeeper 叢集不能對外提供服務,zookeeper 叢集中正常執行的伺服器需要多餘未正常執行的伺服器。

  (2)啟動另外一個 zookeeper 伺服器,並 telnet 連線伺服器

[email protected]:/usr/local/zookeeper-3.4.9/bin$ telnet 192.168.1.135 2181
Trying 192.168.1.135...
Connected to 192.168.1.135.
Escape character is '^]'.
stat
Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT
Clients:
 /192.168.1.111:43624[0](queued=0,recved=1,sent=0)

Latency min/avg/max: 0/0/0
Received: 1
Sent: 0
Connections: 1
Outstanding: 0
Zxid: 0x200000000
Mode: leader
Node count: 4
Connection closed by foreign host.

  (3)客戶端連線到 ZooKeeper:

./zkCli.sh -server 192.168.1.135:2181

  輸出日誌:

[email protected]:/usr/local/zookeeper-3.4.9/bin$ ./zkCli.sh -server 192.168.1.135:2181Connecting to 192.168.1.135:2181
2016-09-05 21:30:22,677 [myid:] - INFO  [main:[email protected]] - Client environment:zookeeper.version=3.4.9-1757313, built on 08/23/2016 06:50 GMT
2016-09-05 21:30:22,727 [myid:] - INFO  [main:[email protected]] - Client environment:host.name=localhost
2016-09-05 21:30:22,727 [myid:] - INFO  [main:[email protected]] - Client environment:java.version=1.8.0_91
2016-09-05 21:30:22,741 [myid:] - INFO  [main:[email protected]] - Client environment:java.vendor=Oracle Corporation
2016-09-05 21:30:22,741 [myid:] - INFO  [main:[email protected]] - Client environment:java.home=/usr/local/jdk1.8.0_91/jre
2016-09-05 21:30:22,741 [myid:] - INFO  [main:[email protected]] - Client environment:java.class.path=/usr/local/zookeeper-3.4.9/bin/../build/classes:/usr/local/zookeeper-3.4.9/bin/../build/lib/*.jar:/usr/local/zookeeper-3.4.9/bin/../lib/slf4j-log4j12-1.6.1.jar:/usr/local/zookeeper-3.4.9/bin/../lib/slf4j-api-1.6.1.jar:/usr/local/zookeeper-3.4.9/bin/../lib/netty-3.10.5.Final.jar:/usr/local/zookeeper-3.4.9/bin/../lib/log4j-1.2.16.jar:/usr/local/zookeeper-3.4.9/bin/../lib/jline-0.9.94.jar:/usr/local/zookeeper-3.4.9/bin/../zookeeper-3.4.9.jar:/usr/local/zookeeper-3.4.9/bin/../src/java/lib/*.jar:/usr/local/zookeeper-3.4.9/bin/../conf::.:/usr/local/jdk1.8.0_91/lib:/usr/local/jdk1.8.0_91/jre/lib
2016-09-05 21:30:22,741 [myid:] - INFO  [main:[email protected]] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2016-09-05 21:30:22,741 [myid:] - INFO  [main:[email protected]] - Client environment:java.io.tmpdir=/tmp
2016-09-05 21:30:22,741 [myid:] - INFO  [main:[email protected]] - Client environment:java.compiler=<NA>
2016-09-05 21:30:22,742 [myid:] - INFO  [main:[email protected]] - Client environment:os.name=Linux
2016-09-05 21:30:22,742 [myid:] - INFO  [main:[email protected]] - Client environment:os.arch=amd64
2016-09-05 21:30:22,742 [myid:] - INFO  [main:[email protected]] - Client environment:os.version=3.16.0-30-generic
2016-09-05 21:30:22,742 [myid:] - INFO  [main:[email protected]] - Client environment:user.name=markliu
2016-09-05 21:30:22,742 [myid:] - INFO  [main:[email protected]] - Client environment:user.home=/home/markliu
2016-09-05 21:30:22,742 [myid:] - INFO  [main:[email protected]] - Client environment:user.dir=/usr/local/zookeeper-3.4.9/bin
2016-09-05 21:30:22,744 [myid:] - INFO  [main:[email protected]] - Initiating client connection, connectString=192.168.1.135:2181 sessionTimeout=30000 [email protected]
Welcome to ZooKeeper!
2016-09-05 21:30:23,097 [myid:] - INFO  [main-SendThread(192.168.1.135:2181):[email protected]] - Opening socket connection to server 192.168.1.135/192.168.1.135:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2016-09-05 21:30:23,578 [myid:] - INFO  [main-SendThread(192.168.1.135:2181):[email protected]] - Socket connection established to 192.168.1.135/192.168.1.135:2181, initiating session
2016-09-05 21:30:23,600 [myid:] - INFO  [main-SendThread(192.168.1.135:2181):[email protected]] - Session establishment complete on server 192.168.1.135/192.168.1.135:2181, sessionid = 0x356fa8189d40002, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: 192.168.1.135:2181(CONNECTED) 0] 

相關推薦

ZooKeeper 單機模式叢集模式環境搭建

ZooKeeper環境搭建 下載最新穩定版的 Zookeeper Standalone Operation   1、 將下載的 ZooKeeper 解壓,進入 conf 目錄,複製一份 zoo_sample.cfg 的配置檔案命名為 zoo.cfg

spark單機模式 叢集模式 安裝

浪費了“黃金五年”的Java程式設計師,還有救嗎? >>>   

大資料之Spark(八)--- Spark閉包處理,部署模式叢集模式,SparkOnYarn模式,高可用,Spark整合Hive訪問hbase類載入等異常解決,使用spark下的thriftserv

一、Spark閉包處理 ------------------------------------------------------------ RDD,resilient distributed dataset,彈性(容錯)分散式資料集。 分割槽列表,function,dep Op

Redis 單點模式叢集模式程式碼測試及問題記錄

前言:Redis的測試有一些講究,如果你是先安裝叢集再來測試會出現很多意想不到的問題。單個redis-server測試很簡單 就是照著API搞就行,但是如果是先搭建叢集環境而使用叢集節點(單個IP和埠)來操作就不適用了。叢集的特點就是分擔服務端的壓力,此時採用Redis一般

IntelliJ IDEA(Ultimate版本)的下載、安裝WordCount的初步使用(本地模式叢集模式

  不多說,直接上乾貨!   IntelliJ IDEA號稱當前Java開發效率最高的IDE工具。IntelliJ IDEA有兩個版本:社群版(Community)和旗艦版(Ultimate)。社群版時免費的、開源的,但功能較少,旗艦版提供了較多的功能,是收費的,可以試用30天。    強烈推

IntelliJ IDEA(Community版本)的下載、安裝WordCount的初步使用(本地模式叢集模式

  不多說,直接上乾貨!   對於初學者來說,建議你先玩玩這個免費的社群版,但是,一段時間,還是去玩專業版吧,這個很簡單哈,學聰明點,去搞到途徑啟用!可以看我的部落格。 包括:    IntelliJ IDEA(Community)的下載    IntelliJ IDEA(Commun

Scala IDE for Eclipse的下載、安裝WordCount的初步使用(本地模式叢集模式

   不多說,直接上乾貨! 這篇部落格是,    是在Scala IDEA for Eclipse裡maven建立scala和java程式碼編寫環境。 本博文包括:    Scala IDE for Eclipse的下載    Scala IDE for

通過策略模式來實現redis的單機叢集版的轉換

(1)首要介面JedisClient package com.wine.jedis; public interface JedisClient { String set(String key, String value); String get(String key); Boo

Hadoop學習之路(五)Hadoop集群搭建模式模式問題

數據 場景 模式 問題 沒有 問題: 重裝 故障 style 分布式集群的通用問題 當前的HDFS和YARN都是一主多從的分布式架構,主從節點---管理者和工作者 問題:如果主節點或是管理者宕機了。會出現什麽問題? 群龍無首,整個集群不可用。所以在一主多從的架構中都會

Hadoop單機偽分佈環境搭建

Hadoop環境搭建與運維 Hadoop概述: Hadoop是一個由Apache基金會所開發的分散式系統基礎架構。 使用者可以在不瞭解分散式底層細節的情況下,開發分散式程式。充分利用叢集的威力進行高速運算和儲存。  Hadoop實現了一個分散式檔案系統(Hadoop Distrib

redis的叢集模式哨兵模式

redis的叢集模式和哨兵模式 redis中叢集模式 redis叢集模式配置支援3.0及以上的版本。目的提高redis的可用性,但是隻能保證一定程度的高可用。 redis-cluster原理 Redis 叢集有16384個雜湊槽,每個key通過CRC16校驗後對16384取模來決定放置哪個槽.叢集的每個節點負

Android執行環境Dalvik模式ART模式的區別對比

Android系統是以Linux系統為底層構建的,開源的Android系統需要配置到不同硬體配置的裝置上,為了降低應用的開發難度,在Linux底層之上構築了一個名為"Dalvik"的虛擬機器,名為虛擬機器,實際是一種應用編譯模式,Android4.4開始引入的ART模式是一種

Dubbo的Zookeeper單機配置Zookeeper叢集配置

Zookeeper單機配置: 方式一、 <dubbo:registry address="zookeeper://10.20.153.10:2181"/> 方式二、 <dubbo:registry protocol="zookeeper" addre

Zookeeper的安裝單機叢集

自己寫部落格,很大一部分原因是因為自己安裝過的軟體也老是忘記安裝步驟,每次都是百度的,寫下來供自己參考,當然,有什麼不足的地方,請大神批評指正!!!!!都是搞技術的,有錯指出來就行,歡迎各位騷擾!!!! Zookeeper的單機版安裝 從官網上下載zookeeper的安裝

Linux伺服器redis單機叢集搭建

Linux的下載命令,根據需要版本進行下載即可: [[email protected] bin]# wgethttp://download.redis.io/releases/redis-4.0.8.tar.gz 2.linux下redis單機版搭建        2.1 redis需要c

Spring Cloud - Nacos註冊中心入門單機模式叢集模式

近幾年微服務很火,Spring Cloud提供了為服務領域的一整套解決方案。其中Spring Cloud Alibaba是我們SpringCloud的一個子專案,是提供微服務開發的一站式解決方案。 包含微服務開發的必要元件,基於SpringCloud 符合SpringCloud標準,是阿里

Centos7安裝Nacos單機模式以及叢集模式(包含nignx安裝以及實現叢集)的相關配置

Nacos 致力於幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元資料及流量管理。 Nacos支援三種部署模式 單機模式 - 用於測試和單機試用。 叢集模式 - 用於生產環境,確保高可用。 多叢集模式 - 用於多資料中心場景。 一、Naco

[CentOS 7系列]忘記密碼的“救星”——單用戶模式救援模式

linux 操作系統 用戶 system 忘記密碼 init是Linux系統操作中不可缺少的程序之一。 是一個由內核啟動的用戶級進程。 內核啟動(已經被載入內存,開始運行,並已初始化所有的設備驅動程序和數據結構等)之後,就通過啟動一個用戶級程序init的方式來啟動其他用戶級的進程或服務。所

使用Xcode-debug模式release模式

哪裏 eas containe cin white ces item proc mman 在開發過程中,我們常常須要用到NSLog輸出一些信息,甚至有的開發過程。必須在控制臺查看輸出,有經驗的程序猿通過控制臺輸出就能知道整個數據交互的一個流程。可是一個

activeMQ隊列模式主題模式的Java實現

ons javax try nfa port 實現 catch n) tac 一、隊列模式 生產者 import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Dest