Apache Bigtop ΠΈ Π²Ρ‹Π±ΠΎΡ€ Hadoop-дистрибутива сСгодня

Apache Bigtop ΠΈ Π²Ρ‹Π±ΠΎΡ€ Hadoop-дистрибутива сСгодня

НавСрноС, Π½ΠΈ для ΠΊΠΎΠ³ΠΎ Π½Π΅ сСкрСт, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ Π³ΠΎΠ΄ для Apache Hadoop стал Π³ΠΎΠ΄ΠΎΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½. Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Π³ΠΎΠ΄Ρƒ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ слияниС Cloudera ΠΈ Hortonworks (ΠΏΠΎ сути, ΠΏΠΎΠ³Π»ΠΎΡ‰Π΅Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ), Π° Mapr, Π² Π²ΠΈΠ΄Ρƒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… финансовых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π±Ρ‹Π» ΠΏΡ€ΠΎΠ΄Π°Π½ Hewlett Packard. И Ссли нСсколькими Π³ΠΎΠ΄Π°ΠΌΠΈ Ρ€Π°Π½Π΅Π΅, Π² случаС on-premises инсталляций, Π²Ρ‹Π±ΠΎΡ€ Ρ‡Π°Ρ‰Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Cloudera ΠΈ Hortonworks, Ρ‚ΠΎ сСгодня, ΡƒΠ²Ρ‹, этого Π²Ρ‹Π±ΠΎΡ€Π° Ρƒ нас Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ. Π‘ΡŽΡ€ΠΏΡ€ΠΈΠ·ΠΎΠΌ стал Π΅Ρ‰Π΅ ΠΈ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Cloudera с фСвраля этого Π³ΠΎΠ΄Π° объявила ΠΎ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠΈ выпуска Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… сборок своСго дистрибутива Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ΠΈ доступны лишь ΠΏΠΎ ΠΏΠ»Π°Ρ‚Π½ΠΎΠΉ подпискС. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ послСдних вСрсий CDH ΠΈ HDP, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° 2019-Π³ΠΎ Π³ΠΎΠ΄Π°, всС Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ, ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎ Π½ΠΈΠΌ прСдполагаСтся Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ-Π΄Π²ΡƒΡ… Π»Π΅Ρ‚. Но Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ дальшС? Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ€Π°Π½Π΅Π΅ ΠΏΠ»Π°Ρ‚ΠΈΠ» Π·Π° подписку, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ измСнилось. А для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π΅ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° ΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ дистрибутива, Π½ΠΎ ΠΏΡ€ΠΈ этом Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ свСТиС вСрсии ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² кластСра, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ°Ρ‚Ρ‡ΠΈ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ обновлСния, ΠΌΡ‹ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ»ΠΈ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ. Π’ Π½Π΅ΠΉ ΠΌΡ‹ рассмотрим Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· слоТившСйся ситуации.

Π‘Ρ‚Π°Ρ‚ΡŒΡ большС обзорная. Π’ Π½Π΅ΠΉ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ сравнСния дистрибутивов ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΈΡ… Ρ€Π°Π·Π±ΠΎΡ€Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ² ΠΏΠΎ ΠΈΡ… установкС ΠΈ настройкС. А Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚? ΠœΡ‹ Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ расскаТСм ΠΏΡ€ΠΎ Ρ‚Π°ΠΊΠΎΠΉ дистрибутив ΠΊΠ°ΠΊ Arenadata Hadoop, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ ΠΏΡ€Π°Π²Ρƒ заслуТил нашС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²Π²ΠΈΠ΄Ρƒ своСй доступности, Ρ‡Ρ‚ΠΎ Π½Π° сСгодня большая Ρ€Π΅Π΄ΠΊΠΎΡΡ‚ΡŒ. А Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΡ€ΠΎ Vanilla Hadoop, Π² основном ΠΏΡ€ΠΎ Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ β€œΠΏΡ€ΠΈΠ³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒβ€ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Apache Bigtop. Π“ΠΎΡ‚ΠΎΠ²Ρ‹? Π’ΠΎΠ³Π΄Π° Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΊΠ°Ρ‚.

