日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux zk集群,linux ZooKeeper集群安装

發布時間:2023/12/15 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux zk集群,linux ZooKeeper集群安装 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

dataDir=/hadoop/zookeeper

clientPort=2181

server.1=hadoop-master:28888:38888

server.2=hadoop-slave01:28888:38888

server.3=hadoop-slave02:28888:38888

tickTime發送心跳時間間隔,單位毫秒

initlimit和sysnclimit,兩者都是以ticktime的總數進行度量(上面的時間為10*2000=20s)。initLimit參數設定了允許所有跟隨者與領導者進行連接并同步的時間,如果在設定的時間內內,半數以上的跟隨者未能完成同步,領導者便會宣布放棄領導地位,然后進行另外一次領導 者選舉。如果這種情況經常發生,通過查看日志中的記錄發現,則表明設定的值太小。

syscLimit參數設定了允許一個跟隨者與領導者進行同步的時間。如果在設定的時間內,一個跟隨者未能完成同步,它將會自己重啟,所有關聯到這個跟隨者的客戶端將連接到另外一個跟隨者。

datadir保存的zk中持久化的數據,zk中存在兩種數據,一種用完即消失,一種需要持久存在,zk的日志也保存在這

創建zookeeper數據目錄

mkdir -p /data/hadoop/zookeeper(三臺服務上都創建)

echo "1" > /data/hadoop/zookeeper/myid? (hadoop-master)

echo "2" > /data/hadoop/zookeeper/myid(hadoop-slave01)

echo "3" > /data/hadoop/zookeeper/myid(hadoop-slave02)

四:啟動

在對應的節點上啟動服務

/bin/zkServer.sh start

三個節點啟動完之后,查看

jps

10060 QuorumPeerMain

9030 NameNode

9228 SecondaryNameNode

13755 Jps

9317 JobTracker

五:測試案例

public class ZooKeeperTest implements Watcher{

private static final int SEESSION_TIMEOUT=10000;

private static final String CONNECTION_STRING="10.0.57.142:2181";

private static final String ZK_PATH="/configTest";

private ZooKeeper zk=null;

private CountDownLatch countDownLatch=new CountDownLatch(1);

/**

* @description 創建zookeeper連接

* @param

* @return

* @throws

*/

public void createConnection(String connectString,int sessionTimeout)

{

this.releaseConnection();

try {

zk = new ZooKeeper(connectString, sessionTimeout, this);

countDownLatch.await();

} catch (InterruptedException e) {

System.out.println("連接創建失敗,發生InterruptedException");

e.printStackTrace();

}

catch (IOException e) {

System.out.println("連接創建失敗,發生IOException");

e.printStackTrace();

}

}

/**

* @description 釋放zookeeper連接

* @param

* @return

* @throws

*/

public void releaseConnection()

{

if(null != zk)

{

try {

this.zk.close();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

/**

* @description 創建節點

* @param

* @return

* @throws

*/

public boolean createPath(String path,String data)

{

try {

if(null == this.zk.exists(path, true))

{

System.out.println("節點創建成功,Path:"+this.zk.create(path, data.getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT));

}

} catch (KeeperException e) {

System.out.println("節點創建失敗 ,發生KeeperException");

e.printStackTrace();

}

catch (InterruptedException e) {

System.out.println("節點創建失敗 ,發生InterruptedException");

e.printStackTrace();

}

return true;

}

/**

* @description 讀取節點數據內容

* @param

* @return

* @throws

*/

public String readData(String path)

{

try {

System.out.println("獲取數據成功,path:"+path);

return new String(this.zk.getData(path, true, null));

} catch (KeeperException e) {

System.out.println("讀取數據失敗 ,發生KeeperException");

e.printStackTrace();

return "";

}

catch (InterruptedException e) {

System.out.println("讀取數據失敗 ,發生InterruptedException");

e.printStackTrace();

return "";

}

}

/**

* @description 更新節點數據內容

* @param

* @return

* @throws

*/

public boolean wirteData(String path,String data)

{

try {

System.out.println( "更新數據成功,path:" + path + ", stat: " +

this.zk.setData( path, data.getBytes(), -1 ) );

}catch (KeeperException e) {

System.out.println("更新數據失敗 ,發生KeeperException");

e.printStackTrace();

}

catch (InterruptedException e) {

System.out.println("更新數據失敗 ,發生InterruptedException");

e.printStackTrace();

}

return true;

}

/**

* @description 刪除指定節點

* @param

* @return

* @throws

*/

public void deleteNode(String path){

try {

this.zk.delete(path, -1);

System.out.println( "刪除節點 成功,path:" + path);

}catch (KeeperException e) {

System.out.println("刪除節點 失敗 ,發生KeeperException");

e.printStackTrace();

}

catch (InterruptedException e) {

System.out.println("刪除節點 失敗 ,發生InterruptedException");

e.printStackTrace();

}

}

/* (non-Javadoc)

* @see org.apache.zookeeper.Watcher#process(org.apache.zookeeper.WatchedEvent)

*/

@Override

public void process(WatchedEvent event) {

System.out.println("收到事件通知:"+event.toString()+"\n");

if(KeeperState.SyncConnected==event.getState())

{

countDownLatch.countDown();

}

}

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

{

ZooKeeperTest zkTest = new ZooKeeperTest();

zkTest.createConnection(CONNECTION_STRING, SEESSION_TIMEOUT);

//??if(zkTest.createPath(ZK_PATH, "節點初始內容"))

//??{

//???System.out.println("數據內容:"+zkTest.readData(ZK_PATH));

//???zkTest.wirteData(ZK_PATH, "節點更新內容");

//???System.out.println("數據內容:"+zkTest.readData(ZK_PATH));

//???zkTest.deleteNode(ZK_PATH);

//??}

zkTest.createPath(ZK_PATH, "節點初始內容");

zkTest.createPath("/configTest/a", "節點初始內容");

zkTest.createPath("/configTest/b", "節點初始內容");

System.out.println(zkTest.zk.getChildren(ZK_PATH, true));

zkTest.releaseConnection();

}

}

總結

以上是生活随笔為你收集整理的linux zk集群,linux ZooKeeper集群安装的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。