Sugiro que vocĂŞ se familiarize com a decodificação da aula "Hadoop. ZooKeeper" da sĂ©rie "MĂ©todos de processamento distribuĂdo de grandes quantidades de dados no Hadoop"
O que Ă© o ZooKeeper, seu lugar no ecossistema Hadoop. A verdade sobre a computação distribuĂda. Esquema de um sistema distribuĂdo padrĂŁo. A complexidade da coordenação de sistemas distribuĂdos. Problemas tĂpicos de coordenação. Os princĂpios incorporados no design do ZooKeeper. Modelo de dados do ZooKeeper. Sinalizadores de Znode. Sessões. API do cliente Primitivas (configuração, associação ao grupo, bloqueios simples, eleição de lĂder, bloqueio sem efeito de rebanho). Arquitetura do ZooKeeper. ZooKeeper DB. ZAB. Manipulador de solicitações.

Hoje vamos falar sobre o ZooKeeper. Isso Ă© muito Ăştil. Como qualquer produto Apache Hadoop, possui um logotipo. Retrata um homem.
, , , . . - - . . 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. .
E aqui vale a pena notar que a idempotĂŞncia de atualizações para a mesma operação Ă© garantida. O que Ă© isso? Isso, se executado duas vezes, terá o mesmo estado, ou seja, a solicitação em si nĂŁo será alterada. E vocĂŞ precisa fazer isso para que, em caso de queda, possa reiniciar a operação, revertendo as alterações que caĂram no momento. Nesse caso, o estado do sistema se tornará o mesmo, ou seja, nĂŁo deve ser tal que uma sĂ©rie do mesmo, por exemplo, processos de atualização, leve a diferentes estados finais do sistema.







