1. 程式人生 > >zookeeper在windows下的偽叢集模式

zookeeper在windows下的偽叢集模式

1.下載(本次測試環境是3.4.6的版本)

http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.6/


2.下載zookeeper-3.4.6.tar.gz後,解壓即可


3.在 \zookeeper-3.4.6\conf\ 新建三個配置檔案

zoo1.cfg:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=E:\\tmp\\zookeeper\\data\\1
dataLogDir=E:\\tmp\\zookeeper\\log\\1
clientPort=2181
server.1=127.0.0.1:2887:3887
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889
zoo2.cfg:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=E:\\tmp\\zookeeper\\data\\2
dataLogDir=E:\\tmp\\zookeeper\\log\\2
clientPort=2182
server.1=127.0.0.1:2887:3887
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889

zoo3.cfg:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=E:\\tmp\\zookeeper\\data\\3
dataLogDir=E:\\tmp\\zookeeper\\log\\3
clientPort=2183
server.1=127.0.0.1:2887:3887
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889

4.在 \zookeeper-3.4.6\bin\ 新建三個server
拷貝zkServer.cmd三份,分別命名zkServer-1.cmd,zkServer-2.cmd,zkServer-3.cmd;
開啟這三個.cmd,在set ZOOMAIN=org.apache.zookeeper.server.quorum.QuorumPeerMain後面
新增一行,對應相應的配置檔案:
set ZOOCFG=..\conf\zoo1.cfg(zkServer-1.cmd新增)
set ZOOCFG=..\conf\zoo2.cfg(zkServer-2.cmd新增)
set ZOOCFG=..\conf\zoo3.cfg(zkServer-3.cmd新增)


5.新增data和log資料夾


E:\tmp\zookeeper\ 下新建data資料夾,在data下建立1 2 3資料夾



E:\tmp\zookeeper\ 下新建log資料夾,在log下建立1 2 3資料夾





6.建立myid
分別在data\1,data\2,data\3下建立檔案 myid(去掉字尾名),並分別新增內容 1、2、3


7.啟動Server
控制檯進入bin目錄,分別輸入:zkServer-x.cmd啟動即可。

啟動三個server檔案後,用jps檢視,會看到三個啟動的java主程序。


也可輸入:netstat -ano|findstr "2181"  檢視埠是否監聽

注:啟動過程中zkServerXXX.cmd可能會報錯:
2015-10-09 11:20:08,162 [myid:1] - WARN  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:218  
1:[email protected]] - Cannot open channel to 3 at election address localhost  
/192.168.132.16:3889  
java.net.ConnectException: Connection refused: connect  
        at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)  
        at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketI  
mpl.java:85)  

        這是因為,zookeeper叢集採用的是選舉演算法,當叢集中的其他節點還沒有啟動的時候,選舉演算法就會出現異常,因為至少三臺能選舉出一個leader,2n+1臺機器,可以選舉n個leader,當全部啟動起來後,就不會報異常,所以上述的報錯是可以忽略的,儘管啟動這三個節點即可。

這樣在一臺機器上搭建了zookeeper偽叢集,並且啟動成功。

8.C#客戶端程式碼

程式碼下載參考這位博主的好文:http://www.cnblogs.com/shanyou/p/3221990.html

 class Watcher : IWatcher
    {
        public void Process(WatchedEvent @event)
        {
            //if (@event.Type == EventType.NodeDataChanged)
            //{
                Console.WriteLine("已經觸發了" + @event.Type + "事件!");
            //}
        }
    }

 static void Main(string[] args)
        {

            //建立一個Zookeeper例項,第一個引數為目標伺服器地址和埠,第二個引數為Session超時時間,第三個為節點變化時的回撥方法 
            using (ZooKeeper zk = new ZooKeeper("127.0.0.1:2181", new TimeSpan(0, 0, 0, 50000), new Watcher()))
            {
                //var stat = zk.Exists("/root",true);
                 
                ////建立一個節點root,資料是mydata,不進行ACL許可權控制,節點為永久性的(即客戶端shutdown了也不會消失) 
                //zk.Create("/root", "mydata".GetBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.Persistent);

                //在root下面建立一個childone znode,資料為childone,不進行ACL許可權控制,節點為永久性的 
                //zk.Create("/root/childone", "childone".GetBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.Persistent);
                //取得/root節點下的子節點名稱,返回List<String> 
                List<string> liststr =  zk.GetChildren("/root", true);
                //取得/root/childone節點下的資料,返回byte[] 
                //zk.GetData("/root/childone", true, null);

                //修改節點/root/childone下的資料,第三個引數為版本,如果是-1,那會無視被修改的資料版本,直接改掉
                //zk.SetData("/root/childone", "childonemodify".GetBytes(), -1);
                //刪除/root/childone這個節點,第二個引數為版本,-1的話直接刪除,無視版本 
                //zk.Delete("/root/childone", -1);
            }
            Console.Read();

        }

問題:還不清楚zookeeper客戶端程式碼的具體用法,還需要摸索。

9.linux下環境搭建

參考這位博主的好文:http://blog.csdn.net/eric_sunah/article/details/43969603

其中,下載連線修改一下即可:

wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

10.遺留問題

還沒有用zookeeper搭建生產環境,計劃是用thrift做服務,zookeeper服務治理,可用nginx做負載均衡,還沒去做這件事。後續補上

相關推薦

zookeeper在windows叢集模式

1.下載(本次測試環境是3.4.6的版本) http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.6/ 2.下載zookeeper-3.4.6.tar.gz後,解壓即可 3.在 \zookeeper-3.4.6

