国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ZooKeeper【集群模式】

這篇具有很好參考價(jià)值的文章主要介紹了ZooKeeper【集群模式】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

ZooKeeper命令基本操作

cd /opt/module/zookeeper-3.5.7/bin
#啟動(dòng)服務(wù)端
./zkServer.sh start
#啟動(dòng)客戶(hù)端
./zkCli.sh
#查看zookeeper狀態(tài)
./zkServer.sh status
#退出客戶(hù)端
quit
#關(guān)閉zookeeper
./zkServer.sh stop
#查看當(dāng)前進(jìn)程的全限定名
./jps -l

配置文件說(shuō)明

# 通信心跳時(shí)間,zookeeper服務(wù)器和客戶(hù)端心跳時(shí)間(單位ms)
tickTime=2000
# LF初始化通信時(shí)限,Leader和Flower初始連接時(shí)最長(zhǎng)的等待時(shí)間(10*tickTime),也就是20s還未建立連接則認(rèn)為通信失敗
initLimit=10
# LF同步通信時(shí)限,Leader和Flower建立連接后仍然保持心跳聯(lián)系,超過(guò)(5*syncLimit)認(rèn)為Flower死亡,從服務(wù)器目錄刪除Flower。
syncLimit=5
# 保存zookeeper數(shù)據(jù)的目錄
dataDir=/opt/module/zookeeper-3.5.7/zkData
# 客戶(hù)端端口號(hào)
clientPort=2181

集群配置

????????在zookeeper的zkData目錄(我們自己指定的存放zookeeper數(shù)據(jù)的目錄)下創(chuàng)建一個(gè)名為"myid"的文件(必須為myid)。

????????在myid中添加與服務(wù)器對(duì)應(yīng)的數(shù)字編號(hào),比如hadoop102就配置數(shù)字編號(hào) "2" (在整個(gè)zookeeper集群中唯一,所以分發(fā)zookeeper后,必須修改自己的myid)。我們需要在zoo.cfg的末行增加配置信息:

server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888
#server.2代表myid=2的服務(wù)器
#hadoop102對(duì)應(yīng)我們hadoop102的地址:192.168.88.134
#2888: Leader和Flower的通信端口
#3888: 如果集群中唯一的Leader掛了,通過(guò)這個(gè)端口來(lái)重新選舉Leader

????????因?yàn)槲覀兣渲昧巳_(tái)服務(wù)器,所以根據(jù)上一節(jié)說(shuō)到的要求,我們必須啟動(dòng)半數(shù)以上(至少兩臺(tái))的服務(wù)器zookeeper才能啟動(dòng)成功。

ZooKeeper的選舉機(jī)制

三個(gè)屬性

SID

????????服務(wù)器ID。用來(lái)唯一標(biāo)識(shí)每一臺(tái)ZooKeeper集群中的機(jī)器,和myid一致。

ZXID

????????它可以用來(lái)確保ZooKeeper的數(shù)據(jù)一致性。zxid是一個(gè)單調(diào)遞增的計(jì)數(shù)器,它是由ZooKeeper服務(wù)器在處理每個(gè)事務(wù)時(shí)生成。

Epoch

????????每個(gè)Leader任期的代號(hào)。

第一次啟動(dòng)時(shí)

以我們的集群為例(三臺(tái)服務(wù)器hadoop102、hadoop103、hadoop104)

  1. hadoop102啟動(dòng),發(fā)起選舉,hadoop102投自己一票。但是此時(shí)hadoop102只有一票,不夠半數(shù)以上(1<3/2=1.5),選舉無(wú)法完成,hadoop102保持LOOKING狀態(tài)(觀望狀態(tài));
  2. hadoop103啟動(dòng),此時(shí)zookeeper集群中服務(wù)器節(jié)點(diǎn)數(shù)量(2)>半數(shù)(1.5),zookeeper啟動(dòng)成功,這時(shí)候就需要選舉出一個(gè)Leader了。
  3. 于是再次發(fā)起選舉,hadoop102已經(jīng)投過(guò)了(投給了自己),hadoop103也投自己一票,此時(shí)hadoop102和hadoop103各自一票。為了避免僵持狀態(tài),hadoop102和hadoop103互相交換選票信息,此時(shí)hadoop102發(fā)現(xiàn)hadoop103的myid (3) 比自己 (2) 大,于是hadoop102將自己的選票投給hadoop103,此時(shí)hadoop103票數(shù)=2,hadoop102票數(shù)=0,hadoop103成功選為L(zhǎng)eader,狀態(tài)改為L(zhǎng)EADING,而hadoop102自動(dòng)變?yōu)镕lower,狀態(tài)改為L(zhǎng)EADING。
  4. 這時(shí)候,hadoop104姍姍來(lái)遲,才剛剛啟動(dòng),于是又發(fā)起一次選舉,hadoop104同樣投給自己,但這時(shí)候已經(jīng)存在Leader了,所以自己只能做Flower了。

