"Hadoop. ZooKeeper “aus der Mail.Ru Group Technostream-Reihe„ Verteilte Verarbeitung großer Datenmengen in Hadoop “

Ich schlage vor, dass Sie sich mit der Dekodierung der Vorlesung "Hadoop. ZooKeeper" aus der Reihe "Methoden der verteilten Verarbeitung großer Datenmengen in Hadoop" vertraut machen.


Was ist ZooKeeper, sein Platz im Hadoop-Ökosystem? Die Wahrheit über verteiltes Rechnen. Schema eines verteilten Standardsystems. Die Komplexität der Koordination verteilter Systeme. Typische Koordinationsprobleme. Die Prinzipien, die im Design von ZooKeeper enthalten sind. ZooKeeper-Datenmodell. Znode-Flaggen. Sitzungen. Client-API Primitive (Konfiguration, Gruppenmitgliedschaft, einfache Sperren, Führerwahl, Sperren ohne Herdeneffekt). ZooKeeper-Architektur. ZooKeeper DB. ZAB. Handler anfordern.




Lassen Sie uns heute über ZooKeeper sprechen. Dieses Ding ist sehr nützlich. Es hat wie jedes Apache Hadoop-Produkt ein Logo. Es zeigt einen Mann.


, , , . . - - . . ZooKeeper – , . , , .


, , . , MapReduce , , . , , . MapReduce - , . MapReduce , , , . , ZooKeeper.


, Hadoop, Yahoo! Apache. HBase. JIRA HBase, , - , . . . ZooKeeper, , , , . , Hadoop. , , , .



, - , . , , . , , ZooKeeper, . . – , . HDFS, MapReduce , . , ZooKeeper. - , .



? , , , . , , , , , , - , . TCP, , . TCP . . - . . , , . , - , , . .


, , latency. , . Latency – - , , .


. – . -, , , . , . . . , , . .


. , - . , - Hadoop. . , . , - , , . - . .


, , -, . , , cat . – Vim . , . Vim , , , - . , , .



, .


, , , . – ? , . , ? , , - . - , , - , - . , -, - , ?


, . , – , - .


, , , - , – ? - race condition, , , - ? - . .


– . , , , .


, , , , . , , , . - , , , . , , . . . . - , , .


ZooKeeper. – , , , .



, . , – HDFS, HBase. -, , slave-. , , , .



– Coordination Service, . . , - backup stanby , . , . backup. - , , backup. Coordination Service. , .



– , . , . - , . , - slaves, , , . .



, , -slaves, . , . , Cassandra, .


, . .



- , , , , . – , , , . - , . . .



(), , , .



– partial failures. , , - , , , , , . . .


, . – , . . , .


ZooKeeper , .



, , , , , . , shared-nothing. , , , , , .


, shared memory . context switch, . . , , .



, , , . - . , , , , , , . , , , , . , .


. , , , , . . , .


. , , .


? , ? , , , . -, , - , - . - , , - . , . . , , .


– group membership. - , – , . , , , , . , , .


– leader election, , . – , - , . , , . , , , .


– mutually exclusive access. . , , - , , , . - . , , -. , , locks.


ZooKeeper . , .



. - , - . , , - . .


.


- , , .



ZooKeeper . – standalone, . . , . – 100 , , 100 . , ZooKeeper. high availability. ZooKeeper . , . , . – , , – . , .


. , , . .


, - . - . , , , . . – . – -? . watch mechanism, , - . .



Client – , ZooKeeper.


Server – ZooKeeper.


Znode – ZooKeeper. znode ZooKeeper , .


. – update/write, - . .


, , , ZooKeeper.



ZooKeeper . , . , . znodes.


znode - , , , 10 . znode - .



Znode . . znode , .


. – ephemeral flag. Znode - . , . , . , - . , .


– sequential flag. znode. , 1_5. , p_1, – p_2. , , , , – sequential.


znode. , .



– watch flag. , - . , . ZooKeeper , . , - . , - , .


, . , , .



. , , . - .


- . , - . , , .



, API . , , create znode . znode, . - , . . znode.


– . , , znode . , znode, , , , .


, «-1».



– znode. true, , false.


flag watch, .


flag , . .


getData. , znode . flag watch. , . , , .



SetData. version. , znode .


«-1», .


getChildren. znode, . , flag watch.


sync , , .


, , , write, - , , , . , , , , .



. . , .


, , update/write, . create, setData, sync, delete. read – exists, getData, getChildren.



, . , -. . , . . ZooKeeper? , ? , , , , ?


ZooKeeper . , znode. , , . , . , , .


getData . true. - , , , , . , - , true. , .


SetData. , «-1», . . , , , . , . , , , . , , , - . , , . , , . .



group membership. , , . , . -, - , .


? workers create. . sequential , . children , , .




, Java-. , main. , . host, , . . . – .


? API, . . ZooKeeper. hosts. , , 5 . , connectedSignal. , . , - . persistent. , , . . . , . , close , . , - , ZooKeeper .



- ? . , - , . , , lock1. , , lock . , getData , . . , watcher , , . . , lock, , lock , , . . . , . lock , , - .



, . , . ? , . . , . . - , . , .


- , , , . , . - , , .


, , herd effect, . . , , , , , .



, . , lock, hert effect. , id lock. , lock , , , , lock. , lock. , id, lock, . , .


id, lock, watcher , - . . . lock. , id lock, . , lock, - .



ZooKeeper? 4 . – Request. ZooKeeper Atomic Broadcast. Commit Log, . In-memory Replicated DB, . . , .


, Request Processor. In-memory .



. instances ZooKeeper .


, Commit log. , , , log . .



ZooKeeper Atomic Broadcast – , .


ZAB ZooKeeper. , - . , . , . , , , . . broadcasting , .


write request. , transactional update. .


Und hier ist anzumerken, dass die Idempotenz von Updates für denselben Vorgang garantiert ist. Was ist das? Wenn dieses Ding zweimal ausgeführt wird, hat es den gleichen Zustand, d. H. Die Anforderung selbst ändert sich nicht davon. Und Sie müssen dies tun, damit Sie im Falle eines Sturzes den Vorgang neu starten können, um die Änderungen zu übernehmen, die im Moment abgefallen sind. In diesem Fall wird der Status des Systems derselbe, dh es sollte nicht so sein, dass eine Reihe derselben, beispielsweise Aktualisierungsprozesse, zu unterschiedlichen Endzuständen des Systems führt.









Source: https://habr.com/ru/post/undefined/


All Articles