Linux系統zookeeper環境搭建(單機、偽分散式、分散式)

来源:https://www.cnblogs.com/zengxiaoliang/archive/2018/02/11/8442815.html
-Advertisement-
Play Games

本人現在對zookeeper的環境搭建做一個總結,一般zookeeper的安裝部署可以有三種模式,單機模式、偽分散式和分散式,這三種模式在什麼時候應用具體看大家的使用場景,如果你只有一臺機器且只是想自己開發測試時用,你可以安裝個單機模式,簡單又實用。如果想裝逼但又沒有足夠的機器,那你可以選擇偽分散式 ...


    本人現在對zookeeper的環境搭建做一個總結,一般zookeeper的安裝部署可以有三種模式,單機模式、偽分散式和分散式,這三種模式在什麼時候應用具體看大家的使用場景,如果你只有一臺機器且只是想自己開發測試時用,你可以安裝個單機模式,簡單又實用。如果想裝逼但又沒有足夠的機器,那你可以選擇偽分散式的方式搭建,這可以滿足你內心高大上的分散式需求又可以滿足沒有機器的屌絲現狀。如果手頭有三台以上的伺服器,那就可以大展高富帥的風采,直接上真的分散式,真的分散式部署一般是在系統的正式環境中應用。下麵我來對這三種搭建模式作個介紹。

    本人用的是CentOS系統,zookeeper-3.4.9,java-1.8,Java環境的搭建以及zookeeper的下載我在這裡就不再多說了,我的所有操作都是在/data/zookeeper目錄下。

一、單機模式

1.新建目錄zookeeper_single,將下載好的zookeeper-3.4.9.tar.gz拷進該目錄。

2.解壓zookeeper。

tar –zxvf  zookeeper-3.4.9.tar.gz

3.在zookeeper-3.4.9目錄下新建data,logs兩個文件夾。

4.進入zookeeper-3.4.9/conf目錄,把zoo_sample.cfg文件複製一份名字改成zoo.cfg。

cp zoo_sample.cfg zoo.cfg

5.修改zoo.cfg文件,需要修改以下幾個地方。

dataDir=/data/zookeeper/zookeeper_single/zookeeper-3.4.9/data

dataLogDir=/data/zookeeper/zookeeper_single/zookeeper-3.4.9/logs

clientPort=2181

6.配置完以後,就可以啟動zookeeper服務了,進入zookeeper-3.4.9/bin目錄,啟動zookeeper服務。

./zkServer.sh start

7.啟動完成後,查看服務狀態。

./zkServer.sh status

 

二、偽分散式模式

1.新建目錄zookeeper_cluster_fake,將下載好的zookeeper-3.4.9.tar.gz拷進該目錄。

2.解壓zookeeper。

tar –zxvf  zookeeper-3.4.9.tar.gz

3.解壓後將zookeeper-3.4.9改名為zookeeper_01,在zookeeper_01目錄下新建data,logs兩個文件夾。

4.進入zookeeper_01/conf目錄,把zoo_sample.cfg文件複製一份名字改成zoo.cfg。

cp zoo_sample.cfg zoo.cfg

5.將zookeeper_01再複製兩份分別取名為zookeeper_02和zookeeper_03。

cp zookeeper_01 zookeeper_02

cp zookeeper_01 zookeeper_03

6.分別修改zookeeper_01,zookeeper_02和zookeeper_03中conf目錄下zoo.cfg文件。

zookeeper_01的配置(其中前三項是配置文件中有的,只要改成自己的配置就可以,後面三項添加到配置文件末尾):

dataDir=/data/zookeeper/zookeeper_cluster_fake/zookeeper_01/data

dataLogDir=/data/zookeeper/zookeeper_cluster_fake/zookeeper_01/logs

clientPort=2181


server.1=192.168.71.82:2881:3881

server.2=192.168.71.82:2882:3882

server.3=192.168.71.82:2883:3883

 

zookeeper_02的配置:

dataDir=/data/zookeeper/zookeeper_cluster_fake/zookeeper_02/data

dataLogDir=/data/zookeeper/zookeeper_cluster_fake/zookeeper_02/logs

clientPort=2182

server.
1=192.168.71.82:2881:3881 server.2=192.168.71.82:2882:3882 server.3=192.168.71.82:2883:3883

 

zookeeper_03的配置:

dataDir=/data/zookeeper/zookeeper_cluster_fake/zookeeper_03/data

dataLogDir=/data/zookeeper/zookeeper_cluster_fake/zookeeper_03/logs

clientPort=2183

server.1=172.16.20.101:2881:3881 server.2=172.16.20.101:2882:3882 server.3=172.16.20.101:2883:3883

 7.分別在zookeeper_01,zookeeper_02和zookeeper_03三個目錄的data下新建myid文件,內容分別為server.1,server.2,server.3後面的數字。

 

