中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)頁設(shè)計與實現(xiàn)論文杭州seo公司排名

網(wǎng)頁設(shè)計與實現(xiàn)論文,杭州seo公司排名,專業(yè)建站網(wǎng)站,域名代備案網(wǎng)站文章目錄 ZooKeeper 概述選舉機制搭建前準備分布式配置分布式安裝解壓縮并重命名配置環(huán)境配置服務(wù)器編號配置文件 操作集群編寫腳本運行腳本搭建過程中常見錯誤 ZooKeeper 概述 Zookeeper 是一個開源的分布式服務(wù)協(xié)調(diào)框架,由Apache軟件基金會開發(fā)和維護。以下是對Z…

文章目錄

  • ZooKeeper 概述
  • 選舉機制
  • 搭建前準備
  • 分布式配置
  • 分布式安裝
    • 解壓縮并重命名
    • 配置環(huán)境
    • 配置服務(wù)器編號
    • 配置文件
  • 操作集群
  • 編寫腳本
  • 運行腳本
  • 搭建過程中常見錯誤

ZooKeeper 概述

Zookeeper 是一個開源的分布式服務(wù)協(xié)調(diào)框架,由Apache軟件基金會開發(fā)和維護。以下是對Zookeeper的主要概述:

  1. 設(shè)計目標(biāo)

    • 提供分布式環(huán)境中的數(shù)據(jù)一致性。
    • 為分布式應(yīng)用程序提供協(xié)調(diào)服務(wù)。
    • 簡化復(fù)雜分布式系統(tǒng)的構(gòu)建和管理。
  2. 功能特性

    • 數(shù)據(jù)模型:Zookeeper使用一個樹形結(jié)構(gòu)的數(shù)據(jù)模型(Znode),每個節(jié)點可以存儲數(shù)據(jù)并具有版本號。
    • 一致性保證:Zookeeper保證在客戶端看到的數(shù)據(jù)是一致的,提供順序一致性、原子性和單一系統(tǒng)映像等特性。
    • 分布式鎖:通過臨時節(jié)點和 watches(監(jiān)視器)機制,Zookeeper可以實現(xiàn)分布式鎖,確保在分布式環(huán)境中對共享資源的互斥訪問。
    • 集群管理:Zookeeper可以用于管理集群中的節(jié)點,如監(jiān)控節(jié)點狀態(tài)、動態(tài)加入或移除節(jié)點。
    • 配置管理:應(yīng)用程序可以在Zookeeper中存儲和獲取配置信息,使得配置變更能夠快速傳播到所有相關(guān)節(jié)點。
    • 命名服務(wù):Zookeeper可以作為命名服務(wù),為分布式系統(tǒng)中的資源提供唯一的標(biāo)識符。
  3. 工作原理

    • Zookeeper集群由一組相互協(xié)作的服務(wù)器組成,這些服務(wù)器共同維護一個具有相同數(shù)據(jù)副本的內(nèi)存數(shù)據(jù)庫。
    • 客戶端與Zookeeper集群進行交互,讀取數(shù)據(jù)、寫入數(shù)據(jù)或者注冊 watches以監(jiān)聽數(shù)據(jù)變化。
    • Zookeeper通過投票機制實現(xiàn)容錯和領(lǐng)導(dǎo)選舉,確保在部分服務(wù)器故障時仍能提供服務(wù)。
  4. 應(yīng)用場景

    • 在Hadoop和HBase等大數(shù)據(jù)處理框架中,Zookeeper用于管理集群狀態(tài)和協(xié)調(diào)任務(wù)。
    • 作為服務(wù)發(fā)現(xiàn)工具,幫助微服務(wù)架構(gòu)中的服務(wù)注冊和發(fā)現(xiàn)。
    • 在分布式消息隊列系統(tǒng)中,如Kafka,用于Broker和Consumer的協(xié)調(diào)。

總的來說,Zookeeper在分布式系統(tǒng)中扮演著關(guān)鍵的角色,通過提供可靠的數(shù)據(jù)管理和協(xié)調(diào)服務(wù),簡化了分布式應(yīng)用程序的開發(fā)和運維。

選舉機制

1)集群中半數(shù)以上機器存活,集群可用。所以 Zookeeper 一般安裝奇數(shù)臺服務(wù)器,因為假設(shè)有 2N + 1 臺機器只要 N + 1 臺存活,集群就可用,再加一臺也還是 N + 1 臺,并不會提高集群可用性能,浪費資源。

