Β«Hadoop. ZooKeeperΒ» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group Β«ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² HadoopΒ»

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΎΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ "Hadoop. ZooKeeper" ΠΈΠ· сСрии "ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop"

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ZooKeeper, Π΅Π³ΠΎ мСсто Π² экосистСмС Hadoop. НСправда ΠΎ распрСдСлённых вычислСниях. Π‘Ρ…Π΅ΠΌΠ° стандартной распрСдСлённой систСмы. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ распрСдСлённых систСм. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹, Π·Π°Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π² Π΄ΠΈΠ·Π°ΠΉΠ½ ZooKeeper. МодСль Π΄Π°Π½Π½Ρ‹Ρ… ZooKeeper. Π€Π»Π°Π³ΠΈ znode. БСссии. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠΉ API. ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹ (configuration, group membership, simple locks, leader election, locking Π±Π΅Π· herd effect). АрхитСктура ZooKeeper. ZooKeeper DB. ZAB. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ запросов.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

БСгодня ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΡ€ΠΎ ZooKeeper. Π­Ρ‚Π° ΡˆΡ‚ΡƒΠΊΠ° ΠΎΡ‡Π΅Π½ΡŒ полСзная. Π£ Π½Π΅Π³ΠΎ, ΠΊΠ°ΠΊ Ρƒ любого ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Apache Hadoop, Π΅ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏ. На Π½Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ.

Π”ΠΎ этого ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Π² основном, ΠΊΠ°ΠΊ Ρ‚Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠ°ΠΊ ΠΈΡ… Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, Ρ‚. Π΅. ΡƒΠΆΠ΅ ΠΈΠΌΠΈ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΊΠ°ΠΊ-Ρ‚ΠΎ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. А сСгодня Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎ построСниС распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. И ZooKeeper – это ΠΎΠ΄Π½Π° ΠΈΠ· Ρ‚Π΅Ρ… Π²Π΅Ρ‰Π΅ΠΉ, которая позволяСт это Π΄Π΅Π»ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎ Π½Π΅ΠΊΠΈΠΉ сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Π½Π΅ΠΊΠΎΠΉ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ взаимодСйствия процСссов Π² распрСдСлСнных систСмах, Π² распрСдСлСнных прилоТСниях.

ΠŸΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚Π°ΠΊΠΈΡ… прилоТСниях становится всС большС ΠΈ большС с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π΄Π½Π΅ΠΌ, это Ρ‚ΠΎ, ΠΎ Ρ‡Π΅ΠΌ наш курс. Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны, MapReduce ΠΈ этот Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ позволяСт Π½ΠΈΠ²Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ программиста ΠΎΡ‚ написания ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ взаимодСйствиС, координация процСссов. Но с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ этого всС Ρ€Π°Π²Π½ΠΎ Π½Π΅ придСтся Π΄Π΅Π»Π°Ρ‚ΡŒ. НС всСгда MapReduce ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ случаи, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСльзя Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° этом. Π’ Ρ‚ΠΎΠΌ числС ΠΈ сам MapReduce ΠΈ ΠΊΡƒΡ‡Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π°ΠΏΠ°Ρ‡Π΅Π²Ρ‹Ρ…, ΠΎΠ½ΠΈ, ΠΏΠΎ сути, Ρ‚ΠΎΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ распрСдСлСнными прилоТСниями. И для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, написали ZooKeeper.

Как всС прилоТСния, связанныС с Hadoop, ΠΎΠ½ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Yahoo! БСйчас это Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Apache. Оно Π½Π΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ развиваСтся ΠΊΠ°ΠΊ HBase. Если Π²Ρ‹ Π·Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π² JIRA HBase, Ρ‚ΠΎ Ρ‚Π°ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь появляСтся ΠΊΡƒΡ‡Π° тасков Π½Π° Π±Π°Π³ΠΈ, ΠΊΡƒΡ‡Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚. Π΅. постоянно ΠΈΠ΄Π΅Ρ‚ Тизнь Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. А ZooKeeper, с ΠΎΠ΄Π½ΠΎΠΉ стороны, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простой ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Π° с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, это обСспСчиваСт Π΅Π³ΠΎ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ. И Π΅Π³ΠΎ довольно Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, поэтому ΠΎΠ½ стал стандартом Π² прилоТСниях Π² Ρ€Π°ΠΌΠΊΠ°Ρ… экосистСмы Hadoop. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я ΠΏΠΎΠ΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΅Π³ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ ΠΊΠ°ΠΊ ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Π­Ρ‚ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°, ΠΈΠ· ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π»Π΅ΠΊΡ†ΠΈΠΈ, которая Ρƒ нас Π±Ρ‹Π»Π°. МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»Π΅Π½ всСму Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎ этого рассматривали. И всС, Ρ‡Ρ‚ΠΎ здСсь ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Π² Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ стСпСни Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ZooKeeper, Ρ‚. Π΅. – это сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ всС эти ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹. Ни HDFS, Π½ΠΈ MapReduce Π½Π΅ ΠΏΠΈΡˆΡƒΡ‚ своих ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… сСрвисов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ для Π½ΠΈΡ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π±Ρ‹. БоотвСтствСнно, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ZooKeeper. И это ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π²Π΅Ρ‰ΠΈ, связанныС с ошибками.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

ΠžΡ‚ΠΊΡƒΠ΄Π° всС это появляСтся? Казалось Π±Ρ‹, запустили Π΄Π²Π° прилоТСния ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…, соСдинили ΠΈΡ… ΡˆΠ½ΡƒΡ€ΠΊΠΎΠΌ ΠΈΠ»ΠΈ Π² сСтку, ΠΈ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Но ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π‘Π΅Ρ‚ΡŒ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½Π°, Π° Ссли Π±Ρ‹ Π²Ρ‹ сниффили Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΈΠ»ΠΈ посмотрСли, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ происходит Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, ΠΊΠ°ΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π² Π‘Π΅Ρ‚ΠΈ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ часто ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ, ΠΏΠ΅Ρ€Π΅ΠΏΠΎΡΡ‹Π»Π°ΡŽΡ‚ΡΡ. НС Π΄Π°Ρ€ΠΎΠΌ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ TCP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅ΠΊΡƒΡŽ сСссию, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ доставку сообщСний. Но Π² любом случаС Π½Π΅ всСгда Π΄Π°ΠΆΠ΅ TCP ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΏΠ°ΡΠ°Ρ‚ΡŒ. Π£ всСго Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚. Π‘Π΅Ρ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ просто Π½Π° ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя ΠΎΡ‚Π²Π°Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ. Она ΠΌΠΎΠΆΠ΅Ρ‚ просто ΠΌΠΈΠ³Π°Ρ‚ΡŒ. И это всС ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ нСльзя ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π‘Π΅Ρ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½Π°. Π­Ρ‚ΠΎ основноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ написания ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΈΠ»ΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠΌ ΡΡƒΠΏΠ΅Ρ€ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π³Π΄Π΅ Π‘Π΅Ρ‚ΠΈ Π½Π΅Ρ‚, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ надСТная шина ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² памяти. И это ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅.