ZooKeeper之搭建叢集模式

        在叢集和單機兩種模式下,我們基本完成了分別針對生產環境和開發環境ZooKeeper服務的搭建,已經可以滿足絕大多數場景了。         現在我們再來看看另外一種情況,如果你手上有且只有一臺比較好的機器(大體是——CPU核數大於10,記憶體大於等於8GB)

Centos 7.0 hadoop叢集模式安裝(以3個節點為例,master,slave1,slave2)超詳細

一、目標: 構建由3臺PC機構成的hadoop環境,安裝完成後使用HDFS、Mapreduce、Hbase等完成一些小例子。 二、硬體需求: 3臺Centos 7.0 系統PC機,每臺PC機4G記憶

Linux叢集搭建Kafka

Kafka叢集是把狀態儲存在Zookeeper中的,首先要搭建Zookeeper叢集。由於我們之前的分散式系統中已經安裝zookeeper服務,這裡不進行zookeeper安裝教程以及應用教程圖解 [https://blog.csdn.net/qq_348988

zookeeper 叢集模式安裝

偽叢集, 是指在單臺機器中啟動多個zookeeper程序, 並組成一個叢集. 以啟動3個zookeeper程序為例 1、找到zk目錄,複製兩份 cp -r zk zk2 cp -r zk zk3 2、分別修改配置檔案zoo.cfg dataDir=/opt/zk/zk/da

zookeeper在window叢集的搭建

zookeeper 偽叢集的搭建主要修改配置檔案:將解壓包拷貝成三份。如圖所示,分別命名將對應的zoo.cfg分別命名為zoo-1.cfg,zoo-2.cfg,zoo-3.cfg;將對應的zkServer.cmd分別命名為zkServer-1.cmd,zkServer-2.c

(五)zookeeper windows單機模式叢集模式

        zookeeper是一個分散式應用所設計的分佈的、開源的協調服務,它主要是用來解決分散式應用中經常遇到的一些資料管理問題,簡化分散式應用,協調及其管理的難度,提高效能的分散式服務。

hadoop 學習(二) 啟動hadoop叢集模式

一、修改配置檔案 要修改的配置檔案在/opt/module/hadoop-2.7.7/etc/hadoop目錄下 

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

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

Windows環境搭建ZooKeeper叢集

        在生產環境和開發環境ZooKeeper服務的搭建,我們一般常用叢集和單機兩種模式。但是在自己學習過程中,如果想要了解叢集模式的效能,則可以使用偽叢集來了解ZooKeeper叢集模式下的一些工作機制。 1.下載與配置   &

Windows Zookeeper 單機模式分散式模式安裝

安裝jdk 安裝Zookeeper. 在官網http://mirrors.hust.edu.cn/apache/zookeeper/下載zookeeper.我下載的是zookeeper-3.4.10版本。 解壓zookeeper-3.4.10至D:\dev\zookeep

【zookeeper】一 zookeeper 在windows進行叢集

原文:https://www.cnblogs.com/yangzhenlong/p/8270835.html 1.下載zookeeper http://mirror.bit.edu.cn/apache/zookeeper/ 2、解壓後,目錄重新命名為zookeeper1,進入 con

zookeeper在windows叢集部署

引言: 由於分散式系統搭建的需要,開始對zookeeper叢集環境部署進行研究,通過網上搜索資料,總結出了一套windows環境下快速偽叢集方案。 簡介: 由於本人在前面幾篇部落格中有說過zookeeper的簡介,這裡就不在進行簡述。 下載部署: 我的環境是windows 第

zookeeper的叢集搭建模式

所謂偽叢集就是在單機模擬叢集模式zookeeper的執行。 配置檔案 下面是我配置的偽叢集分佈模式,分別通過zoo1.cfg、zoo2.cfg、zoo3.cfg來模擬三臺機器的zookeeper叢集: zoo1.cfg內容如下: # The numb

jedis 叢集模式連線redis原理

1.ShardedJedis內部實現 首先我們來看一下ShardedJedis的一個繼承關係 看完了圖,那麼我們一步一步跟著我們的程式碼呼叫來看,以我們最簡單的 ShardedJedis.get(key)方法為例: public String get(St

redis-cluster官方叢集模式使用pipeline批量操作

         redis從3.0版本後引入了令人興奮的cluster叢集模式,相信很多人都嘗試過了,在高興之餘卻發現redis官方的cluster對於java客戶端的jedis支援卻不是很好,至少目前的版本cluster是不支援直接使用pipeline操作,找了好久

WindowsZookeeper叢集搭建

一、下載 下載地址:Apache Zookeeper下載 或(https://mirrors.cnnic.cn/apache/zookeeper/),下載Zookeeper安裝檔案,字尾為.tar.gz。我下載的檔案是zookeeper-3.4.13.tar.gz。 二、叢集安裝目錄 在

linux(deepin15.4)部署叢集RabbitMQ訊息佇列映象模式(三)

第三天 一、映象佇列策略 1、映象佇列可以防止主節點掛掉,整個佇列就癱瘓了。所以要想在主節點掛掉或故障也能正常應用,就要複製佇列內容到叢集裡的每個節點,須要建立映象佇列。 2、映象模式配置完成之後,會存在一個主節點和多個映象節點(或稱為熱備佇列,Slave

配置叢集模式的ssh免密碼登入

在使用hadoop配置叢集模式時,必然要使用ssh進行各個機器之間的免密碼登入。 環境準備:   叢集模式下會有多個主機,而本教程使用的主機名和IP地址如下: 192.168.1.160 master 192.168.1.161 slave1 一、安裝ssh服務:   若系統中

Storm叢集模式cleanup解決方法

背景 由於cleanup方法並不可靠,它只在local mode下生效,Storm叢集模式下cleanup不會被呼叫執行。很多資源得不到釋放 解決方案 在kill topology之前,先deactivate相應的topology。在spout中實現deactivate