分布式--CentOS安裝zookeeper(單機版)

開啟我們的分布式之路吧L硗!茴厉!

(1)官網下載zookeeper,我這里使用的是3.4.5版本什荣。下載地址

并且我們要給自己的服務器配置hosts先

$ vi /etc/hosts
這里寫圖片描述

(2)解壓唄矾缓,我們這就不解壓在usr/local那里了,因為涉及太多東東稻爬,我們解壓配置在我們的用戶目錄那里嗜闻。那么我們就是使用我們的用戶權限咯!桅锄!而不是root用戶權限琉雳。

這里寫圖片描述
$ tar -zxvf zookeeper-3.4.5.tar.gz

(3)進入zookeeper目錄,創(chuàng)建日志文件夾以及數據文件夾

$ cd /usr/local/zookeeper-3.4.6
$ mkdir data
$ mkdir logs
這里寫圖片描述

(4)配置文件是很危險友瘤,容易出bug的翠肘,所以我們一般是使用備份去操作。進入zookeeper的conf目錄先商佑!

$ cp zoo_sample.cfg zoo.cfg

(5)修改zoo.cfg配置锯茄。

$ vi zoo.cfg
這里寫圖片描述
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
clientPort=2181
//下面的ip也可以用hosts別名zookeeper-01,當然更是可是用我們剛開始修改hosts的時候配置的名字啦2杳弧<∮摹!
server.1=edu-provider-02:2888:3888
//其中2888是zookeeper服務之間通信的端口
//3888是zookeeper與其他應用程序通信端口

zoo.cfg文件參數詳解:感謝此博主的分享