zookeeper的選舉機(jī)制是:只要投票過(guò)半數(shù),服務(wù)器 id(myid)大的 直接勝出。

????????比如這個(gè)案例,盡管hadoop104比hadoop102和hadoop103的myid和服務(wù)器id都要大,但是因?yàn)楫?dāng)hadoop102和hadoop103啟動(dòng)的時(shí)候,已經(jīng)超過(guò)了半數(shù)的要求,直接就開(kāi)始選舉并且hadoop103勝出,所以即使hadoop104的myid比hadoop103更大也沒(méi)用。

非第一次啟動(dòng)

除了服務(wù)器初始化啟動(dòng),當(dāng)服務(wù)器節(jié)點(diǎn)無(wú)法和Leader保持連接的時(shí)候,也會(huì)進(jìn)行Leader選舉。

集群中確實(shí)不存在Leader(比如 Leader掛掉了)?

選舉Leader的規(guī)則:

前提:節(jié)點(diǎn)數(shù)達(dá)到一半以上

比較優(yōu)先級(jí)

  1. Epoch大的直接勝出
  2. Epoch相同,ZXID大的勝出
  3. ZXID相同,SID大的勝出

集群中存在Leader,但是節(jié)點(diǎn)沒(méi)有連接上

????????這種情況下,某個(gè)節(jié)點(diǎn)自認(rèn)為L(zhǎng)eader不存在,想要試圖去選舉Leader,當(dāng)它向其它節(jié)點(diǎn)交換選票的時(shí)候,會(huì)被告知Leader是存在的并告訴Leader的信息,該節(jié)點(diǎn)只需要與Leader建立連接即可。

安裝ZooKeeper服務(wù)器的個(gè)數(shù)

基本原則是安裝奇數(shù)臺(tái)。

生產(chǎn)經(jīng)驗(yàn):

  • 10 臺(tái)服務(wù)器:3 臺(tái) zk;
  • 20 臺(tái)服務(wù)器:5 臺(tái) zk;
  • 100 臺(tái)服務(wù)器:11 臺(tái) zk;
  • 200 臺(tái)服務(wù)器:11 臺(tái) zk;

服務(wù)器臺(tái)數(shù)多:好處:提高可靠性;壞處:提高通信延時(shí)。所以不見(jiàn)得越多越好。

ZooKeeper群起腳本

#!/bin/bash

case $1 in
"start"){
	for i in hadoop102 hadoop103 hadoop104
	do
		echo "========== zookeeper $i 啟動(dòng) ============"
		ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh start"
	done
}
;;
"stop"){
	for i in hadoop102 hadoop103 hadoop104
	do
		echo "========== zookeeper $i 關(guān)閉 ============"
		ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"
	done
}
;;
"status"){
	for i in hadoop102 hadoop103 hadoop104
	do
		echo "========== zookeeper $i 狀態(tài) ============"
		ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"
	done
}
;;
esac

注意

????????不能直接從windows復(fù)制腳本文件過(guò)去,會(huì)報(bào)錯(cuò)文件中有windows的換行符。

????????可以從windows復(fù)制腳本內(nèi)容,然后粘貼到linux的vim編輯器這樣是沒(méi)問(wèn)題的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-481348.html