2)服務(wù)器具有4種狀態(tài),分別是LOOKINGFOLLOWING、LEADING、OBSERVING。

  • LOOKING:尋找Leader狀態(tài)。當(dāng)服務(wù)器處于該狀態(tài)時,當(dāng)前集群中沒有Leader,因此需要進入Leader選舉狀態(tài)。
  • FOLLOWING:跟隨者狀態(tài)。表明當(dāng)前服務(wù)器角色是Follower。
  • LEADING:領(lǐng)導(dǎo)者狀態(tài)。表明當(dāng)前服務(wù)器角色是Leader。
  • OBSERVING:觀察者狀態(tài)。表明當(dāng)前服務(wù)器角色是ObserverObserver不參與投票和選舉過程。

3)選舉過程:假設(shè)有五臺服務(wù)器組成的 Zookeeper 集群,它們的 id1 - 5。如果這些服務(wù)器依序啟動**(第一次啟動)**

  • 服務(wù)器 1 啟動,發(fā)起選舉
    • 服務(wù)器先投給自己一票,然后判斷是否過半,顯然不夠,選舉無法完成,服務(wù)器 1 狀態(tài)保持為 LOOKING
  • 服務(wù)器 2 啟動,發(fā)起選舉
    • 服務(wù)器 2 先投給自己一票,然后與最開始啟動的服務(wù)器 1 進行通信,互相交換自己的選舉結(jié)果, id 值更大的服務(wù)器 2 勝出,服務(wù)器 1 將選票改投給 服務(wù)器 2,此時服務(wù)器 10 票,服務(wù)器 22 票,還不夠半數(shù),選舉無法完成,服務(wù)器狀態(tài) 1、2 保持為 LOOKING
  • 服務(wù)器 3 啟動,發(fā)起選舉
    • 服務(wù)器 3 先投給自己一票,根據(jù)上述方法同理服務(wù)器 1、2 都會改投服務(wù)器 3,此時服務(wù)器 10 票,服務(wù)器 20 票,服務(wù)器 33 票,(3/5) 超過半數(shù),服務(wù)器 3 當(dāng)選為 Leader。服務(wù)器狀態(tài) 1、2 更改狀態(tài)為 FOLLOWDING,服務(wù)器 3 更改狀態(tài)為 LEADING
  • 服務(wù)器 4 啟動,發(fā)起選舉
    • 服務(wù)器先投給自己一票,此時已經(jīng)存在 Leader 了,服務(wù)器 1、2、3 不會再改投了。所以投票結(jié)果為:服務(wù)器 33 票,服務(wù)器 41 票。服務(wù)器 4 服從多數(shù),更改狀態(tài)為 FOLLOWING
  • 服務(wù)器 5 啟動,發(fā)起選舉
    • 與服務(wù)器 4 同理,更改狀態(tài)為 FOLLOWING

搭建前準備

下載地址:Index of /dist/zookeeper (apache.org)

文檔地址:Apache ZooKeeper

這里選擇 Zookeeper-3.5.7 版本進行搭建,自行配置 JDK7 或更高版本

分布式配置

分布式配置與偽分布式配置,主要有以下區(qū)別,其余配置均相同:

  • 偽分布式所使用的端口必須不同,分布式端口可以相同。
  • 偽分布式統(tǒng)一使用一個IP,分布式需要根據(jù)當(dāng)前網(wǎng)絡(luò)IP配置。

以下為分布式與偽分布式配置對比(以3個服務(wù)器節(jié)點為例):這里選擇分布式配置

配置偽分布式分布式
clienPort2181;2182;21832181;2181;2181
server.1127.0.0.1:2888:3888hadoop102:2888:3888
server.2127.0.0.1:2889:3889hadoop103:2888:3888
server.3127.0.0.1:2890:3890hadoop104:2888:3888

分布式安裝

先在 hadoop102 上操作最后分發(fā)文件,改個 myid 就行,也可以使用 MultiExec 功能一次向所有終端發(fā)送命令

解壓縮并重命名

tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/
mv /opt/apache-zookeeper-3.5.7-bin /opt/zookeeper-3.5.7

配置環(huán)境

vim /etc/profile.d/zookeeper.sh

添加下述內(nèi)容:

export ZOOKEEPER_HOME=/opt/zookeeper-3.5.7
export PATH=$PATH:$ZOOKEEPER_HOME/bin

更新環(huán)境變量

source /etc/profile

配置服務(wù)器編號

hadoop102myid 設(shè)置為 1hadoop1032hadoop1043

