1. 程式人生 > >zookeeper單機多例項和分散式部署的步驟

zookeeper單機多例項和分散式部署的步驟

介紹zookeeper單機多例項部署(實驗性質)以及生產環境的分散式部署

1. 準備工作:

   1)需要linux環境,推薦用ubuntu的系統。學習的話使用oracle的virtual box安裝虛擬機器,網上找下安裝文件就可以裝好了,而生產環境一般都會裝好的。ubuntu下載連結:

32位:http://mirrors.zju.edu.cn/ubuntu-releases//precise/ubuntu-12.04.3-server-i386.iso
或
64位:http://mirrors.hust.edu.cn/ubuntu-releases//precise/ubuntu-12.04.3-server-amd64.iso

    2) JDK:zookeeper需要java執行環境,這個建議1.6以上,配置好 JAVA_HOME 、CLASSPATH、 PATH 變數。

環境變數配置,home目錄下的.profile即可:

export JAVA_HOME="/usr/lib/jvm/jdk1.7.0_40"
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export ZOOKEEPER_HOME="/data/apache/zookeeper"
export PATH="$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin"

2. 然後各種解壓,建議對解壓後的目錄(帶有版本號的),建立軟連線 zk ,方便後面的配置和升級。

    我解壓後放在:  /data/apache/zookeeper下面,並修改檔案許可權為執行使用者許可權:

sudo chown -R zqgame:zqgame zookeeper

   zqgame:zqgame是執行zookeeper的使用者和使用者所在組,檢視許可權:

[email protected]:/data/apache$ ll
total 16
drwxr-xr-x  4 zqgame zqgame 4096 Jan 17 12:41 ./
drwxr-xr-x 11 root   root   4096 Dec 13 14:49 ../
drwxr-xr-x 11 zqgame zqgame 4096 Nov 20 15:50 hadoop-2.2.0/
drwxr-xr-x 12 zqgame zqgame 4096 Jan 17 12:56 zookeeper/
[email protected]
:/data/apache$

3. 埠檢查,通常使用的埠 2181,2888,3888 ,檢查是否佔用,佔用則下面的配置中更改埠。

netstat -ano | grep 2181

4.單機多例項配置及啟動:

#生成配置檔案,配置檔名隨便,這裡是zoo.cfg
cp /data/apache/zookeeper/conf/zoo_sample.cfg  /data/apache/zookeeper/conf/zoo.cfg
vi /data/apache/zookeeper/conf/zoo.cfg

   配置檔案內容:

tickTime=2000
initLimit=5
syncLimit=5
dataDir=/data/apache/zookeeper/data  # 目錄需要手工建立,存放 zk 資料,主要是快照
clientPort=2181
# dataLogDir事務日誌存放目錄,最好配置,事務日誌的寫入速度嚴重影響zookeeper的效能
dataLogDir=/data/apache/zookeeper/datalog
server.1=192.168.130.170:2889:3889
server.2=192.168.130.170:2890:3890
server.3=192.168.130.170:2891:3891

   拷貝配置檔案,生成三個配置檔案:zoo-slave1.cfg: (另外兩個 zoo-slave2.cfg 和 zoo-slave3.cfg)。

   zoo-slave1.cfg需要為dataDir和dataLogDir設定目錄,改動內容如下:

dataDir=/data/apache/zookeeper/data/slave1
dataLogDir=/data/apache/zookeeper/datalog/slave1
clientPort=2182

   zoo-slave2.cfg :

dataDir=/data/apache/zookeeper/data/slave2
dataLogDir=/data/apache/zookeeper/datalog/slave2
clientPort=2183

  zoo-slave3.cfg :

dataDir=/data/apache/zookeeper/data/slave3
dataLogDir=/data/apache/zookeeper/datalog/slave3
clientPort=2184

如上配置相同的本機IP,不同的埠號,這裡配置了三個例項

如何區分到底是第幾個例項呢,就要有個id檔案,名字必須是myid

echo "1" > /data/apache/zookeeper/data/slave1/myid
echo "2" > /data/apache/zookeeper/data/slave1/myid
echo "3" > /data/apache/zookeeper/data/slave1/myid

在三個視窗下迅速啟動:

bin/zkServer.sh start zoo-slave1.cfg 
bin/zkServer.sh start zoo-slave2.cfg 
bin/zkServer.sh start zoo-slave3.cfg