ΠšΡ€ΠΎΠΌΠ΅ всСго ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π‘Π΅Ρ‚ΡŒ, Π΅ΡΡ‚ΡŒ всСгда нСкая latency. Π£ диска ΠΎΠ½Π° Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ, Π½ΠΎ Ρƒ Π‘Π΅Ρ‚ΠΈ ΠΎΠ½Π° большС. Latency – это ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ нСбольшим, Ρ‚Π°ΠΊ ΠΈ довольно сущСствСнным.

Вопология Π‘Π΅Ρ‚ΠΈ мСняСтся. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ топология – это Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ нашСго сСтСвого оборудования. Π•ΡΡ‚ΡŒ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Ρ‹, Π΅ΡΡ‚ΡŒ стойки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΌ стоят, Π΅ΡΡ‚ΡŒ свСчи. ВсС это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ, ΠΏΠ΅Ρ€Π΅Π΅Π·ΠΆΠ°Ρ‚ΡŒ ΠΈ Ρ‚. Π΄. Π­Ρ‚ΠΎ всС Ρ‚ΠΎΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ. ΠœΠ΅Π½ΡΡŽΡ‚ΡΡ айпишники, ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ€ΠΎΡƒΡ‚ΠΈΠ½Π³, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Ρƒ нас Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. Π­Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ.

Π‘Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² ΠΏΠ»Π°Π½Π΅ оборудования. Из ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΌΠΎΠ³Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ наши сСтСвыС ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Π»ΡŽΠ±ΡΡ‚ пСриодичСски ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π° свСчах. Π’Π½Π΅Π·Π°ΠΏΠ½ΠΎ Π²Ρ‹ΡˆΠ»Π° новая ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ°, ΠΈ ΠΈΡ… Π½Π΅ особСнно интСрСсуСт ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ кластСр Hadoop. Π£ Π½ΠΈΡ… своя Ρ€Π°Π±ΠΎΡ‚Π°. Для Π½ΠΈΡ… Π³Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π‘Π΅Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π»Π°. БоотвСтствСнно, ΠΎΠ½ΠΈ хотят Ρ‚Π°ΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π»ΠΈΡ‚ΡŒ, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ Π½Π° своСм ΠΆΠ΅Π»Π΅Π·Π΅, ΠΏΡ€ΠΈ этом ΠΆΠ΅Π»Π΅Π·ΠΊΠΈ Ρ‚ΠΎΠΆΠ΅ пСриодичСски ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ. ВсС это ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ. ВсС это влияСт Π½Π° нашС распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ люди, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с большим объСмом Π΄Π°Π½Π½Ρ‹Ρ…, ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π‘Π΅Ρ‚ΡŒ бСзграничная. Если Ρ‚Π°ΠΌ Π»Π΅ΠΆΠΈΡ‚ Ρ„Π°ΠΉΠ» Π² нСсколько Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΅Π³ΠΎ Π²Π·ΡΡ‚ΡŒ ΠΊ сСбС Π½Π° сСрвСр ΠΈΠ»ΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cat ΠΈ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ. Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΈΠ· ошибок – это Π² Vim ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π»ΠΎΠ³ΠΈ. Никогда Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΠΉΡ‚Π΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это ΠΏΠ»ΠΎΡ…ΠΎ. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Vim всС стараСтся Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, всС Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, особСнно, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΠΏΠΎ этому Π»ΠΎΠ³Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚, Π½ΠΎ ΠΈΡ… стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

ΠŸΡ€ΠΎΡ‰Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ с ΠΎΠ΄Π½ΠΈΠΌ процСссором.

Когда Ρƒ нас наша систСма растСт, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ всС это ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΡ‚ΡŒ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π½ΠΎ ΠΈ Π½Π° кластСрС. Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос – ΠΊΠ°ΠΊ это Π΄Π΅Π»ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ? Наши прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π°ΠΆΠ΅ Π½Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой, Π½ΠΎ ΠΌΡ‹ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сСрвСрах запустили нСсколько процСссов. И ΠΊΠ°ΠΊ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС Ρƒ Π½ΠΈΡ… ΠΈΠ΄Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ? Они, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΏΠΎ Π‘Π΅Ρ‚ΠΈ. Они Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΊΡƒΠ΄Π°-Ρ‚ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎ своСм состоянии, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π² Π»ΠΎΠ³, ΠΏΠΎΡ‚ΠΎΠΌ этот Π»ΠΎΠ³ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ Π³Π΄Π΅-Ρ‚ΠΎ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Плюс Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ процСсс Ρ€Π°Π±ΠΎΡ‚Π°Π»-Ρ€Π°Π±ΠΎΡ‚Π°Π», Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ Π² Π½Π΅ΠΌ появилась какая-Ρ‚ΠΎ ошибка ΠΈΠ»ΠΈ ΠΎΠ½ ΡƒΠΏΠ°Π», Ρ‚ΠΎ ΠΊΠ°ΠΊ быстро ΠΌΡ‹ ΠΎΠ± этом ΡƒΠ·Π½Π°Π΅ΠΌ?

ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ всС это быстро ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ – это ограничСнная Π²Π΅Ρ‰ΡŒ, которая позволяСт ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π²Π΅Ρ‰ΠΈ Π½Π° самом Π²Ρ‹ΡΡˆΠ΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅.

Когда ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ наши процСссы Π½Π°Ρ‡Π°Π»ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚ΠΎ Ρ‚ΡƒΡ‚ Ρ‚ΠΎΠΆΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос – ΠΊΠ°ΠΊ это Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ? НС Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ race condition, Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π»ΠΈ ΠΎΠ½ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°, доходят Π»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Π½Π΅ тСряСтся Π»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎ Π΄ΠΎΡ€ΠΎΠ³Π΅? Надо Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΈ Ρ‚. Π΄.

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΡ всСх эти процСссов – Π²Π΅Ρ‰ΡŒ Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Π°Ρ. И заставляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π½Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π΅Ρ‰Π΅ Π½ΠΈΠΆΠ΅, ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ систСмы Π»ΠΈΠ±ΠΎ с нуля, Π»ΠΈΠ±ΠΎ Π½Π΅ совсСм с нуля, Π½ΠΎ это Π½Π΅ Ρ‚Π°ΠΊ просто.

Если Π²Ρ‹ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ криптографичСский Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ, Ρ‚ΠΎ Π²ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ ΠΈ Π²Ρ‹ΠΊΠΈΠ½ΡŒΡ‚Π΅ Π΅Π³ΠΎ сразу, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, скорСС всСго, ΠΎΠ½ Ρƒ вас Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π’ Π½Π΅ΠΌ, скорСС всСго, найдСтся ΠΊΡƒΡ‡Π° ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ. Ни Π² ΠΊΠΎΠ΅ΠΌ случаС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ для Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠ³ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, скорСС всСго, ΠΎΠ½ нСустойчивым Π±ΡƒΠ΄Π΅Ρ‚. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ всС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ, ΠΎΠ½ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ. Π’ Π½Π΅ΠΌ ищутся ошибки сообщСством. Π­Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π΅ΠΌΠ°. И Ρ‚ΠΎ ΠΆΠ΅ самоС ΠΈ здСсь. Если Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ процСссов ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ этого Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это довольно слоТно ΠΈ Π·Π°Π²ΠΎΠ΄ΠΈΡ‚ вас Π½Π° Π·Ρ‹Π±ΠΊΠΈΠΉ ΠΏΡƒΡ‚ΡŒ постоянных поисков ошибок.