mkdir -p $ZOOKEEPER_HOME/tmp/data
echo 1 > $ZOOKEEPER_HOME/tmp/data/myid

配置文件

$ZOOKEEPER_HOME/conf 這個目錄下的 zoo_sample.cfg 復(fù)制為 zoo.cfg

cp $ZOOKEEPER_HOME/conf/zoo_sample.cfg $ZOOKEEPER_HOME/conf/zoo.cfg

修改配置

vim $ZOOKEEPER_HOME/conf/zoo.cfg

修改數(shù)據(jù)存儲路徑

dataDir=/opt/zookeeper-3.5.7/tmp/data

添加下述配置

server.1=hadoop102:2888:3888
server.2=hadoop103:2888:3888
server.3=hadoop104:2888:3888

下述配置參數(shù)含義

server.A=B:C:D
  • A 數(shù)字,表示這個是第幾號服務(wù)器;即集群模式下配置的 myid
  • B 服務(wù)器的 IP 地址;
  • C 服務(wù)器與集群中的 Leader 服務(wù)器交換信息的端口;
  • D 當(dāng)集群中的 Leader 服務(wù)器掛了,需要重新選舉出一個新的 Leader 時,在這個端口進行服務(wù)器相互通信;
  • 2181:對外提供服務(wù)端口;
  • 2888:內(nèi)部數(shù)據(jù)同步端口;
  • 3888:Leader 掛了,重新選舉端口。

集群分發(fā) zookeeper 目錄和配置文件

xsync $ZOOKEEPER_HOME
xsync /etc/profile.d/zookeeper.sh

最后不要忘記去 hadoop102,hadoop104 上將 myid 改為 2,3 ,其他集群如果使用 $ZOOKEEPER_HOME 需要先 source /etc/profile 更新一下環(huán)境變量

[user@hadoop103 ~]$ echo 2 > $ZOOKEEPER_HOME/tmp/data/myid
[user@hadoop104 ~]$ echo 3 > $ZOOKEEPER_HOME/tmp/data/myid

操作集群

在每個服務(wù)器上啟動 Zookeeper

[user@hadoop102 zookeeper-3.5.7]$ zkServer.sh start
[user@hadoop103 zookeeper-3.5.7]$ zkServer.sh start
[user@hadoop104 zookeeper-3.5.7]$ zkServer.sh start

使用 jpsall 查看進程,QuorumPeerMain 就是 Zookeeper 集群的啟動入口類,用來加載配置啟動 QuorumPeer 線程的

[user@hadoop102 ~]$ ./jpsall
=============== hadoop102 ===============
11507 QuorumPeerMain
12988 Jps
=============== hadoop103 ===============
14498 Jps
12887 QuorumPeerMain
=============== hadoop104 ===============
12471 Jps
11086 QuorumPeerMain

查看集群狀態(tài),按照半數(shù)選舉機制三個服務(wù)器中第二個啟動的集群就是 Leader

[user@hadoop102 zookeeper-3.5.7]$ zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.5.7/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower[user@hadoop103 zookeeper-3.5.7]$ zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.5.7/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader[user@hadoop104 zookeeper-3.5.7]$ zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.5.7/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower

此時可以嘗試將 hadoop103 斷掉按照投票機制應(yīng)當(dāng)是 hadoop104 當(dāng)選 Leader

編寫腳本

vim zk.sh

給執(zhí)行權(quán)限

chmod 777 zk.sh

添加如下內(nèi)容:

#!/bin/bashif [ $# -lt 1 ]
thenecho "No Args Input..."exit ;
ficase $1 in
"start")echo "=========== 啟動 zookeeper 集群 ==========="echo "------------- hadoop102 -----------------"ssh hadoop102 "$ZOOKEEPER_HOME/bin/zkServer.sh start"echo "------------- hadoop103 -----------------"ssh hadoop103 "$ZOOKEEPER_HOME/bin/zkServer.sh start"echo "------------- hadoop104 -----------------"ssh hadoop104 "$ZOOKEEPER_HOME/bin/zkServer.sh start"
;;
"stop")echo "=========== 關(guān)閉 zookeeper 集群 ==========="echo "------------- hadoop102 -----------------"ssh hadoop102 "$ZOOKEEPER_HOME/bin/zkServer.sh stop"echo "------------- hadoop103 -----------------"ssh hadoop103 "$ZOOKEEPER_HOME/bin/zkServer.sh stop"echo "------------- hadoop104 -----------------"ssh hadoop104 "$ZOOKEEPER_HOME/bin/zkServer.sh stop"
;;
"status")echo "=========== 查看 zookeeper 狀態(tài) ==========="echo "------------- hadoop102 -----------------"ssh hadoop102 "$ZOOKEEPER_HOME/bin/zkServer.sh status"echo "------------- hadoop103 -----------------"ssh hadoop103 "$ZOOKEEPER_HOME/bin/zkServer.sh status"echo "------------- hadoop104 -----------------"ssh hadoop104 "$ZOOKEEPER_HOME/bin/zkServer.sh status"
;;
*)echo "Input Args Error..."
;;
esac