參數名 說明
clientPort 客戶端連接server的端口抓半,即對外服務端口喂急,一般設置為2181
tickTime ZK中的一個時間單元。ZK中所有時間都是以這個時間單元為基礎笛求,進行整數倍配置的廊移。例如,session的最小超時時間是2*tickTime
dataDir 存儲快照文件snapshot的目錄探入。默認情況下狡孔,事務日志也會存儲在這里。建議同時配置參數dataLogDir, 事務日志的寫性能直接影響zk性能
dataLogDir 事務日志輸出目錄蜂嗽。盡量給事務日志的輸出配置單獨的磁盤或是掛載點苗膝,這將極大的提升ZK性能
globalOutstandingLimit 最大請求堆積數。默認是1000植旧。ZK運行的時候辱揭, 盡管server已經沒有空閑來處理更多的客戶端請求了离唐,但是還是允許客戶端將請求提交到服務器上來,以提高吞吐性能问窃。當然亥鬓,為了防止Server內存溢出,這個請求堆積數還是需要限制下的域庇。(Java system property: zookeeper.globalOutstandingLimit. )
preAllocSize 預先開辟磁盤空間嵌戈,用于后續(xù)寫入事務日志。默認是64M听皿,每個事務日志大小就是64M咕别。如果ZK的快照頻率較大的話,建議適當減小這個參數
snapCount 每進行snapCount次事務日志輸出后写穴,觸發(fā)一次快照(snapshot), 此時,ZK會生成一個snapshot.文件雌贱,同時創(chuàng)建一個新的事務日志文件log.啊送。默認是100000.(真正的代碼實現中,會進行一定的隨機數處理欣孤,以避免所有服務器在同一時間進行快照而影響性能)(Java system property: zookeeper.snapCount )
traceFile 用于記錄所有請求的log馋没,一般調試過程中可以使用,但是生產環(huán)境不建議使用降传,會嚴重影響性能篷朵。(Java system property:? requestTraceFile )
maxClientCnxns 單個客戶端與單臺服務器之間的連接數的限制,是ip級別的婆排,默認是60声旺,如果設置為0,那么表明不作任何限制段只。請注意這個限制的使用范圍腮猖,僅僅是單臺客戶端機器與單臺ZK服務器之間的連接數限制,不是針對指定客戶端IP赞枕,也不是ZK集群的連接數限制澈缺,也不是單臺ZK對所有客戶端的連接數限制。指定客戶端IP的限制策略炕婶,這里有一個patch姐赡,可以嘗試一下:http://rdc.taobao.com/team/jm/archives/1334(No Java system property)
clientPortAddress 對于多網卡的機器,可以為每個IP指定不同的監(jiān)聽端口柠掂。默認情況是所有IP都監(jiān)聽 clientPort 指定的端口项滑。 New in 3.3.0
minSessionTimeoutmaxSessionTimeout Session超時時間限制,如果客戶端設置的超時時間不在這個范圍陪踩,那么會被強制設置為最大或最小時間杖们。默認的Session超時時間是在2 * tickTime ~ 20 * tickTime 這個范圍 New in 3.3.0
fsync.warningthresholdms 事務日志輸出時悉抵,如果調用fsync方法超過指定的超時時間,那么會在日志中輸出警告信息摘完。默認是1000ms姥饰。(Java system property: fsync.warningthresholdms )New in 3.3.4
autopurge.purgeInterval 在上文中已經提到,3.4.0及之后版本孝治,ZK提供了自動清理事務日志和快照文件的功能列粪,這個參數指定了清理頻率,單位是小時谈飒,需要配置一個1或更大的整數岂座,默認是0,表示不開啟自動清理功能杭措。(No Java system property) New in 3.4.0
autopurge.snapRetainCount 這個參數和上面的參數搭配使用费什,這個參數指定了需要保留的文件數目。默認是保留3個手素。(No Java system property) New in 3.4.0
electionAlg 在之前的版本中鸳址, 這個參數配置是允許我們選擇leader選舉算法,但是由于在以后的版本中泉懦,只會留下一種“TCP-based version of fast leader election”算法稿黍,所以這個參數目前看來沒有用了,這里也不詳細展開說了崩哩。(No Java system property)
initLimit Follower在啟動過程中巡球,會從Leader同步所有最新數據,然后確定自己能夠對外服務的起始狀態(tài)邓嘹。Leader允許F在 initLimit 時間內完成這個工作酣栈。通常情況下,我們不用太在意這個參數的設置汹押。如果ZK集群的數據量確實很大了钉嘹,F在啟動的時候,從Leader上同步數據的時間也會相應變長鲸阻,因此在這種情況下跋涣,有必要適當調大這個參數了。(No Java system property)
syncLimit 在運行過程中鸟悴,Leader負責與ZK集群中所有機器進行通信陈辱,例如通過一些心跳檢測機制,來檢測機器的存活狀態(tài)细诸。如果L發(fā)出心跳包在syncLimit之后沛贪,還沒有從F那里收到響應,那么就認為這個F已經不在線了。注意:不要把這個參數設置得過大利赋,否則可能會掩蓋一些問題水评。(No Java system property)
leaderServes 默認情況下,Leader是會接受客戶端連接媚送,并提供正常的讀寫服務中燥。但是,如果你想讓Leader專注于集群中機器的協(xié)調塘偎,那么可以將這個參數設置為no疗涉,這樣一來,會大大提高寫操作的性能吟秩。(Java system property: zookeeper. leaderServes )
server.x=[hostname]:nnnnn[:nnnnn] 這里的x是一個數字咱扣,與myid文件中的id是一致的。右邊可以配置兩個端口涵防,第一個端口用于F和L之間的數據同步和其它通信闹伪,第二個端口用于Leader選舉過程中投票通信。(No Java system property)
group.x=nnnnn[:nnnnn]weight.x=nnnnn 對機器分組和權重設置壮池,可以 參見這里(No Java system property)
cnxTimeout Leader選舉過程中祭往,打開一次連接的超時時間,默認是5s火窒。(Java system property: zookeeper. cnxTimeout )
zookeeper.DigestAuthenticationProvider.superDigest ZK權限設置相關,具體參見《使用super身份對有權限的節(jié)點進行操作 》和 《ZooKeeper權限控制》
skipACL 對所有客戶端請求都不作ACL檢查驮肉。如果之前節(jié)點上設置有權限限制熏矿,一旦服務器上打開這個開頭,那么也將失效离钝。(Java system property: zookeeper.skipACL )
forceSync 這個參數確定了是否需要在事務日志提交的時候調用 FileChannel .force來保證數據完全同步到磁盤票编。(Java system property: zookeeper.forceSync )
jute.maxbuffer 每個節(jié)點最大數據量,是默認是1M卵渴。這個限制必須在server和client端都進行設置才會生效慧域。(Java system property: jute.maxbuffer )

(6)數據報要對應給到我們對應的機器:進入我們創(chuàng)建的data目錄

這里寫圖片描述

相當于創(chuàng)建myid文件。然后給到我們剛剛對應的server的機器編號1

$ vi myid
這里寫圖片描述

(7)配置環(huán)境變量:我們下載安裝的是用戶目錄下的浪读,所以我們要用用戶權限去到我們的用戶目錄

切換用戶

$ su 用戶名

//進入用戶目錄
$ cd ~
這里寫圖片描述

然后就在這個目錄下進行修改操作咯

vi .bash_profile
這里寫圖片描述
export ZOOKEEPER_HOME=/home/dsc/zookeep
export PATH=$ZOOKEEPER_HOME/bin:$PATH

(8)使我們的修改配置生效:

$ source .bash_profile

(9)防火墻的修改配置:(N袅瘛!碘橘!注意;ザ!痘拆!要用root用戶權限去修改)

我們一般用iptables的防火墻仰禽,而把firewalled防火墻給關閉卸載。firewalled管理iptables管理

CentOS 默認使用的是firewalled作為防火墻吐葵,這里改為iptables防火墻规揪。

1.關閉firewalled。