Arenadata Hadoop

Apache Bigtop ΠΈ Π²Ρ‹Π±ΠΎΡ€ Hadoop-дистрибутива сСгодня

Π­Ρ‚ΠΎ совсСм Π½ΠΎΠ²Ρ‹ΠΉ ΠΈ, ΠΏΠΎΠΊΠ° Π΅Ρ‰Π΅, ΠΌΠ°Π»ΠΎ ΠΊΠΎΠΌΡƒ извСстный дистрибутив отСчСствСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. К соТалСнию, Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π° Ρ…Π°Π±Ρ€Π΅ ΠΎ Π½Π΅ΠΌ Π΅ΡΡ‚ΡŒ лишь эта ΡΡ‚Π°Ρ‚ΡŒΡ.

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ПослСдниС вСрсии дистрибутива основаны Π½Π° Hadoop 3.1.2 для 3-ΠΉ вСрсии, ΠΈ 2.8.5 для 2-ΠΉ вСрсии.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ roadmap ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь.

Apache Bigtop ΠΈ Π²Ρ‹Π±ΠΎΡ€ Hadoop-дистрибутива сСгодня
Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Arenadata Cluster Manager

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ Arenadata являСтся Arenadata Cluster Manager (ADCM), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установки, настройки ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. ADCM распространяСтся бСсплатно, Π° Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ Π·Π° счСт добавлСния Π² Π½Π΅Π³ΠΎ Π±Π°Π½Π΄Π»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΈΠ· сСбя Π½Π°Π±ΠΎΡ€ ansible-playbooks. Π‘Π°Π½Π΄Π»Ρ‹ дСлятся Π½Π° Π΄Π²Π° Π²ΠΈΠ΄Π°: enterprise ΠΈ community. ПослСдниС доступны для бСсплатной Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с сайта Arenadata. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ свой собствСнный Π±Π°Π½Π΄Π» ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊ ADCM.

Для дСплоя ΠΈ управлСния Hadoop 3 прСдлагаСтся community-вСрсия Π±Π°Π½Π΄Π»Π° Π² связкС с ADCM, Π° для hadoop 2 Π΅ΡΡ‚ΡŒ лишь Apache Ambari Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹. Π§Ρ‚ΠΎ ΠΆΠ΅ касаСтся Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² с ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ, Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ для ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ доступа, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ для всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² кластСра. Π’ Ρ†Π΅Π»ΠΎΠΌ, дистрибутив выглядит вСсьма интСрСсно. Π£Π²Π΅Ρ€Π΅Π½, найдутся Ρ‚Π΅, ΠΊΡ‚ΠΎ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊ ΠΊ Ρ‚Π°ΠΊΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌ, ΠΊΠ°ΠΊ Cloudera Manager ΠΈ Ambari, ΠΈ ΠΊΠΎΠΌΡƒ приглянСтся сам ADCM. Для ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌ плюсом Π΅Ρ‰Π΅ ΠΈ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ дистрибутив Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² рССстр ПО для импортозамСщСния.

Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ минусах, Ρ‚ΠΎ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… дистрибутивов Hadoop. А ΠΈΠΌΠ΅Π½Π½ΠΎ:

  • Π’Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Β«vendor lock-inΒ». На ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Cloudera ΠΈ Hortonworks ΠΌΡ‹ ΡƒΠΆΠ΅ поняли, Ρ‡Ρ‚ΠΎ всСгда Π΅ΡΡ‚ΡŒ риск измСнСния ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.
  • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ отставаниС ΠΎΡ‚ апстрима Apache.

Vanilla Hadoop

Apache Bigtop ΠΈ Π²Ρ‹Π±ΠΎΡ€ Hadoop-дистрибутива сСгодня

