zookeeper动物园管理员学习笔记
hbase
hadoop里面有:1)hdfs分布式存儲(chǔ) 2)yarn資源調(diào)度框架;3)hive數(shù)據(jù)倉(cāng)庫(kù)技術(shù),在線事物分析,延遲性很高,最終用的還是mr技術(shù),但是不再使用mr技術(shù)了
 4)hbase:建立在hadoop上面的數(shù)據(jù)庫(kù)技術(shù),隨機(jī)定位+實(shí)時(shí)讀寫,業(yè)務(wù)是分布式的,但是最終還是存儲(chǔ)在hasoop上面的
 要實(shí)現(xiàn)自動(dòng)容災(zāi),就需要引進(jìn)zookeeper
zookeeper
1.管理大量主機(jī)的協(xié)同服務(wù),輕量級(jí)的 2.分布式應(yīng)用,實(shí)現(xiàn)了分布式讀寫技術(shù) 3.zk提供的服務(wù)有哪些?1):名稱服務(wù)Naming service,按照名稱來區(qū)分集群中的主機(jī)2):配置管理Configuration management //針對(duì)新加入節(jié)點(diǎn)的最新化處理3):集群管理Cluster management //實(shí)時(shí)感知集群中節(jié)點(diǎn)的增減4):Leader election //leader follower5):Locking and synchronization service //修改時(shí)來 鎖定數(shù)據(jù),實(shí)現(xiàn)容災(zāi)6):Highly reliable data registry //節(jié)點(diǎn)宕機(jī)數(shù)據(jù)也是可用的zk的安裝(單機(jī)版,裝在s200上面)
1.jdk 2.下載zookeeper-3.4.10。tar.gz,下載地址:http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/ 3.tar開 4.符號(hào)連接,環(huán)境變量$>ln -s zookeeper-3.4.10 zk 5.配置zk,復(fù)制zoo.cfg.sample-->zoo.cfg[zk/conf/zoo.conf]# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial# synchronization phase can takeinitLimit=10# The number of ticks that can pass between# sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.# do not use /tmp for storage, /tmp here is just# example sakes.dataDir=/home/centos/zookeeper# the port at which the clients will connectclientPort=2181# the maximum number of client connections.# increase this if you need to handle more clients#maxClientCnxns=60## Be sure to read the maintenance section of the# administrator guide before turning on autopurge.## http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance## The number of snapshots to retain in dataDir#autopurge.snapRetainCount=3# Purge task interval in hours# Set to "0" to disable auto purge feature#autopurge.purgeInterval=1 6.啟動(dòng)zk服務(wù)器$>bin/zkServer.sh start 7.驗(yàn)證zk$>netstat -anop|grep 2181 8.啟動(dòng)客戶端連接到服務(wù)器$>zkCli.sh -server s200:2181 //就直接進(jìn)入到zk的命令行下面$zk]help //查看幫助$zk]quit //退出$zk]create /a tom //創(chuàng)建過程,每次創(chuàng)建都要寫數(shù)據(jù)$zk]ls / //得到[a,zookeeper]$zk]get /a //查看數(shù)據(jù)create /a/a1 jerry;get /a/a1 //查看數(shù)據(jù)set /a tomas ;//修改節(jié)點(diǎn)數(shù)據(jù)delete /a/a1; //刪除一個(gè)節(jié)點(diǎn)rmr /a //遞歸輸出節(jié)點(diǎn)zk架構(gòu)
1.Client 從server獲取信息,周期性發(fā)送給server,表示自己還活著 當(dāng)client連接時(shí),server回傳ack信息,如果客戶端沒有收到響應(yīng),就會(huì)重定向到另一個(gè)server 2.Server.zk集群的一員,向client提供所有service,向客戶端發(fā)送確認(rèn)信息表示服務(wù)器還活著 3.ensemble一組服務(wù)器,最小的節(jié)點(diǎn)數(shù)是3 4.leader.如果任何被連接的節(jié)點(diǎn)發(fā)生故障,自定恢復(fù),zk服務(wù)啟動(dòng)時(shí),完成leader的選舉 5.Follower.遵循leader管理的的服務(wù)節(jié)點(diǎn)znode
zk中的節(jié)點(diǎn),維護(hù)了stat的狀態(tài)。 由version number,Action Control List,Timestamp,Data length組成 version number:數(shù)據(jù)寫入過程的變化ACL //action control list,訪問控制列表節(jié)點(diǎn)類型
1.持久節(jié)點(diǎn):永久性節(jié)點(diǎn),client退出還存在 2.臨時(shí)節(jié)點(diǎn):在客戶端活躍時(shí)有效,斷開后自動(dòng)刪除。臨時(shí)節(jié)點(diǎn)不能有子節(jié)點(diǎn),在leader推選的時(shí)候扮演重要角色create -e /b/e1 tom0;//建立一個(gè)臨時(shí)節(jié)點(diǎn) 3.序列節(jié)點(diǎn):在節(jié)點(diǎn)名之后副駕10個(gè)數(shù)字,主要用于同步和鎖Session
Session中,會(huì)話的請(qǐng)求是按照先進(jìn)先出的順序執(zhí)行的,一旦client連接到server,那么這個(gè)session就建立了,那么sessionId就分配給客戶端了client以固定間隔向server發(fā)送心跳,表示session是valid的, zk集群如果在超時(shí)的時(shí)候,沒有收到心跳,就判定為client掛了 與此同時(shí),臨時(shí)節(jié)點(diǎn)就被刪除了Watch
觀察者模式 Client能夠通過watch機(jī)制在數(shù)據(jù)發(fā)生變化時(shí)收到通知 client能夠在read節(jié)點(diǎn)的時(shí)候設(shè)置觀察者。watch機(jī)制針對(duì)節(jié)點(diǎn)的變化會(huì)發(fā)送通知給注冊(cè)的客戶端程序 觀察模式只觸發(fā)一次。如果session過期,那么觀察者就會(huì)被刪除zk工作流程
 -----------------------、
 zk集群?jiǎn)?dòng)后,客戶端連接到其中的一個(gè)節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)可以是leader,也可以是follower
 連通之后,node會(huì)分配一個(gè)id給client,發(fā)送ack信息給客戶端,如果客戶端沒有收到ack確認(rèn),
 如果客戶端沒有收到ack,連接到另外一個(gè)節(jié)點(diǎn)
 客戶端周期性發(fā)送心跳信息給節(jié)點(diǎn)保證連接不會(huì)丟失
