乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Zookeeper學(xué)習(xí)之路 (二)集群搭建

       HK123COM 2019-02-14

      目錄

       

      正文

      ZooKeeper 軟件安裝須知

      鑒于 ZooKeeper 本身的特點(diǎn),服務(wù)器集群的節(jié)點(diǎn)數(shù)推薦設(shè)置為奇數(shù)臺。我這里我規(guī)劃為三臺, 為別為 hadoop1,hadoop2,hadoop3

      ZooKeeper 的集群安裝

      ZooKeeper 的下載

      下載地址:http://mirrors./apache/ZooKeeper/

      此處使用的是3.4.10版本

      解壓安裝到自己的目錄

      [hadoop@hadoop1 ~]$ tar -zxvf zookeeper-3.4.10.tar.gz -C apps/

      ZooKeeper 運(yùn)行最重要的四個東西

      修改配置文件

      [hadoop@hadoop1 zookeeper-3.4.10]$ cd conf/
      [hadoop@hadoop1 conf]$ mv zoo_sample.cfg zoo.cfg
      [hadoop@hadoop1 conf]$ vi zoo.cfg 

      基本配置

      tickTime

      心跳基本時間單位,毫秒級,ZK基本上所有的時間都是這個時間的整數(shù)倍。

      initLimit

      tickTime的個數(shù),表示在leader選舉結(jié)束后,followers與leader同步需要的時間,如果followers比較多或者說leader的數(shù)據(jù)灰常多時,同步時間相應(yīng)可能會增加,那么這個值也需要相應(yīng)增加。當(dāng)然,這個值也是follower和observer在開始同步leader的數(shù)據(jù)時的最大等待時間(setSoTimeout)

      syncLimit

      tickTime的個數(shù),這時間容易和上面的時間混淆,它也表示follower和observer與leader交互時的最大等待時間,只不過是在與leader同步完畢之后,進(jìn)入正常請求轉(zhuǎn)發(fā)或ping等消息交互時的超時時間。

      dataDir

      內(nèi)存數(shù)據(jù)庫快照存放地址,如果沒有指定事務(wù)日志存放地址(dataLogDir),默認(rèn)也是存放在這個路徑下,建議兩個地址分開存放到不同的設(shè)備上。

      clientPort

      配置ZK監(jiān)聽客戶端連接的端口

      在配置文件末尾添加

      server.serverid=host:tickpot:electionport

      server:固定寫法
      serverid:每個服務(wù)器的指定ID(必須處于1-255之間,必須每一臺機(jī)器不能重復(fù))
      host:主機(jī)名
      tickpot:心跳通信端口
      electionport:選舉端口

      高級配置

      dataLogDir

      將事務(wù)日志存儲在該路徑下,比較重要,這個日志存儲的設(shè)備效率會影響ZK的寫吞吐量。

      globalOutstandingLimit

      (Java system property: zookeeper.globalOutstandingLimit)默認(rèn)值是1000,限定了所有連接到服務(wù)器上但是還沒有返回響應(yīng)的請求個數(shù)(所有客戶端請求的總數(shù),不是連接總數(shù)),這個參數(shù)是針對單臺服務(wù)器而言,設(shè)定太大可能會導(dǎo)致內(nèi)存溢出。

      preAllocSize

      (Java system property: zookeeper.preAllocSize)默認(rèn)值64M,以KB為單位,預(yù)先分配額定空間用于后續(xù)transactionlog 寫入,每當(dāng)剩余空間小于4K時,就會又分配64M,如此循環(huán)。如果SNAP做得比較頻繁(snapCount比較小的時候),那么請減少這個值。

      snapCount

      (Java system property: zookeeper.snapCount)默認(rèn)值100,000,當(dāng)transaction每達(dá)到snapCount/2+rand.nextInt(snapCount/2)時,就做一次SNAPSHOT,默認(rèn)情況下是50,000~100,000條transactionlog就會做一次,之所以用隨機(jī)數(shù)是為了避免所有服務(wù)器可能在同一時間做snapshot.

      traceFile (Java system property: requestTraceFile)

      maxClientCnxns

      默認(rèn)值是10,一個客戶端能夠連接到同一個服務(wù)器上的最大連接數(shù),根據(jù)IP來區(qū)分。如果設(shè)置為0,表示沒有任何限制。設(shè)置該值一方面是為了防止DoS攻擊。

      clientPortAddress

      與clientPort匹配,表示某個IP地址,如果服務(wù)器有多個網(wǎng)絡(luò)接口(多個IP地址),如果沒有設(shè)置這個屬性,則clientPort會綁定到所有IP地址上,否則只綁定到該設(shè)置的IP地址上。

      minSessionTimeout

      最小的session time時間,默認(rèn)值是2個tick time,客戶端設(shè)置的session time 如果小于這個值,則會被強(qiáng)制協(xié)調(diào)為這個最小值。

      maxSessionTimeout

      最大的session time 時間,默認(rèn)值是20個tick time. ,客戶端設(shè)置的session time 如果大于這個值,則會被強(qiáng)制協(xié)調(diào)為這個最大值。

      集群配置選項

      electionAlg

      領(lǐng)導(dǎo)選舉算法,默認(rèn)是3(fast leader election,基于TCP),0表示leader選舉算法(基于UDP),1表示非授權(quán)快速選舉算法(基于UDP),2表示授權(quán)快速選舉算法(基于UDP),目前1和2算法都沒有應(yīng)用,不建議使用,0算法未來也可能會被干掉,只保留3(fast leader election)算法,因此最好直接使用默認(rèn)就好。

      initLimit

      tickTime的個數(shù),表示在leader選舉結(jié)束后,followers與leader同步需要的時間,如果followers比較多或者說leader的數(shù)據(jù)灰常多時,同步時間相應(yīng)可能會增加,那么這個值也需要相應(yīng)增加。當(dāng)然,這個值也是follower和observer在開始同步leader的數(shù)據(jù)時的最大等待時間(setSoTimeout)

      syncLimit

      tickTime的個數(shù),這時間容易和上面的時間混淆,它也表示follower和observer與leader交互時的最大等待時間,只不過是在與leader同步完畢之后,進(jìn)入正常請求轉(zhuǎn)發(fā)或ping等消息交互時的超時時間。

      leaderServes

      (Java system property: zookeeper.leaderServes)  如果該值不是no,則表示該服務(wù)器作為leader時是需要接受客戶端連接的。為了獲得更高吞吐量,當(dāng)服務(wù)器數(shù)三臺以上時一般建議設(shè)置為no。

      cnxTimeout 

      (Java system property: zookeeper.cnxTimeout) 默認(rèn)值是5000,單位ms 表示leaderelection時打開連接的超時時間,只用在算法3中。

      ZK的不安全配置項

      skipACL

      (Java systemproperty: zookeeper.skipACL) 默認(rèn)值是no,忽略所有ACL檢查,相當(dāng)于開放了所有數(shù)據(jù)權(quán)限給任何人。

      forceSync

      (Java systemproperty: zookeeper.forceSync) 默認(rèn)值是yes, 表示transactionlog在commit時是否立即寫到磁盤上,如果關(guān)閉這個選項可能會在斷電時丟失信息。

      jute.maxbuffer

      (Java system property: jute.maxbuffer)默認(rèn)值0xfffff,單位是KB,表示節(jié)點(diǎn)數(shù)據(jù)最多1M。如果要設(shè)置這個值,必須要在所有服務(wù)器上都需要設(shè)置。

      授權(quán)認(rèn)證配置項

      DigestAuthenticationProvider.superDigest

      (Java system property only: zookeeper.DigestAuthenticationProvider.superDigest)   設(shè)置這個值是為了確定一個超級用戶,它的值格式為

      super:<base64encoded(SHA1(idpassword))> ,一旦當(dāng)前連接addAuthInfo超級用戶驗證通過,后續(xù)所有操作都不會checkACL.

      將配置文件分發(fā)到集群其他機(jī)器中

      [hadoop@hadoop1 apps]$ scp -r zookeeper-3.4.10/ hadoop2:$PWD
      [hadoop@hadoop1 apps]$ scp -r zookeeper-3.4.10/ hadoop3:$PWD

      然后是最重要的步驟,一定不能忘了。 去你的各個 ZooKeeper 服務(wù)器節(jié)點(diǎn),新建目錄 dataDir=/home/hadoop/data/zkdata,這個 目錄就是你在 zoo.cfg 中配置的 dataDir 的目錄,建好之后,在里面新建一個文件,文件 名叫 myid,里面存放的內(nèi)容就是服務(wù)器的 id,就是 server.1=hadoop01:2888:3888 當(dāng)中的 id, 就是 1,那么對應(yīng)的每個服務(wù)器節(jié)點(diǎn)都應(yīng)該做類似的操作 拿服務(wù)器 hadoop1 舉例:

      [hadoop@hadoop1 ~]$ mkdir /home/hadoop/data/zkdata
      [hadoop@hadoop1 ~]$ cd data/zkdata/
      [hadoop@hadoop1 zkdata]$ echo 1 > myid

      當(dāng)以上所有步驟都完成時,意味著我們 ZooKeeper 的配置文件相關(guān)的修改都做完了。

      配置環(huán)境變量

      [hadoop@hadoop1 ~]$ vi .bashrc 
      #Zookeeper
      export ZOOKEEPER_HOME=/home/hadoop/apps/zookeeper-3.4.10
      export PATH=$PATH:$ZOOKEEPER_HOME/bin

      保存退出

      [hadoop@hadoop1 ~]$ source .bash

      啟動軟件,并驗證安裝是否成功

      命令

      啟動:zkServer.sh start
      停止:zkServer.sh stop
      查看狀態(tài):zkServer.sh status

      注意:雖然我們在配置文件中寫明了服務(wù)器的列表信息,但是,我們還是需要去每一臺服務(wù) 器去啟動,不是一鍵啟動集群模式

      每啟動一臺查看一下狀態(tài)再啟動下一臺

      啟動hadoop1

      復(fù)制代碼
      [hadoop@hadoop1 ~]$ zkServer.sh start
      ZooKeeper JMX enabled by default
      Using config: /home/hadoop/apps/zookeeper-3.4.10/bin/../conf/zoo.cfg
      Starting zookeeper ... STARTED
      [hadoop@hadoop1 ~]$ zkServer.sh status
      ZooKeeper JMX enabled by default
      Using config: /home/hadoop/apps/zookeeper-3.4.10/bin/../conf/zoo.cfg
      Error contacting service. It is probably not running.
      [hadoop@hadoop1 ~]$ 
      復(fù)制代碼

      啟動hadoop2

      復(fù)制代碼
      [hadoop@hadoop2 ~]$ zkServer.sh start
      ZooKeeper JMX enabled by default
      Using config: /home/hadoop/apps/zookeeper-3.4.10/bin/../conf/zoo.cfg
      Starting zookeeper ... STARTED
      [hadoop@hadoop2 ~]$ zkServer.sh status
      ZooKeeper JMX enabled by default
      Using config: /home/hadoop/apps/zookeeper-3.4.10/bin/../conf/zoo.cfg
      Mode: leader
      [hadoop@hadoop2 ~]$ 
      復(fù)制代碼

      此時在查看hadoop1的狀態(tài)

      啟動hadoop3

      復(fù)制代碼
      [hadoop@hadoop3 ~]$ zkServer.sh start
      ZooKeeper JMX enabled by default
      Using config: /home/hadoop/apps/zookeeper-3.4.10/bin/../conf/zoo.cfg
      Starting zookeeper ... STARTED
      [hadoop@hadoop3 ~]$ zkServer.sh status
      ZooKeeper JMX enabled by default
      Using config: /home/hadoop/apps/zookeeper-3.4.10/bin/../conf/zoo.cfg
      Mode: follower
      [hadoop@hadoop3 ~]$ 
      復(fù)制代碼

      查看進(jìn)程

      3臺機(jī)器上都有QuorumPeerMain進(jìn)程

      [hadoop@hadoop1 ~]$ jps
      2499 Jps
      2404 QuorumPeerMain
      [hadoop@hadoop1 ~]$ 

       

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多