Как Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Hadoop – это Π½Π΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Π°, ΠΏΠΎ сути, цСлая плСяда сСрвисов Π²ΠΎΠΊΡ€ΡƒΠ³ Π΅Π³ΠΎ распрСдСлСнной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы HDFS. Мало ΠΊΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ достаточно ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ кластСра. Одним Π½ΡƒΠΆΠ΅Π½ Hive, Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ Presto, Π° Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ HBase ΠΈ Phoenix, всС Ρ‡Π°Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Spark. Для оркСстрации ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Oozie, Sqoop ΠΈ Flume. А Ссли встаСт вопрос обСспСчСния бСзопасности, Ρ‚ΠΎ сразу вспоминаСтся Kerberos Π² связкС с Ranger.

Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ вСрсии ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Hadoop доступны Π½Π° сайтС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² экосистСмы Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Ρ€Π±ΠΎΠ»Π»ΠΎΠ². Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ установку, Π½ΠΎ с ΠΎΠ΄Π½ΠΈΠΌ условиСм: ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ сборки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈΠ· «сырых» Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ, вСроятнСС всСго, Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Ρƒ вас Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ увСрСнности Π² совмСстимости Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… вСрсий ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ собой. Π‘ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ являСтся сборка с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Apache Bigtop. Bigtop ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ сборку ΠΈΠ· maven-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² Apache, ΠΏΡ€ΠΎΠ³Π½Π°Ρ‚ΡŒ тСсты ΠΈ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹. Но, Ρ‡Ρ‚ΠΎ для нас ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ, Bigtop собСрСт Ρ‚Π΅ вСрсии ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ собой совмСстимы. О Π½Π΅ΠΌ ΠΌΡ‹ ΠΈ расскаТСм Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π΄Π°Π»Π΅Π΅.

Apache Bigtop

Apache Bigtop ΠΈ Π²Ρ‹Π±ΠΎΡ€ Hadoop-дистрибутива сСгодня

Apache Bigtop – это инструмСнт для сборки, пакСтирования ΠΈ тСстирования ряда
open source ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ Hadoop ΠΈ Greenplum. Π£ Bigtop Π΅ΡΡ‚ΡŒ мноТСство
Ρ€Π΅Π»ΠΈΠ·ΠΎΠ². На ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания ΡΡ‚Π°Ρ‚ΡŒΠΈ послСдним ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅Π»ΠΈΠ·ΠΎΠΌ Π±Ρ‹Π»Π° вСрсия 1.4,
Π° Π² master Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ 1.5. Π’ Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ вСрсии
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². НапримСр, для 1.4 core-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Hadoop ΠΈΠΌΠ΅ΡŽΡ‚ Π²Π΅Ρ€ΡΠΈΡŽ 2.8.5, Π° Π² master
2.10.0. ΠœΠ΅Π½ΡΠ΅Ρ‚ΡΡ ΠΈ состав ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π§Ρ‚ΠΎ-Ρ‚ΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π΅ ΠΈ
нСобновляСмоС ΡƒΡ…ΠΎΠ΄ΠΈΡ‚, Π° Π½Π° Π΅Π³ΠΎ мСсто ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅, Π±ΠΎΠ»Π΅Π΅ вострСбованноС, ΠΈ
Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ это Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· сСмСйства самого Apache.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρƒ Bigtop Π΅ΡΡ‚ΡŒ мноТСство Ρ„ΠΎΡ€ΠΊΠΎΠ².

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

