"Hadoopред ZooKeeper "Mail.Ru Group Technostream рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ" Hadoop рдореЗрдВ рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рддрд░рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ "

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк "рд╣реЛрджреЛрдк рдореЗрдВ рд▓реБрдбреЛрдкрд░" рдХреЗ рд╡реНрдпрд╛рдЦреНрдпрд╛рди рдХреЗ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░реЗрдВ "рд╣реИрдбреЛрдк рдореЗрдВ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рддрд░реАрдХреЗ"


рдЬрд╝реВрдХрд┐рдкрд░ рдХреНрдпрд╛ рд╣реИ, рд╣рдбреЛрдк рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЗрд╕рдХрд╛ рд╕реНрдерд╛рди рд╣реИред рд╡рд┐рддрд░рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдЪреНрдЪрд╛рдИред рдПрдХ рдорд╛рдирдХ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХреА рдпреЛрдЬрдирд╛ред рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рдордиреНрд╡рдп рдХреА рдЬрдЯрд┐рд▓рддрд╛ред рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдордиреНрд╡рдп рд╕рдорд╕реНрдпрд╛рдПрдВред рдЬрд╝реВрдХреАрдкрд░ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рдЕрдкрдирд╛рдпрд╛ рдЧрдпрд╛ред ZooKeeper рдбреЗрдЯрд╛ рдореЙрдбрд▓ред Znode рдЭрдВрдбреЗред рд╕рддреНрд░ред рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреАрдЖрдИ рдЖрджрд┐рдо (рд╡рд┐рдиреНрдпрд╛рд╕, рд╕рдореВрд╣ рд╕рджрд╕реНрдпрддрд╛, рд╕рд░рд▓ рддрд╛рд▓реЗ, рдиреЗрддрд╛ рдЪреБрдирд╛рд╡, рдЭреБрдВрдб рдкреНрд░рднрд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рддрд╛рд▓рд╛ рд▓рдЧрд╛рдирд╛)ред рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдХреАрдкрд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ред рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░рдХреАрдкрд░ рдбреА.рдмреА. Zabред рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВред




рдЖрдЬ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдХреАрдкрд░ рдХреАред рдпрд╣ рдЪреАрдЬ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рдпрд╣ рдХрд┐рд╕реА рднреА рдЕрдкрд╛рдЪреЗ Hadoop рдЙрддреНрдкрд╛рдж рдХреА рддрд░рд╣, рдПрдХ рд▓реЛрдЧреЛ рд╣реИред рдЗрд╕рдореЗрдВ рдПрдХ рдЖрджрдореА рдХреЛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


, , , . . - - . . 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. .


рдФрд░ рдпрд╣рд╛рдВ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдПрдХ рд╣реА рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХреА рдмреЗрд╡рдХреВрдлреА рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред рдпрд╣ рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рдЪреАрдЬ, рдпрджрд┐ рджреЛ рдмрд╛рд░ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреА рдПрдХ рд╣реА рд╕реНрдерд┐рддрд┐ рд╣реЛрдЧреА, рдЕрд░реНрдерд╛рдд рдЕрдиреБрд░реЛрдз рд╕реНрд╡рдпрдВ рдЗрд╕рд╕реЗ рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред рдФрд░ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЧрд┐рд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк рдСрдкрд░реЗрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХреЗрдВ, рдЬрд┐рд╕рд╕реЗ рдЙрд╕ рд╕рдордп рд╣реБрдП рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕реНрдерд┐рддрд┐ рд╕рдорд╛рди рд╣реЛ рдЬрд╛рдПрдЧреА, рдЕрд░реНрдерд╛рдд рдпрд╣ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЙрд╕реА рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрджреНрдпрддрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ, рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЕрдВрддрд┐рдо рд░рд╛рдЬреНрдпреЛрдВ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИрдВред









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


All Articles