ΠœΡ‹ сСгодня Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ZooKeeper. Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны – это Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, это сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Тизнь ΠΈ максимально ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΡŽ Π½Π°ΡˆΠΈΡ… процСссов.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

ВспоминаСм, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ стандартная распрСдСлСнная систСма. Π­Ρ‚ΠΎ Ρ‚ΠΎ, ΠΎ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ – это HDFS, HBase. Π•ΡΡ‚ΡŒ ΠœΠ°ΡΡ‚Π΅Ρ€-процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ управляСт Π²ΠΎΡ€ΠΊΠ΅Ρ€Π°ΠΌΠΈ, slave-процСссами. Он занимаСтся ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ распрСдСлСниСм Π·Π°Π΄Π°Ρ‡, пСрСзапуском Π²ΠΎΡ€ΠΊΠ΅Ρ€ΠΎΠ², запуском Π½ΠΎΠ²Ρ‹Ρ…, распрСдСлСниСм Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Π‘ΠΎΠ»Π΅Π΅ продвинутая Π²Π΅Ρ‰ΡŒ – это Coordination Service, Ρ‚. Π΅. саму Π·Π°Π΄Π°Ρ‡Ρƒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ вынСсти Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс, плюс ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ backup ΠΈΠ»ΠΈ stanby ΠœΠ°ΡΡ‚Π΅Ρ€Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠœΠ°ΡΡ‚Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΠ°ΡΡ‚ΡŒ. А Ссли ΠœΠ°ΡΡ‚Π΅Ρ€ ΡƒΠΏΠ°Π΄Π΅Ρ‚, Ρ‚ΠΎ систСма наша Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. ΠœΡ‹ запускаСм backup. КакиС-Ρ‚ΠΎ состояния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ Ρƒ ΠœΠ°ΡΡ‚Π΅Ρ€Π°, Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° backup. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ€ΡƒΡ‡ΠΈΡ‚ΡŒ Coordination Service. Но Π½Π° этой схСмС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ Π²ΠΎΡ€ΠΊΠ΅Ρ€ΠΎΠ² занимаСтся сам ΠœΠ°ΡΡ‚Π΅Ρ€, здСсь сСрвис занимаСтся ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ дСйствий ΠΏΠΎ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Π‘ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ – это ΠΊΠΎΠ³Π΄Π° всСй ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ занимаСтся наш сСрвис, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈ дСлаСтся. Он Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. А Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΌΡ‹ ΠΎΠ± этом ΡƒΠ·Π½Π°Π΅ΠΌ ΠΈ пытаСмся эту ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ. Π’ любом случаС Ρƒ нас остаСтся ΠœΠ°ΡΡ‚Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠ°ΠΊ-Ρ‚ΠΎ взаимодСйствуСт Π΅Ρ‰Π΅ со slaves, Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΈΠΉ сСрвис ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, сообщСния ΠΈ Ρ‚. Π΄.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ продвинутая схСма, ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π½Π΅Ρ‚ ΠœΠ°ΡΡ‚Π΅Ρ€Π°, всС Π½ΠΎΠ΄Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ мастСр-slaves, Ρ€Π°Π·Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹ΠΌΠΈ Π² своСм ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ. Но всС Ρ€Π°Π²Π½ΠΎ ΠΈΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ собой Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, поэтому всС Ρ€Π°Π²Π½ΠΎ остаСтся Π½Π΅ΠΊΠΈΠΉ сСрвис для ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ этих дСйствий. НавСрноС, ΠΏΠΎΠ΄ эту схСму ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Cassandra, которая ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π‘Π»ΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, какая ΠΈΠ· этих схСм Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΅ΡΡ‚ΡŒ свои минусы ΠΈ ΠΏΠ»ΡŽΡΡ‹.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

И Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΠΎΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Π²Π΅Ρ‰Π΅ΠΉ с ΠœΠ°ΡΡ‚Π΅Ρ€ΠΎΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, Π½Π΅ Ρ‚Π°ΠΊ ΠΎΠ½ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ постоянно ΠΏΠΎΠ΄Π°Ρ‚ΡŒ. Π’ΡƒΡ‚ Π³Π»Π°Π²Π½ΠΎΠ΅ – Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для размСщСния этого сСрвиса Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π½ΠΎΠ΄Π΅ ΠΌΠΎΡ‰Π½ΠΎΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ Π½Π΅Π΅ Π±Ρ‹Π»ΠΎ достаточно рСсурсов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎ возмоТности Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π΅ Π±Ρ‹Π»ΠΎ Ρ‚ΡƒΠ΄Π° доступа, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ случайно Π½Π΅ ΡƒΠ±ΠΈΠ»ΠΈ этот процСсс. Но ΠΏΡ€ΠΈ этом Π² Ρ‚Π°ΠΊΠΎΠΉ схСмС Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈΠ· ΠœΠ°ΡΡ‚Π΅Ρ€-процСсса ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²ΠΎΡ€ΠΊΠ΅Ρ€Π°ΠΌΠΈ, Ρ‚. Π΅. эта схСма ΠΏΡ€ΠΎΡ‰Π΅ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

А эта схСма (Π²Ρ‹Ρ‰Π΅), Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π±ΠΎΠ»Π΅Π΅ слоТная, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ надСТная.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° – это partial failures. НапримСр, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ отправляСм сообщСниС ΠΏΠΎ Π‘Π΅Ρ‚ΠΈ, происходит какая-Ρ‚ΠΎ авария, ΠΈ Ρ‚ΠΎΡ‚, ΠΊΡ‚ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» сообщСниС, Π½Π΅ ΡƒΠ·Π½Π°Π΅Ρ‚ дошло Π»ΠΈ Π΅Π³ΠΎ сообщСниС ΠΈ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π½Π° сторонС ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°, Π½Π΅ ΡƒΠ·Π½Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ сообщСниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎΡΡŒ, Ρ‚. Π΅. ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ подтвСрТдСния.

БоотвСтствСнно, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ эту ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. И самоС простоС – это ΠΏΠ΅Ρ€Π΅ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это сообщСниС ΠΈ ΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° Π½Π°ΠΌ ΠΏΡ€ΠΈΠ΄Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚. ΠŸΡ€ΠΈ этом Π½ΠΈΠ³Π΄Π΅ Π½Π΅ учитываСтся измСнилось Π»ΠΈ состояниС ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΡ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠΌ сообщСниС ΠΈ Π΄Π²Π° Ρ€Π°Π·Π° Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅.

ZooKeeper ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ способы Π±ΠΎΡ€ΡŒΠ±Ρ‹ с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΎΡ‚ΠΊΠ°Π·Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π½Π°ΠΌ Тизнь.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Как Ρ‡ΡƒΡ‚ΡŒ Ρ€Π°Π½ΡŒΡˆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ, это ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° написаниС ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½ΠΎ основноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² распрСдСлСнных прилоТСниях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ строим Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ…, способом взаимодСйствия являСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π‘Π΅Ρ‚ΡŒ. По сути, это Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° shared-nothing. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ процСсса ΠΈΠ»ΠΈ сСрвиса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ машинС, Π΅ΡΡ‚ΡŒ своя ΠΏΠ°ΠΌΡΡ‚ΡŒ, свой диск, свой процСссор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ Π½ΠΈ с ΠΊΠ΅ΠΌ Π½Π΅ дСлится.