Π’ качСствС Ρ‚ΠΈΠ·Π΅Ρ€Π° β€” Ρ‚Π΅ΠΌ, ΠΊΠΎΠΌΡƒ Π² своС врСмя Π·Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Linux-всСлСнной, ΠΊΠ°ΠΊ Gentoo ΠΈ LFS, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, покаТСтся Π½ΠΎΡΡ‚Π°Π»ΡŒΠ³ΠΈΡ‡Π΅ΡΠΊΠΈ приятно ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с этой ΡˆΡ‚ΡƒΠΊΠΎΠΉ ΠΈ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Ρ‚Π΅ Β«Π±Ρ‹Π»ΠΈΠ½Π½Ρ‹Π΅Β» Π²Ρ€Π΅ΠΌΠ΅Π½Π°, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ сами искали (Π° Ρ‚ΠΎ ΠΈ писали) Π΅Π±ΠΈΠ»Π΄Ρ‹ ΠΈ рСгулярно пСрСсобирали с Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΠ°Ρ‚Ρ‡Π°ΠΌΠΈ ΠΌΠΎΠ·ΠΈΠ»Π»Ρƒ.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠΌ плюсом Bigtop ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΡΡ‚ΡŒ ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ инструмСнтов, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ основан. Π’ Π΅Π³ΠΎ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π΅ стоят Gradle ΠΈ Apache Maven. Gradle достаточно Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстСн ΠΊΠ°ΠΊ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Google собираСт Android. Он Π³ΠΈΠ±ΠΊΠΈΠΉ, Π½Ρƒ ΠΈ, ΠΊΠ°ΠΊ говорится, Β«ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ Π² бою». Maven – это ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΉ инструмСнт для сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π² самом Apache, ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² выпускаСтся ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· Maven, Ρ‚ΡƒΡ‚ Ρ‚ΠΎΠΆΠ΅ Π±Π΅Π· Π½Π΅Π³ΠΎ Π½Π΅ обошлось. Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° POM (project object model) – Β«Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉΒ» xml-Ρ„Π°ΠΉΠ» с описаниСм всСго Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Maven с вашим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ строится вся Ρ€Π°Π±ΠΎΡ‚Π°. ИмСнно Π²
части Maven ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСпятствия, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Ρ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ бСрущиСся Π·Π° Bigtop.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°

Π˜Ρ‚Π°ΠΊ, с Ρ‡Π΅Π³ΠΎ ΠΆΠ΅ стоит Π½Π°Ρ‡Π°Ρ‚ΡŒ? ИдСм Π½Π° страницу Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ΠΊΠ°Ρ‡Π°Π΅ΠΌ Π² Π²ΠΈΠ΄Π΅ Π°Ρ€Ρ…ΠΈΠ²Π° послСднюю ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. Π’Π°ΠΌ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹, собранныС Bigtop. ΠšΡΡ‚Π°Ρ‚ΠΈ говоря, ΠΈΠ· распространСнных ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ YUM ΠΈ APT.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ способом, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ послСдний ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с
github:

$ git clone --branch branch-1.4 https://github.com/apache/bigtop.git

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Β«bigtop»…

remote: Enumerating objects: 46, done.
remote: Counting objects: 100% (46/46), done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 40217 (delta 14), reused 10 (delta 1), pack-reused 40171
ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²: 100% (40217/40217), 43.54 MiB | 1.05 MiB/s, Π³ΠΎΡ‚ΠΎΠ²ΠΎ.
ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: 100% (20503/20503), Π³ΠΎΡ‚ΠΎΠ²ΠΎ.
Updating files: 100% (1998/1998), Π³ΠΎΡ‚ΠΎΠ²ΠΎ.

Выглядит ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΉΡΡ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ./bigtop ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