檢視zookeeper選出來的leader,通過下面的指令碼,分別指定配置檔案,就可以檢視哪一個例項是leader:

bin/zkServer.sh status zoo-slave1.cfg

可以看下如下輸出資訊:

[email protected]:/data/apache/zookeeper$ bin/zkServer.sh status zoo-slave2.cfg 
JMX enabled by default
Using config: /data/apache/zookeeper/bin/../conf/zoo-slave2.cfg
Mode: leader

5、分散式部署:

    與單機多例項差不多,不過不用三個目錄,只需要一個目錄,一個配置檔案,三個不同IP,分發在不同的IP上,仍然是不同的myid。假設我有三臺獨立機器,那麼zoo.cfg(只需要一個預設的配置檔案zoo.cfg)配置檔案如下所示:

tickTime=2000
initLimit=5
syncLimit=5
dataDir=/data/apache/zookeeper/data  # 目錄需要手工建立,存放 zk 資料,主要是快照
clientPort=2181
# dataLogDir事務日誌存放目錄,最好配置,事務日誌的寫入速度嚴重影響zookeeper的效能
dataLogDir=/data/apache/zookeeper/datalog
server.1=192.168.130.101:2888:3888
server.2=192.168.130.102:2888:3888
server.3=192.168.130.103:2888:3888

然後在三臺機器上分別寫入不同的myid:

#在192.168.130.101執行下面一條
echo "1" > /data/apache/zookeeper/data/myid
#在192.168.130.102執行下面一條
echo "2" > /data/apache/zookeeper/data/myid
#在192.168.130.103執行下面一條
echo "3" > /data/apache/zookeeper/data/myid

這樣分別在三臺機器迅速啟動zookeeper,此時不需要指定配置檔案,預設配置檔案就是zoo.cfg:

bin/zkServer.sh start

檢視啟動後的狀態:

bin/zkServer.sh status

進入zookeeper的shell客戶端:

bin/zkCli.sh   #進入本機zookeeper的shell

進入指定機器的shell客戶端:

bin/zkCli.sh -server 192.168.130.101

在檢視啟動狀態有錯誤的情況下,稍等一會再檢視,因為zookeeper啟動後需要一點時間選出leader。

相關推薦

zookeeper單機例項分散式部署步驟

介紹zookeeper單機多例項部署(實驗性質)以及生產環境的分散式部署 1. 準備工作:    1)需要linux環境,推薦用ubuntu的系統。學習的話使用oracle的virtual box安裝虛擬機器,網上找下安裝文件就可以裝好了,而生產環境一般都會裝好的。ub

zookeeper單機例項配置分散式配置

單機多例項配置: #生成配置檔案,配置檔名隨便,這裡是zoo.cfg cp /data/apache/zookeeper/conf/zoo_sample.cfg  /data/apache/zookeeper/conf/zoo.cfg vi /data/apache/zo

單機例項tomcat 部署

簡介: 目錄結構 /bin - 啟動,停止及其它指令碼目錄/conf - 配置檔案目錄,容器的主配置檔案為server.xml/logs - 預設日誌目錄/webapps - 網站應用目錄 變數引用 CATALINA_HOME: Tomcat 安裝的根目錄,例如 /home/tomcat/apach

MySQL 使用mysqld_multi部署單機例項詳細過程

序言:多例項?Why?隨著硬體層面的發展,linux系統多核已經是普通趨勢,而mysql是單程序多執行緒,所以先天上對多程序的利用不是很高,雖然5.6版本已經在這方面改進很多,但是也沒有達到100%,所以為了充分的利用系統資源,mysql有自己的補充,那就是可以部署多例項,一

Tomcat 安裝及其單機例項部署

Tomcat 是最流行的 Java 應用伺服器(2017年市場份額64%)。本文以最新的 Apache Tomcat 7.0.90(Tomcat7 的最新版本) 為例,總結了 CentOS 下 Tomcat 伺服器的安裝和必要配置,並演示了 Tomcat 單機多

linux作業系統安裝5.7.17MySQL以及單機例項

1、下載安裝包mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz 2、tar xvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz -C /usr/local -------解壓 3、cd /usr/local -----

單機實例tomcat 部署