Если ΠΌΡ‹ пишСм ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ shared memory для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π£ нас Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ context switch, процСссы ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ. Π­Ρ‚ΠΎ влияСт Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° кластСрС Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π½Π΅Ρ‚, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π‘Π΅Ρ‚ΡŒΡŽ.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

БоотвСтствСнно, основныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΈ написании распрСдСлСнных систСм, это конфигурация. ΠœΡ‹ пишСм ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Если ΠΎΠ½ΠΎ ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΎΠ΅, Ρ‚ΠΎ ΠΌΡ‹ Ρ…Π°Ρ€Π΄ΠΊΠΎΠ΄ΠΈΠΌ всякиС Ρ†ΠΈΡ„Π΅Ρ€ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅, Π½ΠΎ это Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ссли ΠΌΡ‹ Ρ€Π΅ΡˆΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ вмСсто Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π° Π² полсСкунды ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ Π² ΠΎΠ΄Π½Ρƒ сСкунду, Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, всС Π·Π°Π½ΠΎΠ²ΠΎ Ρ€Π°ΡΠΊΠ°Ρ‚Π°Ρ‚ΡŒ. Одно Π΄Π΅Π»ΠΎ, ΠΊΠΎΠ³Π΄Π° это Π½Π° ΠΎΠ΄Π½ΠΎΠΉ машинС, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ просто ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, Π° ΠΊΠΎΠ³Π΄Π° Ρƒ нас ΠΌΠ½ΠΎΠ³ΠΎ машин, Ρ‚ΠΎ Π½Π°Π΄ΠΎ всС постоянно ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Надо ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎ.

Π’ΡƒΡ‚ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ ΠΎ статичСской ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для систСмных процСссов. Π­Ρ‚ΠΎ Π½Π΅ совсСм, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ статичСская конфигурация для Π½Π°ΡˆΠΈΡ… процСссов, Ρ‚. Π΅. это конфигурация, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ нСльзя просто Π²Π·ΡΡ‚ΡŒ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ.

А Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ динамичСская конфигурация. Π­Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π° Π»Π΅Ρ‚Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Ρ‚Π°ΠΌ ΠΏΠΎΠ΄Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π»ΠΈΡΡŒ.

Π’ Ρ‡Π΅ΠΌ здСсь ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°? Обновили ΠΌΡ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³, Π²Ρ‹ΠΊΠ°Ρ‚ΠΈΠ»ΠΈ ΠΈ Ρ‡Ρ‚ΠΎ? ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ с ΠΎΠ΄Π½ΠΎΠΉ стороны ΠΌΡ‹ Π²Ρ‹ΠΊΠ°Ρ‚ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³, Π° ΠΏΡ€ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΊΡƒ Π·Π°Π±Ρ‹Π»ΠΈ, Ρ‚Π°ΠΌ остался стался ΠΊΠΎΠ½Ρ„ΠΈΠ³. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π²Ρ‹ΠΊΠ°Ρ‚Ρ‹Π²Π°Π»ΠΈ, Π³Π΄Π΅-Ρ‚ΠΎ конфигурация обновилась, Π° Π³Π΄Π΅-Ρ‚ΠΎ Π½Π΅Ρ‚. И ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ процСссы нашСго прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ машинС ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΠ»ΠΈΡΡŒ с Π½ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠΌ, Π° Π³Π΄Π΅-Ρ‚ΠΎ со старым. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ нашС распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ Π² консистСнтном состоянии с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° общая. Для динамичСской ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΠ½Π° Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ подразумСваСтся, Ρ‡Ρ‚ΠΎ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π° Π»Π΅Ρ‚Ρƒ.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° – это group membership. ВсСгда Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€ Π²ΠΎΡ€ΠΊΠ΅Ρ€ΠΎΠ², ΠΌΡ‹ всСгда Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π½Π°Ρ‚ΡŒ – ΠΊΡ‚ΠΎ ΠΈΠ· Π½ΠΈΡ… ΠΆΠΈΠ², ΠΊΡ‚ΠΎ ΠΈΠ· Π½ΠΈΡ… ΠΌΠ΅Ρ€Ρ‚Π². Если Π΅ΡΡ‚ΡŒ ΠœΠ°ΡΡ‚Π΅Ρ€, Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Π½Π° ΠΊΠ°ΠΊΠΈΠ΅ Π²ΠΎΡ€ΠΊΠ΅Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ запускали вычислСния ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π° Π½Π° ΠΊΠ°ΠΊΠΈΠ΅ нСльзя. ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΡ‚ΠΎ Π² нашСм кластСрС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° типичная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° – это leader election, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π½Π°Ρ‚ΡŒ, ΠΊΡ‚ΠΎ отвСтствСнный. Один ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² – это рСпликация, ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° запись ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… ΠΏΠΎ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ процСссам. Он Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈΠ΄Π΅Ρ€ΠΎΠΌ, всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π΅ΠΌΡƒ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½ΡΡ‚ΡŒΡΡ, Π±ΡƒΠ΄ΡƒΡ‚ Π·Π° Π½ΠΈΠΌ ΠΈΠ΄Ρ‚ΠΈ. НуТно Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ процСсс, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹ΠΌ для всСх, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π»ΠΎΡΡŒ Π΄Π²ΠΎΠ΅ Π»ΠΈΠ΄Π΅Ρ€ΠΎΠ².

Π•Ρ‰Π΅ Π΅ΡΡ‚ΡŒ – mutually exclusive access. Π’ΡƒΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±ΠΎΠ»Π΅Π΅ слоТная. Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ понятиС ΠΊΠ°ΠΊ ΠΌΡŒΡŽΡ‚Π΅ΠΊΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ доступ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ рСсурсу, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊ ячСйкС памяти, Π±Ρ‹Π» ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ ΠΈ осущСствлялся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ. Π—Π΄Π΅ΡΡŒ рСсурсом ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ абстрактноС. И Ρ€Π°Π·Π½Ρ‹Π΅ прилоТСния с Ρ€Π°Π·Π½Ρ‹Ρ… Π½ΠΎΠ΄ нашСй Π‘Π΅Ρ‚ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΊΡΠΊΠ»ΡŽΠ·ΠΈΠ²Π½Ρ‹ΠΉ доступ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ рСсурса, Π° Π½Π΅ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС ΠΌΠΎΠ³Π»ΠΈ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚ΡƒΠ΄Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ. Π­Ρ‚ΠΎ, Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅, locks.

ВсС эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ZooKeeper позволяСт Π² Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ стСпСни Ρ€Π΅ΡˆΠΈΡ‚ΡŒ. И я ΠΏΠΎΠΊΠ°ΠΆΡƒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, ΠΊΠ°ΠΊ ΠΎΠ½ позволяСт это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