./bigtop-bigpetstore β€” дСмонстрационныС прилоТСния, синтСтичСскиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
./bigtop-ci β€” инструмСнтарий CI, jenkins
./bigtop-data-generators β€” гСнСрация Π΄Π°Π½Π½Ρ‹Ρ…, синтСтика, для smoke-тСстов ΠΈ Ρ‚.Π΄.
./bigtop-deploy β€” инструмСнты для дСплоя
./bigtop-packages β€” ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ, скрипты, ΠΏΠ°Ρ‚Ρ‡ΠΈ для сборки, основная Ρ‡Π°ΡΡ‚ΡŒ инструмСнта
./bigtop-test-framework β€” Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ тСстирования
./bigtop-tests β€” сами тСсты, Π½Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹Π΅ ΠΈ smoke
./bigtop_toolchain β€” ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ для сборки, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° срСды для Ρ€Π°Π±ΠΎΡ‚Ρ‹ инструмСнта
./build β€” Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ сборки
./dl β€” ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для скачанных исходников
./docker β€” сборка Π² docker-ΠΎΠ±Ρ€Π°Π·Π°Ρ…, тСстированиС
./gradle β€” ΠΊΠΎΠ½Ρ„ΠΈΠ³ gradle
./output – ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹ сборки
./provisioner β€” ΠΏΡ€ΠΎΠ²ΠΈΠΆΠΈΠ½ΠΈΠ½Π³

Π‘Π°ΠΌΡ‹ΠΌ интСрСсным Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС для нас являСтся основной ΠΊΠΎΠ½Ρ„ΠΈΠ³ ./bigtop/bigtop.bom, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ всС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с вСрсиями. ИмСнно Ρ‚ΡƒΡ‚ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° (Ссли Π²Π΄Ρ€ΡƒΠ³ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΅Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ) ΠΈΠ»ΠΈ Π²Π΅Ρ€ΡΠΈΡŽ сборки (Ссли, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ‚Ρ‡).

Π’Π°ΠΊΠΆΠ΅ большой интСрСс Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ./bigtop/bigtop-packages, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ нСпосрСдствСнноС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ процСссу сборки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с Π½ΠΈΠΌΠΈ.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ скачали Π°Ρ€Ρ…ΠΈΠ², распаковали Π΅Π³ΠΎ ΠΈΠ»ΠΈ сдСлали ΠΊΠ»ΠΎΠ½ с github, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ сборку?

НСт, сначала ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° окруТСния

И Ρ‚ΡƒΡ‚ понадобится нСбольшоС отступлСниС. Для сборки практичСски любого Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ слоТного ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ β€” Π² нашСм случаС это JDK, Ρ‚Π΅ ΠΆΠ΅ раздСляСмыС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Ρ‚. Π΄., инструмСнты, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ant, ivy2 ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ Π΅Ρ‰Π΅. Одним ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎΠ΅ для Bigtop ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ являСтся установка Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π° хостС сборки. ΠœΠΎΠ³Ρƒ ΠΎΡˆΠΈΠ±Π°Ρ‚ΡŒΡΡ Π² Ρ…Ρ€ΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½ΠΎ, каТСтся, с вСрсии 1.0 Ρ‚Π°ΠΊΠΆΠ΅ появился Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ сборки Π² Π·Π°Ρ€Π°Π½Π΅Π΅ сконфигурированных ΠΈ доступных docker-ΠΎΠ±Ρ€Π°Π·Π°Ρ…, с Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Ρ‚ΡƒΡ‚.

Π§Ρ‚ΠΎ касаСтся ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ окруТСния, Ρ‚ΠΎ для этого Π΅ΡΡ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ β€” Puppet.

МоТно Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, запуск дСлаСтся ΠΈΠ· ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°
инструмСнта, ./bigtop:

./gradlew toolchain
./gradlew toolchain-devtools
./gradlew toolchain-puppetmodules

Или нСпосрСдствСнно Ρ‡Π΅Ρ€Π΅Π· puppet:

puppet apply --modulepath=<path_to_bigtop> -e "include bigtop_toolchain::installer"
puppet apply --modulepath=<path_to_bigtop> -e "include bigtop_toolchain::deployment-tools"
puppet apply --modulepath=<path_to_bigtop> -e "include bigtop_toolchain::development-tools"

К соТалСнию, ΡƒΠΆΠ΅ Π½Π° этом этапС ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ слоТности. ΠžΠ±Ρ‰ΠΈΠΉ совСт Ρ‚ΡƒΡ‚ – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ дистрибутив, Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии Π½Π° хостС сборки Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ с docker.

