溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何安裝配置zookeeper集群

發(fā)布時(shí)間:2021-11-12 14:22:32 來(lái)源:億速云 閱讀:135 作者:小新 欄目:云計(jì)算

這篇文章主要介紹了如何安裝配置zookeeper集群,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

    1、解壓zookeeper

    2、在$ZOOKEEPER_HOME/conf下創(chuàng)建zoo.cfg文件(參考配置文件:zoo_sample.cfg),內(nèi)容為:

# CS通信心跳時(shí)間,Zookeeper 服務(wù)器之間或客戶(hù)端與服務(wù)器之間維持心跳的時(shí)間間隔,也就是每個(gè) tickTime 時(shí)間就會(huì)發(fā)送一個(gè)心跳。tickTime以毫秒為單位
tickTime=2000

# LF初始化通信時(shí)限,集群中的follower服務(wù)器(F)與leader服務(wù)器(L)之間初始連接時(shí)能容忍的最多心跳數(shù)(tickTime的數(shù)量)
initLimit=10

# LF同步通信時(shí)限,集群中的follower服務(wù)器與leader服務(wù)器之間請(qǐng)求和應(yīng)答之間能容忍的最多心跳數(shù)(tickTime的數(shù)量)。
syncLimit=5

#數(shù)據(jù)文件目錄,Zookeeper保存數(shù)據(jù)的目錄,默認(rèn)情況下,Zookeeper將寫(xiě)數(shù)據(jù)的日志文件也保存在這個(gè)目錄里。
dataDir=/root/app/zookeeper/data

#客戶(hù)端連接端口,客戶(hù)端連接 Zookeeper 服務(wù)器的端口,Zookeeper 會(huì)監(jiān)聽(tīng)這個(gè)端口,接受客戶(hù)端的訪(fǎng)問(wèn)請(qǐng)求。
clientPort=2181

#服務(wù)器名稱(chēng)與地址:集群信息(服務(wù)器編號(hào),服務(wù)器地址,LF通信端口,選舉端口)
#這個(gè)配置項(xiàng)的書(shū)寫(xiě)格式比較特殊,規(guī)則如下:
#server.N=YYY:A:B 
server.1=hadoop.master:2888:3888
server.2=hadoop.slave:2888:3888
#端口
#2181:用于客戶(hù)端的連接
#2888:follower與leader通信
#3888:leader選舉端口

    3、根據(jù)zoo.cfg在dataDir配置的路徑下創(chuàng)建myid文件,且輸入server.N的N內(nèi)容(例如:當(dāng)前機(jī)器是server.1,那么在    myid中輸入1)

    4、復(fù)制配置完畢的zookeepr到其他節(jié)點(diǎn)

scp -r $ZOOKEEPER_HOME root@hostname:/home

    5、復(fù)制完畢之后記得修改myid

    6、在各個(gè)節(jié)點(diǎn)上分別啟動(dòng)腳本:

$ZOOKEEPER_HOME/bin/zkServer.sh start

    7、檢查命令

7.1、#zkServer.sh status
//如果出現(xiàn)Error contacting service. It is probably not running.錯(cuò)誤,是因?yàn)楣?jié)點(diǎn)只啟動(dòng)了一個(gè),無(wú)法啟動(dòng)集群模式
7.2、#echo ruok | nc localhost 2181
//如果命令成功會(huì)返回imok(I'm ok)

    8、zk客戶(hù)端

$ZOOKEEPER_HOME/bin/zkCli.sh -server hostname:2181
//啟動(dòng)一個(gè)zk客戶(hù)端
//最終要記住一個(gè)help命令即可掌握其他命令的用法
(操作之前需要了解類(lèi)似文件系統(tǒng)的znode,
    簡(jiǎn)單描述:zk中所有節(jié)點(diǎn)都是znode節(jié)點(diǎn),znode節(jié)點(diǎn)不僅可以作為目錄還可以存儲(chǔ)數(shù)據(jù).)
CREATE 創(chuàng)建znode
SET 設(shè)置znode的數(shù)據(jù)
GET 查詢(xún)znode
RMR 刪除znode
...等等自行查詢(xún)

    9、Java客戶(hù)端

    相關(guān)代碼:

import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
public class ZKClient {
    // 連接地址
    private final static String CONN = "192.168.1.200:2181";
    // client與zk超時(shí)時(shí)間(unit:ms)
    private final static int SESSION_TIMEOUT = 5000;

    public static void main(String[] args) throws Exception {

        //1、持久節(jié)點(diǎn):創(chuàng)建的節(jié)點(diǎn)成功時(shí),節(jié)點(diǎn)便會(huì)持久化在zk上
        //2、臨時(shí)節(jié)點(diǎn):創(chuàng)建節(jié)點(diǎn)過(guò)程中一旦發(fā)生有意或無(wú)意的客戶(hù)端超時(shí)或者關(guān)閉,節(jié)點(diǎn)都被刪除
        ZooKeeper zk = new ZooKeeper(CONN, SESSION_TIMEOUT, new Watcher() {
            @Override
            public void process(WatchedEvent event) {
                //接收zk各個(gè)時(shí)間通知
                System.out.println("------------------------");
                System.out.println("Path:"+event.getPath());
                System.out.println("type:"+event.getType());
                System.out.println("state"+event.getState());
                System.out.println("wrapper:"+event.getWrapper());
                System.out.println("------------------------");
            }
        });
        String path = "/hello";
        byte[] data = "testhello!".getBytes();
        zk.create(path,data, Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        zk.close();
    }
}

    

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何安裝配置zookeeper集群”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI