單機安裝ZooKeeper

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

zookeeper下載、安裝以及配置環境變量

本節介紹單機的zookeeper安裝,官方下載地址如下:

https://archive.apache.org/dist/zookeeper/

我這里使用的是3.4.11版本,所以找到相應的版本點擊進去,復制到.tar.gz的下載鏈接到Linux上進行下載。命令如下:

[root@study-01 ~]# cd /usr/local/src/
[root@study-01 /usr/local/src]# wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz

下載完成之后將其解壓到/usr/local/目錄下:

[root@study-01 /usr/local/src]# tar -zxvf zookeeper-3.4.11.tar.gz -C /usr/local/
[root@study-01 /usr/local/src]# cd ../zookeeper-3.4.11/
[root@study-01 /usr/local/zookeeper-3.4.11]# ls
bin        dist-maven       lib          README_packaging.txt  zookeeper-3.4.11.jar.asc
build.xml  docs             LICENSE.txt  recipes               zookeeper-3.4.11.jar.md5
conf       ivysettings.xml  NOTICE.txt   src                   zookeeper-3.4.11.jar.sha1
contrib    ivy.xml          README.md    zookeeper-3.4.11.jar
[root@study-01 /usr/local/zookeeper-3.4.11]#

安裝完成之后,我們就可以配置環境變量了。如下:

[root@study-01 ~]# vim /etc/profile  # 增加內容如下
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.11/
export PATH=$PATH:$ZOOKEEPER_HOME/bin
[root@study-01 ~]# source /etc/profile

zookeeper文件夾主要目錄介紹

  • bin:存放主要的一些常用目錄
  • conf:存放配置文件,一會我們需要修改zoo.cfg配置文件
  • contrib:附加的一些功能
  • dist-maven:mvn編譯后的目錄
  • docs:存放幫助文檔文件
  • lib:需要依賴的jar包
  • recipes:官方提供的案例demo代碼
  • src:源碼

zookeeper配置文件介紹,運行zk

進入conf目錄,拷貝官方提供的模板配置文件,然后進行編輯:

[root@study-01 /usr/local/zookeeper-3.4.11]# cd conf/
[root@study-01 /usr/local/zookeeper-3.4.11/conf]# cp zoo_sample.cfg zoo.cfg
[root@study-01 /usr/local/zookeeper-3.4.11/conf]# vim zoo.cfg  # 配置內容如下
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-3.4.11/dataDir
dataLogDir=/usr/local/zookeeper-3.4.11/dataLogDir
clientPort=2181
[root@study-01 /usr/local/zookeeper-3.4.11/conf]# cd ../
[root@study-01 /usr/local/zookeeper-3.4.11]# mkdir {dataDir,dataLogDir}

zoo.cfg配置:

  • tickTime:用于計算的時間單元。比如session超時:N * tickTime
  • initLimit:用于集群,允許從節點連接并同步到master節點的初始化連接時間,以tickTime的倍數來表示
  • syncLimit:用于集群,master主節點與從節點之間發送消息,請求和應答時間長度(心跳包機制)
  • dataDir:必須配置,數據文件所存放的目錄
  • dataLogDir:日志目錄,如果不配置就和dataDir共用同一個目錄
  • clientPort:連接服務器的端口,默認為2181

以上我們就完成了單機的zookeeper安裝與配置,接下來我們嘗試啟動一下zookeeper服務:

[root@study-01 ~]# zkServer.sh start  # 啟動zookeeper服務
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.11/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@study-01 ~]# netstat -lntp | grep java  # 檢查端口是否有正常監聽
tcp6       0      0 :::58056                :::*                    LISTEN      3057/java           
tcp6       0      0 :::2181                 :::*                    LISTEN      3057/java           
[root@study-01 ~]# zkServer.sh status  # 查看zookeeper服務狀態
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.11/bin/../conf/zoo.cfg
Mode: standalone
[root@study-01 ~]# ps aux |grep java  # 檢查服務進程
root       3057  0.9  0.9 5230652 79840 pts/0   Sl   04:26   0:01 /usr/local/jdk1.8/bin/java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /usr/local/zookeeper-3.4.11/bin/../build/classes:/usr/local/zookeeper-3.4.11/bin/../build/lib/*.jar:/usr/local/zookeeper-3.4.11/bin/../lib/slf4j-log4j12-1.6.1.jar:/usr/local/zookeeper-3.4.11/bin/../lib/slf4j-api-1.6.1.jar:/usr/local/zookeeper-3.4.11/bin/../lib/netty-3.10.5.Final.jar:/usr/local/zookeeper-3.4.11/bin/../lib/log4j-1.2.16.jar:/usr/local/zookeeper-3.4.11/bin/../lib/jline-0.9.94.jar:/usr/local/zookeeper-3.4.11/bin/../lib/audience-annotations-0.5.0.jar:/usr/local/zookeeper-3.4.11/bin/../zookeeper-3.4.11.jar:/usr/local/zookeeper-3.4.11/bin/../src/java/lib/*.jar:/usr/local/zookeeper-3.4.11/bin/../conf: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /usr/local/zookeeper-3.4.11/bin/../conf/zoo.cfg
root       3146  0.0  0.0 112680   976 pts/0    S+   04:29   0:00 grep --color=auto java
[root@study-01 ~]# 

然后再關閉zookeeper服務:

[root@study-01 ~]# zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.11/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
[root@study-01 ~]# 

能夠正常開/關后,就代表我們的zookeeper成功安裝好了。

?設置為服務:

vim?/etc/init.d/zookeeper

#!/bin/bash    
#chkconfig:2345 20 90    
#description:zookeeper    
#processname:zookeeper   export JAVA_HOME=/usr/local/jdk1.8
case $1 in    start) su root /usr/local/zookeeper-3.4.13/bin/zkServer.sh start;;    stop) su root /usr/local/zookeeper-3.4.13/bin/zkServer.sh stop;;    status) su root /usr/local/zookeeper-3.4.13/bin/zkServer.sh status;;    restart) su root /usr/local/zookeeper-3.4.13/bin/zkServer.sh restart;;    *) echo "require start|stop|status|restart" ;;    
esac

????chmod -R 755 /etc/init.d/zookeeper

? ? 使用service zookeeper start? / stop 即可完成 zookeeper 啟動/停止。

開機自啟:

? ? chkconfig -add zookeeper

????chkconfig zookeeper on

?

?

zk數據模型介紹

zookeeper基本數據模型:

  • 基本數據模型是一個樹形結構,類似于前端開發中的tree.js組件。或者像一個網站的目錄結構:

  • zk的數據模型也可以理解為linux/unix的文件目錄,如:/usr/local/...。如下圖:

  • 每一個節點都稱之為znode,它可以有子節點,也可以有數據
  • 每個節點分為臨時節點和永久節點,臨時節點在客戶端斷開后就會消失
  • 每個zk節點都有各自的版本號,可以通過命令行來顯示節點信息
  • 每當節點數據發生變化,那么該節點的版本號會累加(樂觀鎖)
  • 刪除/修改過時的節點,版本號不匹配則會報錯
  • 每個zk節點存儲的數據不宜過大,幾k即可
  • 節點可以設置權限acl,可以通過權限來控制用戶訪問

zk客戶端連接關閉服務端,查看znode

啟動zk服務端:

[root@study-01 ~]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.11/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@study-01 ~]# 

啟動zk客戶端連接:

[root@study-01 ~]# zkCli.sh

查看可以使用哪些命令:

[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd argsstat path [watch]set path data [version]ls path [watch]delquota [-n|-b] pathls2 path [watch]setAcl path aclsetquota -n|-b val pathhistory redo cmdnoprintwatches on|offdelete path [version]sync pathlistquota pathrmr pathget path [watch]create [-s] [-e] path data acladdauth scheme authquit getAcl pathclose connect host:port
[zk: localhost:2181(CONNECTED) 1]

查看znode,十分類似于在Linux下查看目錄的操作:

[zk: localhost:2181(CONNECTED) 2] ls /  # 根節點
[zookeeper]
[zk: localhost:2181(CONNECTED) 3] ls /zookeeper  # 父節點
[quota]
[zk: localhost:2181(CONNECTED) 4] ls /zookeeper/quota  # 子節點
[]
[zk: localhost:2181(CONNECTED) 5]

關閉zk客戶端連接:

[zk: localhost:2181(CONNECTED) 5] quit  # 退出
Quitting...
2018-04-21 17:48:35,534 [myid:] - INFO  [main:ZooKeeper@687] - Session: 0x1000034ed8d0000 closed
2018-04-21 17:48:35,536 [myid:] - INFO  [main-EventThread:ClientCnxn$EventThread@520] - EventThread shut down for session: 0x1000034ed8d0000
[root@study-01 ~]#

zookeeper的作用體現

  • master節點選舉,主節點掛了以后,從節點就會接手工作,并且保證這個節點是唯一的,這也是所謂的首腦模式,從而保證我們的集群是高可用的。
  • 統一配置文件管理,即只需要部署一臺服務器,則可以把相同的配置文件同步更新到其他所有服務器,此操作在云計算中用的特別多(假設某一臺機器修改了redis配置文件,就可以同步更新到其他機器上)
  • 發布與訂閱,類似消息隊列MQ(amq,rmq...),dubbo發布者把數據存在znode上,訂閱者會讀取這個數據。

  • 提供分布式鎖,分布式環境中也會有不同進程之間爭奪資源,這時候就需要鎖機制來保證數據的一致性,類似于多線程中的鎖。例如下圖中這種多個服務器訪問同一個文件時,就需要分布式鎖來讓他們進行排隊訪問:

  • 集群管理,集群中保證數據的強一致性。能夠讓客戶端訪問集群中任意一個服務器時,保證訪問到的數據都是一致的:

轉載于:https://my.oschina.net/langwanghuangshifu/blog/2231256

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389565.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389565.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389565.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

均線交易策略的回測 r_使用r創建交易策略并進行回測

均線交易策略的回測 rR Programming language is an open-source software developed by statisticians and it is widely used among Data Miners for developing Data Analysis. R can be best programmed and developed in RStudio which is an IDE (Integrated Development…

opencv入門課程:彩色圖像灰度化和二值化(采用skimage庫和opencv庫兩種方法)

用最簡單的辦法實現彩色圖像灰度化和二值化: 首先采用skimage庫(skimage庫現在在scikit_image庫中)實現: from skimage.color import rgb2gray import numpy as np import matplotlib.pyplot as plt""" skimage庫…

SVN中Revert changes from this revision 跟Revert to this revision

譬如有個文件,有十個版本,假定版本號是1,2,3,4,5,6,7,8,9,10。Revert to this revision: 如果是在版本6這里點擊“Revert to this rev…

歸 [拾葉集]

歸 心歸故鄉 想象行走在 鄉間恬靜小路上 讓那些疲憊的夢 都隨風飛散吧! 不去想那些世俗 人來人往 熙熙攘攘 秋日午后 陽光下 細數落葉 來日方長 世上的路 有詩人、浪子 歌詠吟唱 世上的人 在欲望、信仰中 彷徨 彷徨又迷茫 親愛的人兒 快結束那 無休止的獨自流浪 莫要…

instagram分析以預測與安的限量版運動鞋轉售價格

Being a sneakerhead is a culture on its own and has its own industry. Every month Biggest brands introduce few select Limited Edition Sneakers which are sold in the markets according to Lottery System called ‘Raffle’. Which have created a new market of i…

opencv:用最鄰近插值和雙線性插值法實現上采樣(放大圖像)與下采樣(縮小圖像)

上采樣與下采樣 概念: 上采樣: 放大圖像(或稱為上采樣(upsampling)或圖像插值(interpolating))的主要目的 是放大原圖像,從而可以顯示在更高分辨率的顯示設備上。 下采樣&#xff…

CSS魔法堂:那個被我們忽略的outline

前言 在CSS魔法堂:改變單選框顏色就這么吹毛求疵!中我們要模擬原生單選框通過Tab鍵獲得焦點的效果,這里涉及到一個常常被忽略的屬性——outline,由于之前對其印象確實有些模糊,于是本文打算對其進行稍微深入的研究^_^ …

初創公司怎么做銷售數據分析_初創公司與Faang公司的數據科學

初創公司怎么做銷售數據分析介紹 (Introduction) In an increasingly technological world, data scientist and analyst roles have emerged, with responsibilities ranging from optimizing Yelp ratings to filtering Amazon recommendations and designing Facebook featu…

opencv:灰色和彩色圖像的像素直方圖及直方圖均值化的實現與展示

直方圖及直方圖均值化的理論,實現及展示 直方圖: 首先,我們來看看什么是直方圖: 理論概念: 在圖像處理中,經常用到直方圖,如顏色直方圖、灰度直方圖等。 圖像的灰度直方圖就描述了圖像中灰度分…

mysql.sock問題

Cant connect to local MySQL server through socket /tmp/mysql.sock 上述提示可能在啟動mysql時遇到,即在/tmp/mysql.sock位置找不到所需要的mysql.sock文件,主要是由于my.cnf文件里對mysql.sock的位置設定導致。 mysql.sock默認的是在/var/lib/mysql,…

交換機的基本原理配置(一)

1、配置主機名 在全局模式下輸入hostname 名字 然后回車即可立馬生效(在生產環境交換機必須有自己唯一的名字) Switch(config)#hostname jsh-sw1jsh-sw1(config)#2、顯示系統OS名稱及版本信息 特權模式下,輸入命令 show version Switch#show …

opencv:卷積涉及的基礎概念,Sobel邊緣檢測代碼實現及Same(相同)填充與Vaild(有效)填充

濾波 線性濾波可以說是圖像處理最基本的方法,它可以允許我們對圖像進行處理,產生很多不同的效果。 卷積 卷積的概念: 卷積的原理與濾波類似。但是卷積卻有著細小的差別。 卷積操作也是卷積核與圖像對應位置的乘積和。但是卷積操作在做乘…

機器學習股票_使用概率機器學習來改善您的股票交易

機器學習股票Note from Towards Data Science’s editors: While we allow independent authors to publish articles in accordance with our rules and guidelines, we do not endorse each author’s contribution. You should not rely on an author’s works without seek…

BZOJ 2818 Gcd

傳送門 題解&#xff1a;設p為素數 &#xff0c;則gcd(x/p,y/p)1也就是說求 x&#xff0f;p以及 y&#xff0f;p的歐拉函數。歐拉篩前綴和就可以解決 #include <iostream> #include <cstdio> #include <cmath> #include <algorithm> #include <map&…

LeetCode387-字符串中的第一個唯一字符(查找,自定義數據結構)

一開始想用HashMap&#xff0c;把每個字符放進去&#xff0c;然后統計出現的次數。 使用LinkedHashMap的話&#xff0c;鍵值對的順序都是不會變的。 LinkedHashMap<Character,Integer> map new LinkedHashMap<>();map.put(i,1111);map.put(j,2222);map.put(k,3333…

r psm傾向性匹配_南瓜香料指標psm如何規劃季節性廣告

r psm傾向性匹配Retail managers have been facing an extraordinary time with the COVID-19 pandemic. But the typical plans to prepare for seasonal sales will be a new challenge. More seasonal products have been introduced over the years, making August the bes…

主成分分析:PCA的思想及鳶尾花實例實現

主成份分析算法PCA 非監督學習算法 PCA的實現&#xff1a; 簡單來說&#xff0c;就是將數據從原始的空間中轉換到新的特征空間中&#xff0c;例如原始的空間是三維的(x,y,z)&#xff0c;x、y、z分別是原始空間的三個基&#xff0c;我們可以通過某種方法&#xff0c;用新的坐…

兩家大型網貸平臺竟在借款人審核問題上“偷懶”?

python信用評分卡&#xff08;附代碼&#xff0c;博主錄制&#xff09; https://study.163.com/course/introduction.htm?courseId1005214003&utm_campaigncommission&utm_sourcecp-400000000398149&utm_mediumshare 放貸流量增加&#xff0c;逾期率也會隨之增加&…

解決 Alfred 每次開機都提示請求通訊錄權限的問題

安裝完 Alfred 以后&#xff0c;每次開機都會提示請求通訊錄權限&#xff0c;把設置里的通訊錄關掉也沒用&#xff0c;每次都提示又非常煩人&#xff0c;這里把解決方法記錄一下。 依次打開 應用程序 - Alfred 3.app - 右鍵顯示包內容 - Contents - Frameworks - Alfred Framew…

【轉】DCOM遠程調用權限設置

原文&#xff1a;https://blog.csdn.net/ervinsas/article/details/36424127 最近幾天被搞得焦頭爛額&#xff0c;由于DCOM客戶端程序是在32位系統下開發的&#xff0c;調試時DCOM服務端也是安裝在同一臺機器上&#xff0c;所有過程一直還算順利。可這次項目實施的時候&#xf…