systemctl stop firewalld.service            //停止firewall 
systemctl disable firewalld.service         //禁止firewall開機啟動

2.安裝iptables防火墻 温峭。

yum install iptables-services       //安裝
vi /etc/sysconfig/iptables          //編輯防火墻配置文件 
這里寫圖片描述
#zookeeper
-A FORWARD -j REJECT --reject-with icmp-host-prohibited RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3888 -j ACCEPT

3.改完就啟動懊颓Α!诚镰!

$ systemctl restart iptables.service //最后重啟防火墻使配置生效
$ service iptables restart
$ service iptables status

4.還要設置下開機啟動

$ systemctl enable iptables.service     //設置防火墻開機啟動

(10)啟動zookeeper測試:奕坟。進入到zookeeper的bin目錄下:

$ ./zkServer.sh start
//產看狀態(tài)
$ ./zkServer.sh status
//查看進程:
$ ps

(11)設置開機啟動:

$ vi /etc/rc.local

就是一句話 su - root -c '/home/dsc/zookeeper-3.4.5/bin/zkServer.sh start'

這里寫圖片描述

注意點:

(1)啟動日志監(jiān)控器監(jiān)控觀察。進入我們的zookeeper的bin目錄下

$ tail -500f zookeeper.out
這里寫圖片描述

(2)還有一些啟動失敗的錯誤:

java.net.BindException: 地址已在使用 

解決:方法1.修改zoo.cfg文件中的端口設置清笨,2181改為其他月杉。方法2.使用$ ./zkServer.sh status查看zookeeper狀態(tài)端口,再使用kill命令殺死該進程抠艾,重啟zookeeper即可苛萎!


好了,分布式--CentOS安裝zookeeper(單機版)講完了检号。本博客系列是我項目中分布式的一些過程中的筆記腌歉,拿出來分享經驗給大家。歡迎在下面指出錯誤齐苛,共同學習G谈恰!你的點贊是對我最好的支持0挤洹馍驯!

更多內容,可以訪問JackFrost的博客

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末玛痊,一起剝皮案震驚了整個濱河市汰瘫,隨后出現的幾起案子,更是在濱河造成了極大的恐慌擂煞,老刑警劉巖混弥,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異对省,居然都是意外死亡蝗拿,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門蒿涎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蛹磺,“玉大人,你說我怎么就攤上這事同仆∮├Γ” “怎么了?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長俗或。 經常有香客問我市怎,道長,這世上最難降的妖魔是什么辛慰? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任区匠,我火速辦了婚禮,結果婚禮上帅腌,老公的妹妹穿的比我還像新娘驰弄。我一直安慰自己,他們只是感情好速客,可當我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布戚篙。 她就那樣靜靜地躺著,像睡著了一般溺职。 火紅的嫁衣襯著肌膚如雪岔擂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天浪耘,我揣著相機與錄音乱灵,去河邊找鬼。 笑死七冲,一個胖子當著我的面吹牛痛倚,可吹牛的內容都是我干的。 我是一名探鬼主播澜躺,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蝉稳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了苗踪?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤削锰,失蹤者是張志新(化名)和其女友劉穎通铲,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體器贩,經...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡颅夺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了蛹稍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吧黄。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖唆姐,靈堂內的尸體忽然破棺而出拗慨,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布赵抢,位于F島的核電站剧蹂,受9級特大地震影響,放射性物質發(fā)生泄漏烦却。R本人自食惡果不足惜宠叼,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望其爵。 院中可真熱鬧冒冬,春花似錦、人聲如沸摩渺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽证逻。三九已至乐埠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間囚企,已是汗流浹背丈咐。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留龙宏,地道東北人棵逊。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像银酗,于是被迫代替她去往敵國和親辆影。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,455評論 2 359

推薦閱讀更多精彩內容

  • 本篇講述zookeeper單機及集群部署黍特,筆者覺得還是比較詳細蛙讥,希望能幫助到急需補充該方面知識的朋友,如發(fā)現有問題...
    君哥聊編程閱讀 1,993評論 0 4
  • 一灭衷、zookeeper集群簡介 Zookeeper集群中只要有過半的節(jié)點是正常的情況下,那么整個集群對外就是可用的...
    會跳舞的機器人閱讀 3,122評論 3 19
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理次慢,服務發(fā)現,斷路器翔曲,智...
    卡卡羅2017閱讀 134,695評論 18 139
  • ZooKeeper介紹 Zookeeper 分布式服務框架是 Apache Hadoop 的一個子項目迫像,它主要是用...
    Coselding閱讀 11,414評論 1 37
  • 1 ——“分手好嗎?” 明黃色燈光映亮的手機屏幕顯示著剛讀取的信息瞳遍,林清晨背對著手機闻妓,無力地躺在床上。 眼淚大顆大...
    shen夢溪閱讀 536評論 5 3