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