主頁 >  其他 > zookeeper 安裝部署與簡單使用

zookeeper 安裝部署與簡單使用

2022-01-05 21:07:29 其他

官網:

https://www.apache.org/dyn/closer.cgi/zookeeper/

ZooKeeper 是 Apache 的一個頂級專案,為分布式應用提供高效、高可用的分布式協調服務,提供了諸如資料發布/訂閱、負載均衡、命名服務、分布式協調/通知和分布式鎖等分布式基礎服務,由于 ZooKeeper 便捷的使用方式、卓越的性能和良好的穩定性,被廣泛地應用于諸如 Hadoop、HBase、Kafka 和 Dubbo 等大型分布式系統中,

Zookeeper 有三種運行模式:單機模式、偽集群模式和集群模式,

**單機模式:**這種模式一般適用于開發測驗環境,一方面我們沒有那么多機器資源,另外就是平時的開發除錯并不需要極好的穩定性,

**集群模式:**一個 ZooKeeper 集群通常由一組機器組成,一般 3 臺以上就可以組成一個可用的 ZooKeeper 集群了,組成 ZooKeeper 集群的每臺機器都會在記憶體中維護當前的服務器狀態,并且每臺機器之間都會互相保持通信,

**偽集群模式:**這是一種特殊的集群模式,即集群的所有服務器都部署在一臺機器上,當你手頭上有一臺比較好的機器,如果作為單機模式進行部署,就會浪費資源,這種情況下,ZooKeeper 允許你在一臺機器上通過啟動不同的埠來啟動多個 ZooKeeper 服務實體,以此來以集群的特性來對外服務,

1. 安裝

  • 下載

    下載zookeeper安裝包:https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz

    下載完成后,我們將其上傳至服務器中,然后通過tar -zxvf命令解壓,

    tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz
    

    image-20220104114941358

  • 配置

    初次使用zookeeper,需要將conf目錄下的zoo_sample.cfg檔案copy一份重命名為zoo.cfg

    修改dataDir目錄,dataDir表示日志檔案存放的路徑;還可以自定義修改埠啥的,詳細配置可以到官網查看,

    image-20220104115455715

image-20220104120158314

  • 啟動

    相關的腳本都位于bin目錄下,常用腳本如下:

    1. 啟動ZK服務:

      bin/zkServer.sh start

    2. 查看ZK服務狀態:

      bin/zkServer.sh status

    3. 停止ZK服務:

      bin/zkServer.sh stop

    4. 重啟ZK服務:

      bin/zkServer.sh restart

    5. 連接服務器

      zkCli.sh -timeout 0 -r -server ip:port

      一般情況直接zkCli.sh即可,默認連接本地服務,

2. 常用操作命令

  • 創建節點

    create [-s] [-e] [-c] [-t ttl] path [data] [acl]
    

    [-s]:sequential 序列化的,即可以重復創建,在路徑后面加上序列號

    [-e]:ephemeral 臨時的,斷開連接后自動失效

    [-c] :表示container node(容器節點),

    [-t ttl]:表示TTL Nodes(帶超時時間的節點)

    [acl]:是針對這個節點創建一個權限的,如果創建權限了,則擁有權限的才可以訪問

    在同一層級下不能重復

    image-20220104123322667

  • 洗掉節點

    洗掉節點,-v表示版本號,實作樂觀鎖機制

    delete [-v version] path
    

    如果需要洗掉全部節點則使用 deleteall 關鍵字即可,

  • 更新節點

    給節點賦值 -s回傳節點狀態

    set [-s] [-v version] path data
    
    # set /person/tom 18
    
  • 查詢節點資訊

    獲取指定節點的值

    get [-s] [-w] path
    # get /person/tom
    

    image-20220104123438838

3. Zookeeper的資料模型

如果我們把zookeeper當成是一個記憶體資料庫的話,那么crud就是對zookeeper記憶體資料庫進行一個資料的增刪改查操作,那zookeeper的資料結構是什么樣的呢?如下圖所示,zookeeper的視圖結構和標準的檔案系統非常類似,每一個節點稱之為ZNode, 是zookeeper的最小單元,每個znode上都可以保存資料以及掛載子節點,構成一個層次化的樹形結構

image-20220104123802453

4. 節點型別

Zookeeper中包含4種型別的節點,分別說明如下,

4.1 持久化節點

持久化節點可以細分為兩種節點,分別是:

  • PERSISTENT:持久化,不會隨客戶端的斷開而自動洗掉,默認型別,如下圖所示

    image-20220104124659751

  • PERSISTENT_SEQUENTIAL:帶序號的持久化,znode的名字將被附加一個單調遞增的數字,如下圖所示

    image-20220104124738801

4.2 臨時節點

  • EPHEMERAL:臨時節點,當客戶端斷開時自動洗掉,如下圖所示,如果該Client創建了/Server1和/Server2這兩個節點,當Client的session斷開后,這兩個節點會被Zookeeper自動洗掉,

    image-20220104124824303

  • EPHEMERAL_SEQUENTIAL:帶序號的臨時節點,znode的名字將被附加一個單調遞增的數字,如下圖所示

    image-20220104125153037

4.3 容器節點 Container

CONTAINER:container節點是一個特殊用途的節點,它是為Leader、Lock等操作而設計的節點型別,它的作用是: 當容器節點的最后一個子節點被洗掉后,容器節點將會被標注并且在一段時間后洗掉,

由于容器節點存在這個特性,所以當我們在容器節點下創建一個子節點時,需要捕獲KeeperException.NoNodeException例外,如果捕獲到這個例外,就需要重新創建容器節點,

4.4 TTL節點

如果某個節點設定為TTL節點型別,那么這個節點在指定TTL時間(單位為毫秒)段內沒有修改并且沒有子節點時,該節點會在一段時間后被洗掉,

  • PERSISTENT_WITH_TTL:zookeeper的擴展型別,如果znode在給定的TTL內沒有被修改,它將在沒有子節點時被洗掉,要想使用該型別,必須在zookeeper的bin/zkService.sh中的啟動zookeeper的java環境中設定環境變數zookeeper.extendedTypesEnabled=true(具體做法在下邊),否則KeeperErrorCode = Unimplemented for /**,

    設定zookeeper.extendedTypesEnabled=true

    打開zookeeper bin/zkServer.sh(win是zkService.cmd),修改啟動zookeeper的命令,加上-Dzookeeper.extendedTypesEnabled=true,也就是設定java的一個環境變數,

    nohup "$JAVA" $ZOO_DATADIR_AUTOCREATE "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" \ "-Dzookeeper.log.file=${ZOO_LOG_FILE}" "- Dzookeeper.extendedTypesEnabled=true" "- Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \ -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError='kill -9 %p' \ -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &
    
  • PERSISTENT_SEQUENTIAL_WITH_TTL:同上,是不過是帶序號的,

5. 節點特性

  • 同級節點不能存在相同名字的節點
  • 臨時節點不能存在位元組點

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/403914.html

標籤:其他

上一篇:hadoop 實作資料排序

下一篇:jdk1.8安裝教程,跟著步驟來 安裝失敗你來打我

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more