"Hadoop. ZooKeeper ”da série Technostream do Mail.Ru Group“ Processamento Distribuído de Dados Grandes no Hadoop ”

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.









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


All Articles