三、分散式模式

1.選取三台伺服器172.16.20.101,172.16.20.102,172.16.20.103。

2.在172.16.20.101這台伺服器/data/zookeeper目錄下操作,新建目錄zookeeper_cluster,將下載好的zookeeper-3.4.9.tar.gz拷進該目錄。

3.解壓zookeeper。

tar -zxvf zookeeper-3.4.9.tar.gz

4.在/data/zookeeper/zookeeper_cluster/zookeeper-3.4.9目錄下新建data,logs兩個文件夾。

5.進入zookeeper-3.4.9/conf目錄,把zoo_sample.cfg文件複製一份名字改成zoo.cfg。

cp zoo_sample.cfg zoo.cfg

6.修改zoo.cfg文件,需要修改以下幾個地方:

dataDir=/data/zookeeper/zookeeper_cluster/zookeeper-3.4.9/data

dataLogDir=/data/zookeeper/zookeeper_cluster/zookeeper-3.4.9/logs

clientPort=2181

同時在文件末尾添加:

server.1=172.16.20.101:2888:3888

server.2=172.16.20.102:2888:3888

server.3=172.16.20.103:2888:3888

7.將配置好的zookeeper複製到另外兩台伺服器上。

scp -r /data/zookeeper [email protected]:/data

scp -r /data/zookeeper [email protected]:/data

8.分別在三台伺服器的/data/zookeeper/zookeeper_cluster/zookeeper-3.4.9/data目錄下新建myid文件,內容分別為server.1,server.2,server.3後面的數字,例如:在172.16.20.101伺服器上執行如下命令,另外兩台伺服器類似。

echo "1" > myid

9.分別進入三台服各器的/data/zookeeper/zookeeper_cluster/zookeeper-3.4.9/bin目錄下,啟動服務。

./zkServer.sh start

10.啟動完成後,查看服務狀態。

./zkServer.sh status

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這是畢業校招二面時遇到的手寫編程題,當時剛剛開始學習python,整個棧寫下來也是費了不少時間。畢竟語言只是工具,只要想清楚實現,使用任何語言都能快速的寫出來。 何為最小棧?棧最基礎的操作是壓棧(push)和退棧(pop),現在需要增加一個返回棧內最小值的函數(get_min),要求get_min函 ...
  • 記憶體限制:256 MiB時間限制:1000 ms標準輸入輸出 題目類型:傳統評測方式:文本比較 上傳者: 匿名 記憶體限制:256 MiB時間限制:1000 ms標準輸入輸出 題目類型:傳統評測方式:文本比較 上傳者: 匿名 提交提交記錄統計討論測試數據 題目描述 這是一道模板題。 輸入兩個多項式,輸 ...
  • Description 在組合博弈論中,Nim游戲是一個非常經典的問題,Nim游戲可描述如下:有n堆石子,每堆石子數分別為a1, a2, …, an (ai≥0)。現有兩人輪流從這n堆中取石子,每次必須從某一堆中取任意多的石子,至少要取一個,必須從同一堆中取石子,並且不能超過這一堆石子的總數。如果某 ...
  • 聯編的概念 聯編是指一個電腦程式自身彼此關聯的過程,在這個聯編過程中,需要確定程式中的操作調用(函數調用)與執行該操作(函數)的代碼段之間的映射關係。 意思就是這個函數的實現有多種,聯編就是把調用和對應的實現進行映射的操作。按照聯編進行的階段不同,可分為靜態聯編和動態聯編。 靜態聯編 靜態聯編工作 ...
  • 前言 當前大多數app都有查找附近的功能, 簡單的有查找周圍的運動場館, 複雜的有滴滴, 摩拜查找周圍的車輛. 本文主要闡述查找附近地點的一般實現. 搜索附近的人也是同樣的思路. 方案比較 方案1 (性能還不錯) 資料庫直接存經緯度, 然後計算矩形邊界值, 走索引查詢 方案2 (還沒試過) 將經緯度 ...
  • python字元串格式化兩種方式:百分號方式、format方式 用百分號字元串拼接 列印浮點數: 列印百分比: format ...
  • 本文主要介紹Hibernate主鍵的生成策略、持久化類的編寫規則、 持久化對象的三種狀態、hibernate的緩存、Hibernate的事務。 ...
  • 1 學習計劃 1、jQuery easyUI中動態添加選項卡 2、jquery ztree插件使用 n 下載ztree n 基於標準json數據構造ztree n 基於簡單json數據構造ztree(重點) 3、資料庫建模工具PowerDesigner使用方式 4、myeclipse翻轉引擎插件使用 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...