НСт Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ². Когда ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, этот ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠ΄Π°Ρ‚ΡŒ наступлСния ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ события. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, эта ΡˆΡ‚ΡƒΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ асинхронно, Ρ‚Π΅ΠΌ самым позволяя процСссам Π½Π΅ Π·Π°Π²ΠΈΡΠ°Ρ‚ΡŒ Π² состоянии Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ ΠΆΠ΄ΡƒΡ‚. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ полСзная Π²Π΅Ρ‰ΡŒ.

ВсС клиСнтскиС запросы ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² порядкС ΠΎΠ±Ρ‰Π΅ΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.

И ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π½ΠΎΡ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΎΠ± измСнСниях ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ состояния, ΠΎΠ± измСнСниях Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ сами ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

ZooKeeper ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π΄Π²ΡƒΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ…. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ – это standalone, Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΎΠ΄Π΅. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для тСстирования. А Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ кластСра, Π½Π° любом количСствС сСрвСров. Если Ρƒ нас кластСр – 100 машин, Ρ‚ΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π½Π° 100 ΠΌΠ°ΡˆΠΈΠ½Π°Ρ…. Достаточно Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько машинок, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ZooKeeper. И исповСдуСт ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ high availability. На ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΌ инстансС ZooKeeper Ρ…Ρ€Π°Π½ΠΈΡ‚ всю копию Π΄Π°Π½Π½Ρ‹Ρ…. ПозТС расскаТу, ΠΊΠ°ΠΊ ΠΎΠ½ это Π΄Π΅Π»Π°Π΅Ρ‚. Он Π½Π΅ ΡˆΠ°Ρ€Π΄ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ…. Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны – это минус, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны – это Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ. Он Π½Π΅ для этого ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½, это Π½Π΅ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ….

Π”Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π­Ρ‚ΠΎ стандартный ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΌ Π½Π΅ Π΄Π΅Ρ€Π³Π°Ρ‚ΡŒ сСрвис, Π½Π΅ Π½Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ запросами. Π£ΠΌΠ½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π½Π°Π΅Ρ‚ ΠΎΠ± этом ΠΈ ΠΊΠ΅ΡˆΠΈΡ€ΡƒΠ΅Ρ‚ Ρƒ сСбя.

НапримСр, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρƒ нас измСнилось. Π•ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’Ρ‹Π±Ρ€Π°Π»ΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи. И ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. Одно ΠΈΠ· Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ – ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ»ΠΈΠΊ. И постоянно ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ наш сСрвис – Π½Π΅ измСнилось Π»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ? Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ. Π­Ρ‚ΠΎ watch mechanism, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ измСнилось. Π­Ρ‚ΠΎ ΠΌΠ΅Π½Π΅Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Π½Ρ‹ΠΉ способ ΠΏΠΎ рСсурсам ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Client – это ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ZooKeeper.

Server – это сам процСсс ZooKeeper.

Znode – это ΠΊΠ»ΡŽΡ‡Π΅Π²Π°Ρ ΡˆΡ‚ΡƒΠΊΠ° Π² ZooKeeper. ВсС znode хранятся Π² памяти Ρƒ ZooKeeper ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ иСрархичСской схСмы, Π² Π²ΠΈΠ΄Π΅ Π΄Π΅Ρ€Π΅Π²Π°.

Π•ΡΡ‚ΡŒ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ – это update/write, ΠΊΠΎΠ³Π΄Π° какая-Ρ‚ΠΎ опСрация измСняСт состояниС нашСго Π΄Π΅Ρ€Π΅Π²ΠΎ. Π”Π΅Ρ€Π΅Π²ΠΎ ΠΎΠ±Ρ‰Π΅Π΅.

И Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π΅ выполняСт ΠΎΠ΄ΠΈΠ½ запрос ΠΈ отрубаСтся, Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сСссию, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ взаимодСйствуСт с ZooKeeper.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

МодСль Π΄Π°Π½Π½Ρ‹Ρ… ZooKeeper Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму. Π•ΡΡ‚ΡŒ стандартный ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΈ дальшС ΠΌΡ‹ пошли ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΏΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ΄ΡƒΡ‚ ΠΎΡ‚ корня. И дальшС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня, Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ уровня. Π­Ρ‚ΠΎ всС являСтся znodes.

КаТдая znode ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² сСбС ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ большого объСма, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 10 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚. И Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ znode ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ количСство Π΄Π΅Ρ‚Π΅ΠΉ.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Znode Π±Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ. И ΠΏΡ€ΠΈ создании znode ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚ΠΈΠΏ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ.

Π•ΡΡ‚ΡŒ Π΄Π²Π° Ρ‚ΠΈΠΏΠ°. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ – это ephemeral flag. Znode ΠΆΠΈΠ²Π΅Ρ‚ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ сСссии. НапримСр, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ установил сСссию. И ΠΏΠΎΠΊΠ° эта сСссия ΠΆΠΈΠ²Π°, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠ»ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ лишнСго. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ‚Π°ΠΊΠΈΡ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π²Π°ΠΆΠ½ΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… сСссии Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚ΠΈΠΏ – это sequential flag. Он ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ счСтчик Π½Π° ΠΏΡƒΡ‚ΠΈ ΠΊ znode. НапримСр, Ρƒ нас Π±Ρ‹Π» ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ 1_5. И ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ создали ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π½ΠΎΠ΄Ρƒ, ΠΎΠ½Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° p_1, вторая – p_2. И ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ этот ΠΌΠ΅Ρ‚ΠΎΠ΄, Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π°ΡΡ‚ΡŒ пусти, Π° этот Π½ΠΎΠΌΠ΅Ρ€ автоматичСски инкрСмСнтится, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚ΠΈΠΏ Π½ΠΎΠ΄Ρ‹ – sequential.

РСгулярная znode. Она Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠΈΡ‚ΡŒ всСгда ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎ имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Π΅ΠΉ скаТСм.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° полСзная Π²Π΅Ρ‰ΡŒ – это watch flag. Если ΠΌΡ‹ Π΅Π³ΠΎ устанавливаСм, Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ события для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π½ΠΎΠ΄Ρ‹. ΠŸΠΎΠΊΠ°ΠΆΡƒ ΠΏΠΎΡ‚ΠΎΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΊΠ°ΠΊ это дСлаСтся. Π‘Π°ΠΌ ZooKeeper увСдомляСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Π½ΠΎΠ΄Π΅ измСнились. ΠŸΡ€ΠΈ этом увСдомлСния Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎ это ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ΅Ρ…Π°Π»ΠΈ. Они просто говорят ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ измСнилось, поэтому ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΌ придСтся всС Ρ€Π°Π²Π½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ.

И ΠΊΠ°ΠΊ я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ», порядок Π΄Π°Π½Π½Ρ‹Ρ… опрСдСляСтся ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°ΠΌΠΈ. НС Π½ΡƒΠΆΠ½ΠΎ Ρ‚Π°ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ большиС тСкстовыС Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это Π½Π΅ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…, это сСрвСр ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ дСйствий.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