Π‘Π±ΠΎΡ€ΠΊΠ°

Π§Ρ‚ΠΎ ΠΆΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ? ΠžΡ‚Π²Π΅Ρ‚ Π½Π° этот вопрос даст Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

./gradlew tasks

Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Package tasks Π΅ΡΡ‚ΡŒ ряд ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌΠΈ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°ΠΌΠΈ Bigtop.
Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎ суффиксу -rpm ΠΈΠ»ΠΈ -pkg-ind (Π² случаС сборки
Π² docker). Π’ нашСм случаС самым интСрСсным являСтся Hadoop.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ сборку Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ нашСго build-сСрвСра:

./gradlew hadoop-rpm

Bigtop сам скачаСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ исходники, Π½ΡƒΠΆΠ½Ρ‹Π΅ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΈ Π½Π°Ρ‡Π½Π΅Ρ‚ сборку. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π°Π±ΠΎΡ‚Π° инструмСнта завязана Π½Π° рСпозиториях Maven ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… источниках, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΅ΠΌΡƒ Π½ΡƒΠΆΠ΅Π½ доступ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚.

Π’ процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ формируСтся стандартный Π²Ρ‹Π²ΠΎΠ΄. Иногда ΠΏΠΎ Π½Π΅ΠΌΡƒ ΠΈ сообщСниям ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ. А ΠΈΠ½ΠΎΠ³Π΄Π° трСбуСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π’ этом случаС стоит Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ --info ΠΈΠ»ΠΈ --debug, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½ –stacktrace. Π•ΡΡ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ обращСния Π² списки рассылки, ΠΊΠ»ΡŽΡ‡ --scan.

Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ bigtop собСрСт всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ Π²Ρ‹Π»ΠΎΠΆΠΈΡ‚ Π² gradle, послС Ρ‡Π΅Π³ΠΎ выдаст ссылку,
пройдя ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ, ΠΊΠΎΠΌΠΏΠ΅Ρ‚Π΅Π½Ρ‚Π½Ρ‹ΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ смоТСт ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ сборка Π½Π΅ ΡƒΠ΄Π°Π»Π°ΡΡŒ.
НуТно ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ эта опция ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΉ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ для вас ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½ΠΎΠ΄, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния ΠΈ Ρ‚.Π΄., Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄ΡŒΡ‚Π΅ остороТны.

Часто ошибки ΡΠ²Π»ΡΡŽΡ‚ΡΡ слСдствиСм нСвозмоТности ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для сборки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· созданиС ΠΏΠ°Ρ‚Ρ‡Π° для исправлСния Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ Π² исходниках, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, адрСса Π² pom.xml Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ исходников. Π­Ρ‚ΠΎ дСлаСтся Ρ‡Π΅Ρ€Π΅Π· созданиС ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ./bigtop/bigtop-packages/src/common/oozie/ ΠΏΠ°Ρ‚Ρ‡Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π²ΠΈΠ΄Π΅ patch2-fix.diff.

--- a/pom.xml
+++ b/pom.xml
@@ -136,7 +136,7 @@
<repositories>
<repository>
<id>central</id>
- <url>http://repo1.maven.org/maven2</url>
+ <url>https://repo1.maven.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ чтСния этой ΡΡ‚Π°Ρ‚ΡŒΠΈ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π²Ρ‹ΡˆΠ΅ исправлСниС Π²Π°ΠΌ Π½Π΅ придСтся Π΄Π΅Π»Π°Ρ‚ΡŒ самим.

ΠŸΡ€ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ ΠΈ ΠΏΡ€Π°Π²ΠΎΠΊ Π² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сборки ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Β«ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒΒ» сборку Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ очистки:

./gradlew hadoop-clean
> Task :hadoop_vardefines
> Task :hadoop-clean
BUILD SUCCESSFUL in 5s
2 actionable tasks: 2 executed