到了這里,關(guān)于ZooKeeper【集群模式】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • HDFS基本操作命令

    HDFS基本操作命令

    hdfs shell cli支持操作多種文件系統(tǒng),包括本地文件系統(tǒng)(file:///),分布式文件系統(tǒng)(hdfs:nn:8020)等 操作的是什么文件系統(tǒng)取決于URL種的前綴協(xié)議 如果沒(méi)有指定前綴,則將會(huì)讀取環(huán)境變量匯總的fs.defaultFS屬性,以該屬性作為默認(rèn)文件系統(tǒng) hdfs dfs -ls file:/// #操作本地文件系統(tǒng) hdfs dfs

    2024年02月16日
    瀏覽(24)
  • Git基本操作命令

    Git基本操作命令

    目錄 一、簡(jiǎn)介 二、基本命令使用 (1) git add ---將該文件添加到暫存區(qū) (2) git status --- 命令用于查看在上次提交之后是否有對(duì)文件進(jìn)行再次修改 (3) git diff -- 比較文件在暫存區(qū)和工作區(qū)的差異 (4) git commit? ---?將暫存區(qū)內(nèi)容添加到本地倉(cāng)庫(kù)中 (5) git reset --指定退回某一次提交的版

    2024年02月05日
    瀏覽(47)
  • Docker基本操作命令(一)

    Docker基本操作命令(一)

    docker search命令搜索存放在 Docker Hub中的鏡像,此命令默認(rèn)Docker會(huì)在Docker Hub中搜索鏡像,可以配置了其他鏡像倉(cāng)庫(kù) [root@zch01 ~]# docker search centos NAME:鏡像倉(cāng)庫(kù)名稱(chēng) DESCRIPTION:鏡像倉(cāng)庫(kù)描述 STARS:鏡像倉(cāng)庫(kù)收藏?cái)?shù),表示該鏡像倉(cāng)庫(kù)的受歡迎程度,類(lèi)似于 GitHub的 stars OFFICAL: 表示是否為

    2024年02月12日
    瀏覽(23)
  • HBase的基本命令操作

    所有命令來(lái)源幫助文檔; processlist – 查看當(dāng)前正在執(zhí)行的任務(wù) status – 查看服務(wù)器的狀態(tài)信息 table_help – 查看表操作幫助信息。 version – 顯示版本信息。 whoami – 用戶(hù)信息。 create_namespace – 創(chuàng)建命名空間 describe_namespace – 顯示指定命名空間的詳細(xì)信息 alter_namespace – 修改命

    2024年04月14日
    瀏覽(26)
  • MYSQL基本命令和操作

    MYSQL基本命令和操作

    ??作者 : D. Star. ??專(zhuān)欄 : JAVA ??今日提問(wèn) : 你好,我的朋友,在你的人生途中,會(huì)面臨很多選擇,不管選什么樣的結(jié)果,我們都多少會(huì)有些后悔。如果是你,你會(huì)選擇愛(ài)你的,還是懂你的? Oracle(最好),Mysql( 最廣泛–免費(fèi) ),SQL Server(好用不火),SQLite(輕量級(jí)) MongoDB,Redis,

    2024年02月12日
    瀏覽(21)
  • redis操作基本命令

    Redis —— Remote Dictionary Server ,它是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)、 支持網(wǎng)絡(luò) 、可基于 內(nèi)存亦可持久化 的日志型、 Key-Value 數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API,我們可使用它構(gòu)建高性能,可擴(kuò)展的Web應(yīng)用程序。 具有以下特點(diǎn): 異??焖?? Redis數(shù)據(jù)庫(kù)完全在 內(nèi)存 中,因此處理速

    2024年02月09日
    瀏覽(16)
  • FFMPEG基本操作命令指南(二)

    FFmpeg是一套可以用來(lái)記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開(kāi)源計(jì)算機(jī)程序。FFmpeg有非常強(qiáng)大的功能包括視頻采集功能、視頻格式轉(zhuǎn)換、視頻抓圖、給視頻加水印等。 接上第一篇基礎(chǔ)的幾個(gè)命令,下面介紹幾個(gè)看起來(lái)比較復(fù)雜的 一:視頻剪切 命令示例: ffmpeg -

    2023年04月24日
    瀏覽(21)
  • 命令行hive的基本操作

    使用SQL語(yǔ)句在命令行創(chuàng)建Hive庫(kù): 其中, database_name 是要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)的名稱(chēng)。例如: 這將在Hive中創(chuàng)建一個(gè)名為\\\"mydatabase\\\"的數(shù)據(jù)庫(kù)。 使用SQL語(yǔ)句在命令行創(chuàng)建Hive表: 其中, table_name 是要?jiǎng)?chuàng)建的表的名稱(chēng), column1_name 和 column2_name 是表的列名, column1_type 和 column2_type 是對(duì)應(yīng)列

    2024年03月11日
    瀏覽(22)
  • Linux學(xué)習(xí)筆記——基本操作命令

    Linux學(xué)習(xí)筆記——基本操作命令

    ??Linux 操作系統(tǒng)的 Shell 作為操作系統(tǒng)的外殼,為用戶(hù)提供使用操作系統(tǒng)的接口。它是命令語(yǔ)言、命令解釋程序及程序設(shè)計(jì)語(yǔ)言系統(tǒng)。 ??Shell 是用戶(hù)和 Linux 內(nèi)核之間的接口程序,如果把 Linux 內(nèi)核想象成一個(gè)球體的中心,Shell 就是圍繞內(nèi)核的外層。當(dāng)從 Shell 或其他程序向

    2024年03月12日
    瀏覽(31)
  • Git 的基本操作 ——命令行

    Git 的基本操作 ——命令行

    詳解如下: 本地倉(cāng)庫(kù): 是在開(kāi)發(fā)人員自己電腦上的Git倉(cāng)庫(kù),存放我們的代碼(.git 隱藏文件夾就是我們的本地倉(cāng)庫(kù)) 遠(yuǎn)程倉(cāng)庫(kù): 是在遠(yuǎn)程服務(wù)器上的Git倉(cāng)庫(kù),存放代碼(可以是github.com或者gitee.com 上的倉(cāng)庫(kù),或者自己該公司的服務(wù)器) 工作區(qū): 我們自己寫(xiě)代碼(文檔)的地方 暫存區(qū):

    2024年02月05日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包