順序 temp 根目錄 ase 版本 主配置文件 0.10 例如 應用部署 簡介: 目錄結構 /bin - 啟動,停止及其它腳本目錄/conf - 配置文件目錄,容器的主配置文件為server.xml/logs - 默認日誌目錄/webapps - 網站應用目錄 變量引用

Docker 快速驗證 tomcat 單機例項方案

概述 主要講的是解決問題的思路。當然也附帶了儘可能詳細的步驟,感興趣的童鞋可以一步一步跟著來實踐一把。因為運維職業的緣故,基本上是把事故當故事來寫了,希望能夠喜歡。 緣起 至少10年了,沒在一線玩過 Tomcat 了,這次客戶現場就來了一場遭遇戰。雖然客戶說了他來搭建,但是專案進度不等人,還是自己動手吧

distcc 分散式部署步驟

前言 我們機器在絕大多數時間是空閒的,如果你在Windows下用工作管理員或其他的Linux平臺觀察CPU,你會看到CPU的使用率常見在1~2%,如果能利用現有的計算機資源,把空閒的CPU利用起來,或者能讓伺服器智慧的遷移負荷,加快我們的編譯速度,就是我們部署distcc

RabbitMQ單機例項配置

由於某些因素的限制,有時候你不得不在一臺機器上去搭建一個rabbitmq叢集,當然這種叢集只適合自己玩玩,驗證下結論,這個有點類似zookeeper的單機版。真實生成環境還是要配成多機叢集的。有關怎麼配置多機叢集的可以參考其他的資料,這裡主要論述如何在單機中配置

tomcat單機例項

1、前言   首先要回答一個問題,為什麼要用單機多例項? 在不宕機的情況下,webapps裡面存在多個專案,可能由於其中一個專案過度使用記憶體或者其他不確定的因素使得tomcat掛了,那麼同一tomcat下的專案也會一同掛了;而使用不同的tomcat,同一臺伺服

Mesos zookeeper marathon 節點高可靠性部署方案

目錄 用 [TOC]來生成目錄: Mesos 的叢集實踐 搭建mesos叢集包含以下元件,zookeeper, mesos, marathon。 如果實現服務發現,可以利用mesos-dns或者第三方元件consul。 本文主要介紹如何搭建一個多

Mysql單機例項及主從備份設定

準備Slave資料庫 新建目錄,如:mysql3307,做為Slave資料庫的目錄。 複製Master Mysql目錄下的share目錄到mysql3307下。 在mysql3307目錄下建立data目錄,並複製Master Mysql的data下的mysq

nginx tomcat 單機例項網站

參考文章 http://www.ttlsa.com/tomcat/config-multi-tomcat-instance/ 修改conf/server.xml    <Server port="8001" shutdown="SHUTDOWN">    &l

【十九】Spring Boot 之資料來源分散式事務(JTA、Atomikos、Druid、Mybatis)

1.事務開始 2.A資料來源insert 3.B資料來源insert 4.報錯 5.事務回滾(A、B資料來源都回滾) 專案目錄 pom.xml <?xml version="1.0" encoding="UTF-8"?> <projec

mysql 5.7 for win 7 主從搭建 -單機例項

mysql 5.7 for win 7 單機版安裝可以參考 http://blog.csdn.net/wangzizhzxy/article/details/78203858 單機多例項安裝和單機單例項稍有不同 ###############################

mongodb單機例項主從配置

1、需要啟動兩個mongodb例項,首先關閉mongodb預設開機啟動.service mongodb stop chkconfig mongodb off2、複製 /etc/mongod.conf cp /etc/mongod.conf /etc/mongod_slave.

Tomcat 的單機例項配置

有時候需要在一個伺服器上部署多個Tomcat,通過不同的埠進行區分,比如,反向代理。但是不想簡單的通過複製Tomcat來實現,這樣既不方便以後的升級也不方便管理,那麼這時候就需要配置Tomcat的單機多例項了。 以下操作運行於Linux下。 Tomcat 下載 Tomcat的下載可以直接到Tomcat官方

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

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

例項叢集部署下的圖片上傳訪問

場景 存在多個無狀態的Web應用服務,支援多例項叢集化部署(使用nginx作為反向代理) 在Web應用中存在圖片檔案上傳功能 不能將圖片檔案直接儲存到資料庫中,資料庫中只儲存檔案訪問連結 問題 因為Web應用服務是多例項叢集化部署的,因此上傳圖片之後不能簡單儲存到本地,否則其他例