Π­Ρ‚Π° опСрация ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ всС измСнСния ΠΏΠΎ сборкС Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, послС Ρ‡Π΅Π³ΠΎ сборка выполнится Π·Π°Π½ΠΎΠ²ΠΎ. Π’ этот Ρ€Π°Π· ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² docker-ΠΎΠ±Ρ€Π°Π·Π΅:

./gradlew -POS=centos-7 -Pprefix=1.2.1 hadoop-pkg-ind
> Task :hadoop-pkg-ind
Building 1.2.1 hadoop-pkg on centos-7 in Docker...
+++ dirname ./bigtop-ci/build.sh
++ cd ./bigtop-ci/..
++ pwd
+ BIGTOP_HOME=/tmp/bigtop
+ '[' 6 -eq 0 ']'
+ [[ 6 -gt 0 ]]
+ key=--prefix
+ case $key in
+ PREFIX=1.2.1
+ shift
+ shift
+ [[ 4 -gt 0 ]]
+ key=--os
+ case $key in
+ OS=centos-7
+ shift
+ shift
+ [[ 2 -gt 0 ]]
+ key=--target
+ case $key in
+ TARGET=hadoop-pkg
+ shift
+ shift
+ [[ 0 -gt 0 ]]
+ '[' -z x ']'
+ '[' -z x ']'
+ '[' '' == true ']'
+ IMAGE_NAME=bigtop/slaves:1.2.1-centos-7
++ uname -m
+ ARCH=x86_64
+ '[' x86_64 '!=' x86_64 ']'
++ docker run -d bigtop/slaves:1.2.1-centos-7 /sbin/init
+
CONTAINER_ID=0ce5ac5ca955b822a3e6c5eb3f477f0a152cd27d5487680f77e33fbe66b5bed8
+ trap 'docker rm -f
0ce5ac5ca955b822a3e6c5eb3f477f0a152cd27d5487680f77e33fbe66b5bed8' EXIT
....
ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π°
....
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-yarn-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-mapreduce-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-namenode-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-secondarynamenode-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-zkfc-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-journalnode-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-datanode-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-httpfs-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-yarn-resourcemanager-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-yarn-nodemanager-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-yarn-proxyserver-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-yarn-timelineserver-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-mapreduce-historyserver-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-client-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-conf-pseudo-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-doc-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-libhdfs-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-libhdfs-devel-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-fuse-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-debuginfo-2.8.5-1.el7.x86_64.rpm
+ umask 022
+ cd /bigtop/build/hadoop/rpm//BUILD
+ cd hadoop-2.8.5-src
+ /usr/bin/rm -rf /bigtop/build/hadoop/rpm/BUILDROOT/hadoop-2.8.5-1.el7.x86_64
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.uQ2FCn
+ exit 0
+ umask 022
Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.CwDb22
+ cd /bigtop/build/hadoop/rpm//BUILD
+ rm -rf hadoop-2.8.5-src
+ exit 0
[ant:touch] Creating /bigtop/build/hadoop/.rpm
:hadoop-rpm (Thread[Task worker for ':',5,main]) completed. Took 38 mins 1.151 secs.
:hadoop-pkg (Thread[Task worker for ':',5,main]) started.
> Task :hadoop-pkg
Task ':hadoop-pkg' is not up-to-date because:
Task has not declared any outputs despite executing actions.
:hadoop-pkg (Thread[Task worker for ':',5,main]) completed. Took 0.0 secs.
BUILD SUCCESSFUL in 40m 37s
6 actionable tasks: 6 executed
+ RESULT=0
+ mkdir -p output
+ docker cp
ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb:/bigtop/build .
+ docker cp
ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb:/bigtop/output .
+ docker rm -f ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb
ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb
+ '[' 0 -ne 0 ']'
+ docker rm -f ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb
Error: No such container:
ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb
BUILD SUCCESSFUL in 41m 24s
1 actionable task: 1 executed