НСмноТко расскаТу ΠΏΡ€ΠΎ сСссии. Если Ρƒ нас нСсколько сСрвСров, Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΡ‚ сСрвСра ΠΊ сСрвСру, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сСссии. Π­Ρ‚ΠΎ довольно-Ρ‚Π°ΠΊΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎ.

Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сСссии Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚. БСссия опрСдСляСтся Ρ‚Π΅ΠΌ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π²ΠΎ врСмя этой сСссии сСрвСру. Если ΠΎΠ½ Π·Π° врСмя Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π° Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π», сСссия отваливаСтся, Π»ΠΈΠ±ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ сам Π΅Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Π£ Π½Π΅Π³ΠΎ Π½Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого API ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡˆΡ‚ΡƒΠΊΠΈ. Π’ΠΎΡ‚ Π²Ρ‹Π·ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, create создаСт znode ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Ρ€ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π­Ρ‚ΠΎ ΠΏΡƒΡ‚ΡŒ ΠΊ znode, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΎΡ‚ корня. А Ρ‚Π°ΠΊΠΆΠ΅ это ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ‚ΡƒΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ. И Ρ‚ΠΈΠΏ Ρ„Π»Π°Π³Π°. И послС создания ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ ΠΊ znode.

Π’Ρ‚ΠΎΡ€ΠΎΠ΅ – ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ. Π’ΡƒΡ‚ Ρ„ΠΈΡˆΠΊΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΡƒΡ‚ΠΈ ΠΊ znode ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ. БоотвСтствСнно, Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Π° Ρ‚Π° znode, Ссли Π΅Π΅ вСрсия, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ, Π±ΡƒΠ΄Π΅Ρ‚ эквивалСнтна Ρ‚ΠΎΠΉ, которая Π½Π° самом Π΄Π΅Π»Π΅.

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ эту Π²Π΅Ρ€ΡΠΈΡŽ, Ρ‚ΠΎ ΠΌΡ‹ просто ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Β«-1Β».

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Π’Ρ€Π΅Ρ‚ΡŒΠ΅ – осущСствляСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ сущСствования znode. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли Π½ΠΎΠ΄Π° сущСствуСт, ΠΈΠ½Π°Ρ‡Π΅ false.

И Ρ‚ΡƒΡ‚ появляСтся flag watch, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ наблюдСниС Π·Π° этой Π½ΠΎΠ΄ΠΎΠΉ.

МоТно ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ этот flag Π΄Π°ΠΆΠ΅ Π½Π° Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π½ΠΎΠ΄Ρƒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° появится. Π­Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ.

Π•Ρ‰Π΅ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² – это getData. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎ znode ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ flag watch. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΠ½ Π½Π΅ установится, Ссли Π½ΠΎΠ΄Ρ‹ Π½Π΅Ρ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° сущСствуСт, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

А Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ SetData. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ version. И Ссли ΠΌΡ‹ это ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΠΌ, Ρ‚ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° znode ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ вСрсии.

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Β«-1Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ эту ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ – это getChildren. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список всСх znode, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ Π΅ΠΉ. МоТСм Π·Π° этим ΠΏΠΎΠ½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ, установив flag watch.

И ΠΌΠ΅Ρ‚ΠΎΠ΄ sync позволяСт всС измСнСния ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сразу, Ρ‚Π΅ΠΌ самым гарантируя Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ ΠΈ всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ измСнились.

Если ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Ρ‚ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ write, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΈΡˆΡƒΡ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π° диск, ΠΈ послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ½ Π²Π΅Ρ€Π½ΡƒΠ» Π²Π°ΠΌ ΠΎΡ‚Π²Π΅Ρ‚, Π½Π΅Ρ‚ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΄Π°Π½Π½Ρ‹Π΅ записались Π½Π° диск. И Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° опСрационная систСма ΡƒΠ²Π΅Ρ€Π΅Π½Π°, Ρ‡Ρ‚ΠΎ всС записалось, Π² самом дискС Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, Π³Π΄Π΅ процСсс ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· ΡƒΡ€ΠΎΠ²Π½ΠΈ Π±ΡƒΡ„Π΅Ρ€ΠΎΠ², ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС этого Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π½Π° диск.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Π’ основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ асинхронныС Π²Ρ‹Π·ΠΎΠ²Ρ‹. Π­Ρ‚ΠΎ позволяСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ запросами. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ синхронный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, Π½ΠΎ ΠΎΠ½ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅Π½.

Π”Π²Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, это update/write, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅. Π­Ρ‚ΠΎ create, setData, sync, delete. И read – это exists, getData, getChildren.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Π’Π΅ΠΏΠ΅Ρ€ΡŒ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² распрСдСлСнной систСмС. НапримСр, связанный с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ. Появился Π½ΠΎΠ²Ρ‹ΠΉ Π²ΠΎΡ€ΠΊΠ΅Ρ€. ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΌΠ°ΡˆΠΈΠ½Ρƒ, запустили процСсс. И Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€ΠΈ вопроса. Как ΠΎΠ½ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Ρƒ ZooKeeper? И Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΌΡ‹ Π΅Π΅ измСняСм? И послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ Ρ‚Π΅ Π²ΠΎΡ€ΠΊΠ΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρƒ нас Π±Ρ‹Π»ΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π΅Π΅?

Π’ ZooKeeper это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ просто. НапримСр, Π΅ΡΡ‚ΡŒ нашС Π΄Π΅Ρ€Π΅Π²ΠΎ znode. Π—Π΄Π΅ΡΡŒ Π΅ΡΡ‚ΡŒ Π½ΠΎΠ΄Π° для нашСго прилоТСния, ΠΌΡ‹ создаСм Π² Π½Π΅ΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π½ΠΎΠ΄Ρƒ, Π³Π΄Π΅ содСрТатся Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ‚Π°ΠΊ ΠΈ Π½Π΅Ρ‚. Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€ нСбольшой, Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ‚ΠΎΠΆΠ΅ нСбольшой, поэтому здСсь Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΅Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ.

Π’Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ getData для получСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для Π²ΠΎΡ€ΠΊΠ΅Ρ€Π° ΠΈΠ· Π½ΠΎΠ΄Ρ‹. УстанавливаСм true. Если этой Π½ΠΎΠ΄Ρ‹ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π½Π΅Ρ‚, нас ΠΎΠ± этом ΠΏΡ€ΠΎΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° появится, Π»ΠΈΠ±ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° измСнится. Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ измСнилось, Ρ‚ΠΎ ставим true. И Π² случаС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² этой Π½ΠΎΠ΄Π΅, ΠΌΡ‹ ΠΎΠ± этом ΡƒΠ·Π½Π°Π΅ΠΌ.

