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:
zoo2.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
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\ 下新建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" 檢視埠是否監聽
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操作,找了好久
Windows下Zookeeper偽叢集搭建
一、下載 下載地址: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