Π‘Π±ΠΎΡ€ΠΊΠ° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡŒ ΠΏΠΎΠ΄ CentOS, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄ Ubuntu:

./gradlew -POS=ubuntu-16.04 -Pprefix=1.2.1 hadoop-pkg-ind

ΠšΡ€ΠΎΠΌΠ΅ сборки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΠΎΠ΄ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ дистрибутивы Linux, инструмСнт ΡƒΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с собранными ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

./gradlew yum

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎ smoke-тСсты ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π² docker.

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ кластСр ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Π½ΠΎΠ΄:

./gradlew -Pnum_instances=3 docker-provisioner

Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ smoke-тСсты Π² кластСрС ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Π½ΠΎΠ΄:

./gradlew -Pnum_instances=3 -Prun_smoke_tests docker-provisioner

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ кластСр:

./gradlew docker-provisioner-destroy

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²Π½ΡƒΡ‚Ρ€ΡŒ docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²:

./gradlew docker-provisioner-ssh

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ состояниС:

./gradlew docker-provisioner-status

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎ Deployment tasks ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎ тСсты, Ρ‚ΠΎ ΠΈΡ… достаточно большоС количСство, Π² основном smoke ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅. Π˜Ρ… Ρ€Π°Π·Π±ΠΎΡ€ находится Π·Π° Ρ€Π°ΠΌΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ. Π‘ΠΊΠ°ΠΆΡƒ лишь, Ρ‡Ρ‚ΠΎ сборка дистрибутива Π½Π΅ являСтся Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ слоТной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд. ВсС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρƒ сСбя Π² ΠΏΡ€ΠΎΠ΄Π΅, ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ Π½ΠΈΠΌ тСсты, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρƒ нас Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΈΡ… Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² тСстовом ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ.

ΠšΡ€ΠΎΠΌΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² Bigtop, Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π΅Ρ‰Π΅, Π΄Π°ΠΆΠ΅ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. ВсС это ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ автоматизируСтся ΠΈ укладываСтся Π² ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ CI/CD.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ собранный Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ дистрибутив Π½Π΅ слСдуСт сразу ΠΆΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½. НуТно ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли Π΅ΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² сборкС ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ своСго дистрибутива, Ρ‚ΠΎ Π² это Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒΡΡ финансово ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² сочСтании с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΈ Π±Π΅Π· коммСрчСских Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ сам ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Bigtop нуТдаСтся Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ ΠΈ, ΠΏΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ Π½Π° сСгодня Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² Π½Π΅ΠΌ Π½Π΅ происходит. Π’Π°ΠΊΠΆΠ΅ нСпонятна пСрспСктива появлСния Π² Π½Π΅ΠΌ Hadoop 3. К слову, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² сборкС Hadoop 3, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΠΊ ΠΎΡ‚ Arenadata, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠΌΠΈΠΌΠΎ стандартных
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ Ρ†Π΅Π»Ρ‹ΠΉ ряд Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… (Ranger, Knox, NiFi).

Π§Ρ‚ΠΎ касаСтся РостСлСкома, Ρ‚ΠΎ для нас Bigtop – это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· рассматриваСмых Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π½Π° сСгодняшний дСнь. ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΠΌ ΠΌΡ‹ свой Π²Ρ‹Π±ΠΎΡ€ Π½Π° Π½Π΅ΠΌ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ – ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ врСмя.

Appendix

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² сборку, Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ описаниС Π² bigtop.bom ΠΈ ./bigtop-packages. МоТно ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ слоТно, ΠΊΠ°ΠΊ каТСтся Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд.

А Ρ‡Ρ‚ΠΎ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅ Π²Ρ‹? Π‘ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π΄Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ вашС ΠΌΠ½Π΅Π½ΠΈΠ΅ Π² коммСнтариях ΠΈ спасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ «РостСлСкома»

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