SetData. Π—Π°Π΄Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅, устанавливаСм Β«-1Β», Ρ‚. Π΅. Π½Π΅ провСряСм Π²Π΅Ρ€ΡΠΈΡŽ, считаСм, Ρ‡Ρ‚ΠΎ конфигурация Ρƒ нас всСгда ΠΎΠ΄Π½Π°, Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ. Если Π½ΡƒΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ. Π—Π΄Π΅ΡΡŒ считаСм, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΎΠ΄Π½Π°, поэтому обновляСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСднюю, поэтому Π²Π΅Ρ€ΡΠΈΡŽ Π½Π΅ провСряСм. Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ всС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎ этого подписались, ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ измСнилось Π² этой Π½ΠΎΠ΄Π΅. И послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ, ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π·. Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π½Π΅ сами Π΄Π°Π½Π½Ρ‹Π΅, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± измСнСниях. ПослС этого ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ примСнСния ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π° – это group membership. Π£ нас распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΅ΡΡ‚ΡŒ ΠΊΡƒΡ‡Π° Π²ΠΎΡ€ΠΊΠ΅Ρ€ΠΎΠ² ΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС ΠΎΠ½ΠΈ Π½Π° мСстС. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сСбя Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² нашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. И Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠœΠ°ΡΡ‚Π΅Ρ€-процСсса, Π»ΠΈΠ±ΠΎ Π΅Ρ‰Π΅ ΠΎΡ‚ΠΊΡƒΠ΄Π°-Ρ‚ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎΠ±ΠΎ всСх Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π²ΠΎΡ€ΠΊΠ΅Ρ€Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρƒ нас сСйчас Π΅ΡΡ‚ΡŒ.

Как ΠΌΡ‹ это Π΄Π΅Π»Π°Π΅ΠΌ? Для прилоТСния создаСм Π½ΠΎΠ΄Ρƒ workers ΠΈ добавляСм Ρ‚ΡƒΠ΄Π° ΠΏΠΎΠ΄ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° create. Π£ мСня ошибка Π½Π° слайдС. Π’ΡƒΡ‚ Π½ΡƒΠΆΠ½ΠΎ sequential ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‚ΠΎΠ³Π΄Π° всС Π²ΠΎΡ€ΠΊΠ΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ. И ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ children этой Π½ΠΎΠ΄Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ всС Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ Π²ΠΎΡ€ΠΊΠ΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Π’ΠΎΡ‚ такая ΡΡ‚Ρ€Π°ΡˆΠ½Π°Ρ имплСмСнтация Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сдСлано Π² Java-ΠΊΠΎΠ΄Π΅. НачнСм с ΠΊΠΎΠ½Ρ†Π°, с ΠΌΠ΅Ρ‚ΠΎΠ΄Π° main. Π’ΠΎΡ‚ это наш класс, создаСм Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄. Π’ качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ host, ΠΊΡƒΠ΄Π° подсоСдиняСмся, Ρ‚. Π΅. Π·Π°Π΄Π°Π΅ΠΌ Π΅Π³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ. А Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° – имя Π³Ρ€ΡƒΠΏΠΏΡ‹.

Как происходит соСдинСниС? Π­Ρ‚ΠΎ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. Π’ΡƒΡ‚ всС ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ просто. Π•ΡΡ‚ΡŒ стандартный класс ZooKeeper. ΠœΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΅ΠΌΡƒ hosts. И Π·Π°Π΄Π°Π΅ΠΌ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² 5 сСкунд. И Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Ρ‡Π»Π΅Π½, ΠΊΠ°ΠΊ connectedSignal. По сути, ΠΌΡ‹ создаСм Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ. Π”Π°Π½Π½Ρ‹Π΅ Ρ‚ΡƒΠ΄Π° Π½Π΅ пишСм, хотя Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ. И Π½ΠΎΠ΄Π° Ρ‚ΡƒΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ persistent. По сути, это обычная рСгулярная Π½ΠΎΠ΄Π°, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ всС врСмя. Π—Π΄Π΅ΡΡŒ создаСтся сСссия. Π­Ρ‚ΠΎ имплСмСнтация самого ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Наш ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ пСриодичСски сообщСния ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сСссия ΠΆΠΈΠ²Π°. А ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ сСссию Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ, Ρ‚ΠΎ ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ close ΠΈ всС, сСссия отваливаСтся. Π­Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΡ‚ случай, Ссли Ρƒ нас Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ отвалится, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ZooKeeper ΠΎΠ± этом ΡƒΠ·Π½Π°Π» ΠΈ сСссию ΠΎΡ‚Ρ€ΡƒΠ±ΠΈΠ».

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Как Π·Π°Π»ΠΎΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ рСсурс? Π—Π΄Π΅ΡΡŒ всС нСсколько слоТнСС. Π£ нас Π΅ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ Π²ΠΎΡ€ΠΊΠ΅Ρ€ΠΎΠ², Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ рСсурс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°Π»ΠΎΡ‡ΠΈΡ‚ΡŒ. Для этого ΠΌΡ‹ создаСм ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π½ΠΎΠ΄Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ lock1. Если ΠΌΡ‹ смогли Π΅Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ lock сюда. А Ссли ΠΌΡ‹ Π½Π΅ смогли Π΅Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π²ΠΎΡ€ΠΊΠ΅Ρ€ пытаСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ getData ΠΎΡ‚ΡΡŽΠ΄Π°, Π° Ρ‚. ΠΊ. Π½ΠΎΠ΄Π° ΡƒΠΆΠ΅ создана, Ρ‚ΠΎ ΠΌΡ‹ ставим сюда watcher ΠΈ Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° состояниС этой Π½ΠΎΠ΄Ρ‹ измСнится, ΠΌΡ‹ ΠΎΠ± этом ΡƒΠ·Π½Π°Π΅ΠΌ. И ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΡƒΡΠΏΠ΅Ρ‚ΡŒ Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ. Если ΠΌΡ‹ Π·Π°Π±Ρ€Π°Π»ΠΈ эту Π½ΠΎΠ΄Ρƒ, Π·Π°Π±Ρ€Π°Π»ΠΈ этот lock, Ρ‚ΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ lock Π½Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ΅Π½, ΠΌΡ‹ ΠΎΡ‚ Π½Π΅Π³ΠΎ откаТСмся, Ρ‚. ΠΊ. Π½ΠΎΠ΄Π° сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… сСссии. БоотвСтствСнно, ΠΎΠ½Π° исчСзнСт. И Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Ρ€ΡƒΠ³ΠΎΠΉ сСссии смоТСт Π·Π°Π±Ρ€Π°Ρ‚ΡŒ lock Π½Π° эту Π½ΠΎΠ΄Ρƒ, Ρ‚ΠΎΡ‡Π½Π΅Π΅ ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ измСнилось ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡƒΡΠΏΠ΅Ρ‚ΡŒ это ΡƒΡΠΏΠ΅Ρ‚ΡŒ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ основного Π»ΠΈΠ΄Π΅Ρ€Π°. Π’ΡƒΡ‚ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ послоТнСС, Π½ΠΎ Ρ‚ΠΎΠΆΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ просто. Π§Ρ‚ΠΎ Ρƒ нас здСсь происходит? Π•ΡΡ‚ΡŒ основная Π½ΠΎΠ΄Π°, которая Π°Π³Ρ€Π΅Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Π² сСбС всСх Π²ΠΎΡ€ΠΊΠ΅Ρ€ΠΎΠ². ΠœΡ‹ пытаСмся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎ Π»ΠΈΠ΄Π΅Ρ€Π°. Если это ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, Ρ‚. Π΅. ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚ΠΎ наш Π²ΠΎΡ€ΠΊΠ΅Ρ€ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π·Π° этим Π»ΠΈΠ΄Π΅Ρ€ΠΎΠΌ. Он считаСт, Ρ‡Ρ‚ΠΎ Π»ΠΈΠ΄Π΅Ρ€ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ.