運行腳本

1)啟動 zookeeper 集群

./zk.sh start=========== 啟動 zookeeper 集群 ===========
------------- hadoop102 -----------------
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.5.7/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
------------- hadoop103 -----------------
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.5.7/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
------------- hadoop104 -----------------
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.5.7/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

2)查看集群各服務(wù)器狀態(tài)

./zk.sh status=========== 查看 zookeeper 狀態(tài) ===========
------------- hadoop102 -----------------
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.5.7/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
------------- hadoop103 -----------------
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.5.7/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader
------------- hadoop104 -----------------
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.5.7/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower

3)關(guān)閉 zookeeper 集群

./zk.sh stop=========== 關(guān)閉 zookeeper 集群 ===========
------------- hadoop102 -----------------
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.5.7/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
------------- hadoop103 -----------------
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.5.7/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
------------- hadoop104 -----------------
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.5.7/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED

搭建過程中常見錯誤

Zookeeper 集群搭建過程中常見錯誤-CSDN博客

http://www.risenshineclean.com/news/7948.html

相關(guān)文章:

  • 濟寧營銷網(wǎng)站建設(shè)長沙網(wǎng)站優(yōu)化排名推廣
  • 加強兩微一端和門戶網(wǎng)站建設(shè)云資源軟文發(fā)布平臺
  • 代購網(wǎng)站建設(shè)網(wǎng)絡(luò)營銷平臺有哪些?
  • 武漢網(wǎng)站多少百度網(wǎng)址導(dǎo)航
  • 南山做網(wǎng)站推廣樂云seo最新營銷模式
  • 網(wǎng)站給他人做付刑事責(zé)任現(xiàn)在什么app引流效果好
  • 交易所網(wǎng)站開發(fā)實戰(zhàn)優(yōu)化排名軟件
  • 武漢肥貓科技商城網(wǎng)站建設(shè)北京專業(yè)seo公司
  • 簡要列舉網(wǎng)站常見類型合肥百度關(guān)鍵詞優(yōu)化
  • 深圳外包網(wǎng)站制作公司seo網(wǎng)站優(yōu)化快速排名軟件
  • 建站快車凡科網(wǎng)站維護的內(nèi)容有哪些
  • 廣州最新新聞發(fā)大水杭州谷歌seo公司
  • wordpress 列表頁面sem優(yōu)化師
  • 中國建設(shè)銀行網(wǎng)站 黨費云安卓優(yōu)化大師官網(wǎng)
  • 怎樣做網(wǎng)站二維碼windows優(yōu)化大師怎么下載
  • 粘土做龍網(wǎng)站視頻seo新方法
  • 淘寶代做網(wǎng)站百度競價關(guān)鍵詞價格查詢工具
  • 網(wǎng)站兩邊廣告整站優(yōu)化外包服務(wù)
  • 香港做雞網(wǎng)站今日資訊最新消息
  • 做爰小視頻網(wǎng)站鄭州網(wǎng)絡(luò)營銷哪個好
  • 彩票銷信 網(wǎng)站怎么做站長之家最新網(wǎng)站
  • 企業(yè)如何免費做網(wǎng)站商業(yè)公司的域名
  • wordpress 制作portfolioseo管理與優(yōu)化期末試題
  • gta5買別墅的網(wǎng)站正在建設(shè)企業(yè)培訓(xùn)機構(gòu)哪家最好
  • 鄭州做網(wǎng)站公司有多少泰州網(wǎng)站建設(shè)優(yōu)化
  • 做網(wǎng)站別名解析的目的是什么友情鏈接交換形式
  • 黑龍江做網(wǎng)站的公司seo咨詢推廣找推推蛙
  • 租服務(wù)器的網(wǎng)站北京seo關(guān)鍵詞優(yōu)化外包
  • 網(wǎng)站建設(shè)時間如何查詢網(wǎng)店推廣營銷方案
  • 網(wǎng)站建設(shè) 流程網(wǎng)站建設(shè)的技術(shù)支持