zookeeper的安装及配置教程(步骤详尽)
前提:zookeeper是java語言開發的,保證jdk已經在服務器上安裝成功:
(yum安裝的是openjdk,盡量不要使用yum安裝jdk,要使用oracle Hotspot的jdk。原因是一些開源軟件,尤其是大數據領域的,最開始對oracle的官方jdk和openjdk都會進行測試,但是到后面就只針對oracle的jdk進行測試,使用openjdk可能會出現不兼容的問題)
上傳安裝包:
解壓包:
zookeeper目錄結構:
進入到bin目錄,存放的是各種啟動腳本:
進入conf目錄,改名配置文件zoo_sample.cfg:改名為zoo.cfg(默認的名稱是這個)
?vi zoo.cfg:
①tickTime:維持leader與follower以及客戶端之間的心跳頻率時間(單位毫秒,默認2000ms)
②initLimit:允許follower從節點追隨leader主節點時的初始延遲,默認是10次,也就是允許的延遲時間為2000*10=20秒。如果在這個時間內還沒有連接上的話,leader就會認為follower有問題,將會拋棄你不跟你玩了。
③syncLimit:默認是5.leader與follower之間的協作允許最大延遲時長,tickTime *?syncLimit=2000*5=10秒。10秒之內沒響應,也會認為follower存在問題。
④dataDir:用于存儲持久化文件(日志、快照之類的)的路徑。默認 /tmp/zookeeper 最好不要用/tmp這類的目錄,一般改為/var,var在Linux中是存放臨時文件的。
⑤cliientPort:客戶端連接的端口號。默認是2181
⑥maxClientCnxns:最大的客戶端連接數。也就是最多允許多少個客戶端連接本臺機器的zk
⑦配置集群中所有的節點信息:3888端口用于在沒有leader時所有節點在3888建立socket連接進行投票選舉出leader;2888端口是follower從節點連接leader主節點的端口。
在zk中,leader可以理解成是“謙讓”出來的,1,2,3,4中誰是最大的誰就立馬是leader
過半通過:一共4個節點有 4/2+1=3臺通過就行。比如1,2,3啟動了之后3就是leader,因為遵循的是過半通過原則。
創建目錄,如果連續兩級以上目錄都不存在,就要加上-p參數:
創建一個myid文件,里面寫入1:因為上面再zoo.cfg中配置了server.1,每個節點指定不同的myid
在不同服務器節點上拷貝文件的scp命令:將node01節點的文件夾拷貝到node02節點
?echo命令的使用:(直接將內容寫入文件)
依次對node03和node04節點進行拷貝:
依次在node03和node04節點創建myid文件:
將zookeeper添加到profile環境變量:
加載下profile文件:
將profile文件分發到其余三個節點:
使配置文件profile生效的兩種方式:
source /etc/profile 或者 . /etc/profile?xshell批量發送命令到全部會話窗口功能介紹:
?啟動zookeeper的幾種方式:
①start-foreground:前臺啟動,所有的日志會打印出來。
?依次啟動前三個節點的zk服務:可以看到node03已經被選舉為leader了,其余兩臺就變成follower了。此時已經選出leader了,后面還有一個node4節點,即使再啟動node04,它也不會成為leader,只能是follower,
?
此時如果停掉node03這個leader,那么node04將會成為leader:
服務運行一段時間后,再選舉的規則大概是:如果誰的數據最完整,那么它將成為新的leader;如果都比較完整的話,再來比較id,id越大,就成為leader。
總結
以上是生活随笔為你收集整理的zookeeper的安装及配置教程(步骤详尽)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于磁盘和内存的常识以及磁盘I/O进化史
- 下一篇: zookeeper基本操作(常用命令)