Если Π»ΠΈΠ΄Π΅Ρ€ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΡƒΠΌΠ΅Ρ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, отвалился, Ρ‚ΠΎ ΠΌΡ‹ пытаСмся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π΅Ρ€Π°. И Ссли Ρƒ нас это ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Ρ‚ΠΎ наш Π²ΠΎΡ€ΠΊΠ΅Ρ€ становится Π»ΠΈΠ΄Π΅Ρ€ΠΎΠΌ. А Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ успСл ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π΅Ρ€Π°, Ρ‚ΠΎ ΠΌΡ‹ пытаСмся ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΡ‚ΠΎ это ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ Π·Π° Π½ΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ.

Π’ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ, herd effect, Ρ‚. Π΅. эффСкт стада, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, ΠΊΠΎΠ³Π΄Π° Π»ΠΈΠ΄Π΅Ρ€ ΡƒΠΌΠΈΡ€Π°Π΅Ρ‚, Ρ‚ΠΎ Ρ‚ΠΎΡ‚, ΠΊΡ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ успССт, Ρ‚ΠΎΡ‚ ΠΈ станСт Π»ΠΈΠ΄Π΅Ρ€ΠΎΠΌ.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

ΠŸΡ€ΠΈ Π·Π°Ρ…Π²Π°Ρ‚Π΅ рСсурса ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ. НапримСр, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ lock, Π½ΠΎ Π±Π΅Π· hert effect. Π—Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ списки всСх id Π½ΠΎΠ΄ для ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π½ΠΎΠ΄Ρ‹ с lock. И Ссли ΠΏΠ΅Ρ€Π΅Π΄ этим Ρ‚Ρƒ Π½ΠΎΠ΄Ρƒ, lock для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ создали, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ минимальной ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ, Ρ‚ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π·Π°Ρ…Π²Π°Ρ‚ΠΈΠ»ΠΈ lock. ΠœΡ‹ провСряСм, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ lock. Π’ качСствС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ условиС, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ‚ id, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ lock, ΠΎΠ½ являСтся ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ. И Ссли ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ, Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ дальшС.

Если сущСствуСт Π½Π΅ΠΊΠΈΠΉ id, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ мСньшС нашСго lock, Ρ‚ΠΎ ΠΌΡ‹ ставим Π½Π° это событиС watcher ΠΈ ΠΆΠ΄Π΅ΠΌ Π½ΠΎΡ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ измСнится. Π’. Π΅. ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ этот lock. И ΠΏΠΎΠΊΠ° Ρ‚ΠΎΡ‚ Π½Π΅ отвалится, ΠΌΡ‹ Π½Π΅ станСм ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ id ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ lock, ΠΈ Ρ‚Π΅ΠΌ самым смоТСм Π·Π°Π»ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ. А Ссли это условиС Π½Π΅ выполняСтся, Ρ‚ΠΎΠ³Π΄Π° ΠΌΡ‹ сразу ΠΈΠ΄Π΅ΠΌ сюда ΠΈ пытаСмся Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ этот lock, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π·Π° это врСмя ΠΌΠΎΠ³Π»ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Из Ρ‡Π΅Π³ΠΎ состоит ZooKeeper? Π•ΡΡ‚ΡŒ 4 основныС Π²Π΅Ρ‰ΠΈ. Π­Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° процСссов – Request. А Ρ‚Π°ΠΊΠΆΠ΅ ZooKeeper Atomic Broadcast. Π•ΡΡ‚ΡŒ Commit Log, ΠΊΡƒΠ΄Π° заносятся всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. И сама In-memory Replicated DB, Ρ‚. Π΅. сама Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…, Π³Π΄Π΅ хранится всС это Π΄Π΅Ρ€Π΅Π²ΠΎ.

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° запись проходят Ρ‡Π΅Ρ€Π΅Π· Request Processor. А ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ΄ΡƒΡ‚ сразу Π² In-memory Π±Π°Π·Ρƒ.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Π‘Π°ΠΌΠ° Π±Π°Π·Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π°. На всСх instances ZooKeeper хранится полная копия Π΄Π°Π½Π½Ρ‹Ρ….

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²ΠΈΡ‚ΡŒ Π±Π΄ послС падСния, сущСствуСт Commit log. Бтандартная ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΎΠ½ΠΈ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Ρ‚ΡƒΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² случаС падСния этот log ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ ΠΈ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ состояниС систСмы. И Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ пСриодичСскиС ΡΠ½Π°ΠΏΡˆΠΎΡ‚Ρ‹ Π±Π°Π·Ρ‹.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

ZooKeeper Atomic Broadcast – это такая ΡˆΡ‚ΡƒΠΊΠ°, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поддСрТания Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

ZAB Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π»ΠΈΠ΄Π΅Ρ€Π° с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π½ΠΎΠ΄Ρ‹ ZooKeeper. Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π½ΠΎΠ΄Ρ‹ становятся Π΅Π΅ Ρ„ΠΎΠ»ΠΎΠ²Π΅Ρ€Π°ΠΌΠΈ, ΠΆΠ΄ΡƒΡ‚ ΠΎΡ‚ Π½Π΅Π΅ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ дСйствий. Если Π½Π° Π½ΠΈΡ… приходят записи, Ρ‚ΠΎ ΠΎΠ½ΠΈ всС ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π»ΠΈΠ΄Π΅Ρ€Ρƒ. Π’ΠΎΡ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ выполняСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ записи ΠΈ Π·Π°Ρ‚Π΅ΠΌ рассылаСт сообщСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ измСнилось своим Ρ„ΠΎΠ»ΠΎΠ²Π΅Ρ€Π°ΠΌ. Π­Ρ‚ΠΎ, ΠΏΠΎ сути, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ, Ρ‚. Π΅. опСрация записи ΠΈ broadcasting всСго этого Π΄Π΅Π»Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ, Ρ‚Π΅ΠΌ самым гарантируСтся ΠΊΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ….

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop» Он ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ write request. Основная Π΅Π³ΠΎ Π·Π°Π΄Π°Ρ‡Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ трансформируСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π² transactional update. Π­Ρ‚ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ сформированный запрос.

И Ρ‚ΡƒΡ‚ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ гарантируСтся ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Π°ΠΏΠ΄Π΅ΠΉΡ‚ΠΎΠ² для ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅? Π­Ρ‚Π° Π²Π΅Ρ‰ΡŒ, Ссли ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π²Π° Ρ€Π°Π·Π°, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ состояниС, Ρ‚. Π΅. сам запрос ΠΎΡ‚ этого Π½Π΅ измСнится. И ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π½ΡƒΠΆΠ½ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² случаС падСния ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, Ρ‚Π΅ΠΌ самым Π½Π°ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π²Π°Π»ΠΈΠ»ΠΈΡΡŒ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. ΠŸΡ€ΠΈ этом состояниС систСмы станСт Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅, Ρ‚. Π΅. Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅Ρ€Π΅Π΄Π° ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, процСссов ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»Π° ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΌ состояниям систСмы.

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

«Hadoop. ZooKeeper» ΠΈΠ· сСрии ВСхнострима Mail.Ru Group «ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Hadoop»

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com