單機(jī)版
文件系統(tǒng)層級(jí)結(jié)構(gòu)存儲(chǔ) path:/home/centos/xxx=znode.節(jié)點(diǎn)上可以關(guān)聯(lián)數(shù)據(jù),數(shù)據(jù)可以是任何數(shù)據(jù),但是數(shù)據(jù)大小不能超過1m 節(jié)點(diǎn)的類型1.永久節(jié)點(diǎn)2.臨時(shí)節(jié)點(diǎn)3.序列節(jié)點(diǎn)數(shù)據(jù)狀態(tài):版本。leader+flower.
讀: 寫:leader推選過程(最小號(hào)選舉法)
1.所有節(jié)點(diǎn)在同一目錄下面創(chuàng)建臨時(shí)序列節(jié)點(diǎn) 2.zk會(huì)添加10位的序列號(hào)到路徑后面,并且znode會(huì)是xxx/xxx00000000001 3.對(duì)于給定的例子,在所有znode節(jié)點(diǎn)中,創(chuàng)建最小號(hào)的節(jié)點(diǎn)會(huì)成為leader,所有其他節(jié)點(diǎn)會(huì)成為follower 4.每個(gè)節(jié)點(diǎn)會(huì)觀察小于自己節(jié)點(diǎn)的主機(jī)(注冊(cè)觀察者) 5.如果leader掛了,對(duì)應(yīng)的znode就會(huì)被刪除了 6.觀察者就會(huì)收到通知配置完全分布式zk集群
1.挑選3臺(tái)主機(jī) s200-s202 2.每臺(tái)機(jī)器都安裝zk 3.配置zk配置文件s200-s202[/soft/zk/conf/zoo.cfg]autopurge.purgeInterval=1dataDir=/home/centos/zookeeper4.在每臺(tái)主機(jī)的/home/centos/zookeeper中添加myid,內(nèi)容分別是1,2,3 [s200] $>echo 1 >/home/centos/zookeeper/myid [s201] $>echo 2 >/home/centos/zookeeper/myid [s202] $>echo 3 >/home/centos/zookeeper/myid5.啟動(dòng)服務(wù)器集群 在每臺(tái)主機(jī)上執(zhí)行:$>zkServer.sh start 6.查看每臺(tái)服務(wù)器的狀態(tài)$>zkServer.sh status 7.修改zk的log目錄轉(zhuǎn)載于:https://www.cnblogs.com/stone-learning/p/9291039.html
總結(jié)
以上是生活随笔為你收集整理的zookeeper动物园管理员学习笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 秩、标量、矢量、矩阵
- 下一篇: selenium自动化测试浏览器驱动安装
