ΠΠ΅ΡΠΎΡΡΠ½ΠΎ Π½Π΅ Π΅ ΡΠ°ΠΉΠ½Π°, ΡΠ΅ ΠΌΠΈΠ½Π°Π»Π°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π° Π±Π΅ΡΠ΅ Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π·Π° Apache Hadoop. ΠΠΈΠ½Π°Π»Π°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π° Cloudera ΠΈ Hortonworks ΡΠ΅ ΡΠ»ΡΡ Π° (ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠ΄ΠΎΠ±ΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ), Π° Mapr, ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΈ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π±Π΅ΡΠ΅ ΠΏΡΠΎΠ΄Π°Π΄Π΅Π½ Π½Π° Hewlett Packard. Π Π°ΠΊΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΏΠΎ-ΡΠ°Π½ΠΎ, Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΈ, ΡΠ΅ΡΡΠΎ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ°Π²ΠΈ ΠΈΠ·Π±ΠΎΡ ΠΌΠ΅ΠΆΠ΄Ρ Cloudera ΠΈ Hortonworks, Π΄Π½Π΅Ρ, ΡΠ²ΠΈ, Π½ΡΠΌΠ°ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΠΈΠ·Π±ΠΎΡ. ΠΡΡΠ³Π° ΠΈΠ·Π½Π΅Π½Π°Π΄Π° Π±Π΅ΡΠ΅ ΡΠ°ΠΊΡΡΡ, ΡΠ΅ Cloudera ΠΎΠ±ΡΠ²ΠΈ ΠΏΡΠ΅Π· ΡΠ΅Π²ΡΡΠ°ΡΠΈ ΡΠ°Π·ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π°, ΡΠ΅ ΡΠ΅ ΡΠΏΡΠ΅ Π΄Π° ΠΏΡΡΠΊΠ° Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΎΡ ΡΠ²ΠΎΡΡΠ° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈ ΡΠ΅ Π²Π΅ΡΠ΅ ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΈ ΡΠ°ΠΌΠΎ ΡΡΠ΅Π· ΠΏΠ»Π°ΡΠ΅Π½ Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ. Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, Π²ΡΠ΅ ΠΎΡΠ΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ Π½Π°ΠΉ-Π½ΠΎΠ²ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° CDH ΠΈ HDP, ΠΏΡΡΠ½Π°ΡΠΈ ΠΏΡΠ΅Π΄ΠΈ ΠΊΡΠ°Ρ Π½Π° 2019 Π³., ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° ΡΡΡ ΡΠ΅ ΠΎΡΠ°ΠΊΠ²Π° ΠΎΡ Π΅Π΄Π½Π° Π΄ΠΎ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ. ΠΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π°? ΠΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΡΠ° ΠΏΠ»Π°ΡΠΈΠ»ΠΈ Π·Π° Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ, Π½ΠΈΡΠΎ Π½Π΅ ΡΠ΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ. Π Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΈΡΠΊΠ°Ρ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ ΠΊΡΠΌ ΠΏΠ»Π°ΡΠ΅Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ°, Π½ΠΎ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈΡΠΊΠ°Ρ Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ Π½Π°ΠΉ-Π½ΠΎΠ²ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΡ ΠΌΠ΅ ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ. Π Π½Π΅Π³ΠΎ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΠΈ Π·Π° ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ ΠΎΡ ΡΠ°Π·ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ.
Π‘ΡΠ°ΡΠΈΡΡΠ° Π΅ ΠΏΠΎ-ΡΠΊΠΎΡΠΎ ΠΎΠ±Π·ΠΎΡΠ½Π°. ΠΡΠΌΠ° Π΄Π° ΡΡΠ°Π²Π½ΡΠ²Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ ΠΈ Π΄Π° Π³ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° Π² Π΄Π΅ΡΠ°ΠΉΠ»ΠΈ ΠΈ Π½ΡΠΌΠ° Π΄Π° ΠΈΠΌΠ° ΡΠ΅ΡΠ΅ΠΏΡΠΈ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈΠΌ. ΠΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΡΠ°Π½Π΅? Π©Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π½Π°ΠΊΡΠ°ΡΠΊΠΎ Π·Π° ΡΠ°ΠΊΡΠ² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ Π·Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠΎ Arenadata Hadoop, ΠΊΠΎΠΉΡΠΎ Ρ ΠΏΡΠ°Π²ΠΎ Π·Π°ΡΠ»ΡΠΆΠ°Π²Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΡΠΎ Π½ΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ ΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π΄Π½Π΅Ρ Π΅ ΡΡΠ΄ΠΊΠΎΡΡ. Π ΡΠΎΠ³Π°Π²Π° ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° Vanilla Hadoop, Π³Π»Π°Π²Π½ΠΎ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ βΡΠ³ΠΎΡΠ²Π΅Π½β Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Apache Bigtop. ΠΠΎΡΠΎΠ²? Π’ΠΎΠ³Π°Π²Π° Π΄ΠΎΠ±ΡΠ΅ Π΄ΠΎΡΠ»ΠΈ ΠΏΠΎΠ΄ ΠΊΠ°Ρ.
Arenadata Hadoop
Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π½ΠΎΠ² ΠΈ Π·Π°ΡΠ΅Π³Π° ΠΌΠ°Π»ΠΊΠΎ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ Π·Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΡΡΠ΅ΡΠ½ΠΎΡΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅. ΠΠ° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° Π₯Π°Π±ΡΠ΅ ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ Π·Π° Π½Π΅Π³ΠΎ
ΠΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈΡ
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΡΡΠ½Π°ΡΠ° ΠΊΠ°ΡΡΠ°
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ° Π½Π° ΠΊΠ»ΡΡΡΠ΅Ρ Arenadata
ΠΠ»ΡΡΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡ Π½Π° Arenadata Π΅
ΠΠ° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Hadoop 3 ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΎΠ±ΡΠ½ΠΎΡΡΠ½Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° Π²ΡΠ² Π²ΡΡΠ·ΠΊΠ° Ρ ADCM, Π° Π·Π° hadoop 2 ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ
ΠΠΊΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΌΠΈΠ½ΡΡΠΈΡΠ΅, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΡΡΠΈΡΠ΅ ΠΊΠ°ΡΠΎ ΠΏΡΠΈ Π²ΡΠΈΡΠΊΠΈ Π΄ΡΡΠ³ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ Π½Π° Hadoop. Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:
- Π’Π°ΠΊΠ° Π½Π°ΡΠ΅ΡΠ΅Π½ΠΎΡΠΎ βΠ·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊΠ°β. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½Π° Cloudera ΠΈ Hortonworks, Π²Π΅ΡΠ΅ ΡΠ°Π·Π±ΡΠ°Ρ ΠΌΠ΅, ΡΠ΅ Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠΌΠ° ΡΠΈΡΠΊ ΠΎΡ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ°.
- ΠΠ½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΠΎΡΡΠ°Π²Π°Π½Π΅ Π·Π°Π΄ Apache Π½Π°Π³ΠΎΡΠ΅ ΠΏΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ.
Vanilla Hadoop
ΠΠ°ΠΊΡΠΎ Π·Π½Π°Π΅ΡΠ΅, Hadoop Π½Π΅ Π΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ΅Π½ ΠΏΡΠΎΠ΄ΡΠΊΡ, Π° Π²ΡΡΡΠ½ΠΎΡΡ ΡΡΠ»Π° Π³Π°Π»Π°ΠΊΡΠΈΠΊΠ° ΠΎΡ ΡΡΠ»ΡΠ³ΠΈ ΠΎΠΊΠΎΠ»ΠΎ ΡΠ²ΠΎΡΡΠ° HDFS ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠ°Π»ΠΊΠΎ Ρ
ΠΎΡΠ° ΡΠ΅ Π±ΡΠ΄Π°Ρ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈ ΠΎΡ Π΅Π΄ΠΈΠ½ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠ»ΡΡΡΠ΅Ρ. ΠΡΠΊΠΎΠΈ ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ ΠΎΡ Hive, Π΄ΡΡΠ³ΠΈ ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ ΠΎΡ Presto, Π° ΠΈΠΌΠ° ΠΈ HBase ΠΈ Phoenix, Spark ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅. Oozie, Sqoop ΠΈ Flume ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π·Π° ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡ ΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ. Π Π°ΠΊΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ½Π΅ Π²ΡΠΏΡΠΎΡΡΡ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°, ΡΠΎΠ³Π°Π²Π° Kerberos Π²Π΅Π΄Π½Π°Π³Π° ΡΠ΅ Π·Π°ΠΏΠΎΠΌΠ½Ρ Π²ΡΠ² Π²ΡΡΠ·ΠΊΠ° Ρ Ranger.
ΠΠ²ΠΎΠΈΡΠ½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π½Π° Hadoop ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π½Π° ΡΠ΅Π±ΡΠ°ΠΉΡΠ° Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅ Π½Π° Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° tarballs. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΡΠ°, Π½ΠΎ Ρ Π΅Π΄Π½ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅: Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΎΡΠΎ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΎΡ "ΡΡΡΠΎΠ²ΠΈ" Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠ΅ΡΠΎ Π½Π°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅, Π½ΡΠΌΠ° Π΄Π° ΠΈΠΌΠ°ΡΠ΅ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΎ Π΄ΠΎΠ²Π΅ΡΠΈΠ΅ Π² ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Π½Π° ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π΅Π΄ΠΈΠ½ Ρ Π΄ΡΡΠ³. ΠΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½ΠΈΡΡ Π²Π°ΡΠΈΠ°Π½Ρ Π΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Ρ Apache Bigtop. Bigtop ΡΠ΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°ΡΠ΅ ΠΎΡ Apache maven Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΈ Π΄Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ. ΠΠΎ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎ Π·Π° Π½Π°Ρ, Bigtop ΡΠ΅ ΡΠ³Π»ΠΎΠ±ΠΈ ΡΠ΅Π·ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ Π΅Π΄ΠΈΠ½ Ρ Π΄ΡΡΠ³. Π©Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΡΠΎΠ²Π° ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ.
Apache bigtop
Apache Bigtop Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅, ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ ΠΈ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π΄ΠΈΡΠ°
ΠΏΡΠΎΠ΅ΠΊΡΠΈ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΊΠ°ΡΠΎ Hadoop ΠΈ Greenplum. Bigtop ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ
ΠΈΠ·Π΄Π°Π½ΠΈΡ. ΠΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π°ΠΉ-Π½ΠΎΠ²Π°ΡΠ° ΡΡΠ°Π±ΠΈΠ»Π½Π° Π²Π΅ΡΡΠΈΡ Π΅ Π²Π΅ΡΡΠΈΡ 1.4,
ΠΈ Π² master Π±Π΅ΡΠ΅ 1.5. Π Π°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° 1.4 Hadoop ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΈΠΌΠ°Ρ Π²Π΅ΡΡΠΈΡ 2.8.5 ΠΈ Π² master
2.10.0. Π‘ΠΏΠΈΡΡΠΊΡΡ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΡΡΡΠΎ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ. ΠΠ΅ΡΠΎ ΡΡΠ°ΡΠΎ ΠΈ
Π½Π΅Π²ΡΠ·ΠΎΠ±Π½ΠΎΠ²ΡΠ΅ΠΌΠΎΡΠΎ ΡΠΈ ΠΎΡΠΈΠ²Π° ΠΈ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΎ ΠΌΡΡΡΠΎ ΠΈΠ΄Π²Π° Π½Π΅ΡΠΎ Π½ΠΎΠ²ΠΎ, ΠΏΠΎ-ΡΡΡΡΠ΅Π½ΠΎ ΠΈ
Π½Π΅ Π½Π΅ΠΏΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π΅ΡΠΎ ΠΎΡ ΡΠ°ΠΌΠΎΡΠΎ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ Apache.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Bigtop ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ
ΠΠΎΠ³Π°ΡΠΎ Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π²Π°ΠΌΠ΅ Ρ Bigtop, ΠΏΡΠ΅Π΄ΠΈ Π²ΡΠΈΡΠΊΠΎ Π±ΡΡ ΠΌΠ΅ ΠΈΠ·Π½Π΅Π½Π°Π΄Π°Π½ΠΈ ΠΎΡ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΡΠΊΡΠΎΠΌΠ½ΠΎΡΡ, Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π½Π° Apache, ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ»Π°Π²Π°, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠ° ΠΎΠ±ΡΠ½ΠΎΡΡ. ΠΡ ΡΠΎΠ²Π° ΡΠ»Π΅Π΄Π²Π°, ΡΠ΅ ΠΈΠΌΠ° ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΈ ΡΡΡΡΠ΅Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Π»ΠΈ Π²ΡΠ² ΡΠΎΡΡΠΌΠΈ ΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΊΠΈ ΡΠΏΠΈΡΡΡΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π΄Π°Π΄Π΅ Π½ΠΈΡΠΎ. ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΡΠ΅ ΠΎΠΊΠ°Π·Π° ΡΡΡΠ΄Π½Π° Π·Π°Π΄Π°ΡΠ° Π·Π° Π½Π°Ρ Π΄Π° Π·Π°Π²ΡΡΡΠΈΠΌ ΠΏΡΠ»Π½ΠΎΡΠΎ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ° ΠΏΠΎΡΠ°Π΄ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅ Π½Π° ΡΠ°ΠΌΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Π½ΠΎ ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΡΠΎΠ²Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ.
ΠΠ°ΡΠΎ ΡΠΈΠΉΠ·ΡΡ, ΠΎΠ½Π΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ Π²Π΅Π΄Π½ΡΠΆ ΡΠ° ΠΏΠΎΡΠ΅ΡΠΈΠ»ΠΈ ΡΠ°ΠΊΠΈΠ²Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΎΡ Π²ΡΠ΅Π»Π΅Π½Π°ΡΠ° Π½Π° Linux ΠΊΠ°ΡΠΎ Gentoo ΠΈ LFS, ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΡΡ Π·Π° Π½ΠΎΡΡΠ°Π»Π³ΠΈΡΠ½ΠΎ ΠΏΡΠΈΡΡΠ½ΠΎ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Ρ ΡΠΎΠ²Π° Π½Π΅ΡΠΎ ΠΈ Π΄Π° ΡΠΈ ΡΠΏΠΎΠΌΠ½ΡΡ ΠΎΠ½Π΅Π·ΠΈ βΠ΅ΠΏΠΈΡΠ½ΠΈβ Π²ΡΠ΅ΠΌΠ΅Π½Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π½ΠΈΠ΅ ΡΠ°ΠΌΠΈΡΠ΅ ΡΡΡΡΠΈΡ ΠΌΠ΅ (ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ ΠΏΠΈΡΠ΅Ρ ΠΌΠ΅) Π΅Π»Π΅ΠΊΡΡΠΎΠ½Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΠΈ ΠΈ ΡΠ΅Π΄ΠΎΠ²Π½ΠΎ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Ρ ΠΌΠ΅ mozilla Ρ Π½ΠΎΠ²ΠΈ ΠΏΠ°ΡΠΎΠ²Π΅.
ΠΠΎΠ»ΡΠΌΠΎΡΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎ Π½Π° Bigtop Π΅ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΎΡΡΡΠ° ΠΈ Π³ΡΠ²ΠΊΠ°Π²ΠΎΡΡΡΠ° Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅, Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π°. ΠΠ°Π·ΠΈΡΠ°Π½ Π΅ Π½Π° Gradle ΠΈ Apache Maven. Gradle Π΅ Π΄ΠΎΡΡΠ° Π΄ΠΎΠ±ΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, Ρ ΠΊΠΎΠΉΡΠΎ Google ΡΡΠ·Π΄Π°Π²Π° Android. Π’ΠΎΠΉ Π΅ Π³ΡΠ²ΠΊΠ°Π² ΠΈ, ΠΊΠ°ΠΊΡΠΎ ΡΠ΅ ΠΊΠ°Π·Π²Π°, "ΡΠ΅ΡΡΠ²Π°Π½ Π² Π±ΠΈΡΠΊΠ°". Maven Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π² ΡΠ°ΠΌΠΈΡ Apache ΠΈ ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ ΡΠ΅ ΠΏΡΡΠΊΠ°Ρ ΡΡΠ΅Π· Maven, ΡΠΎΠΉ ΡΡΡΠΎ Π½Π΅ Π±ΠΈ ΠΌΠΎΠ³ΡΠ» Π΄Π° ΠΌΠΈΠ½Π΅ Π±Π΅Π· Π½Π΅Π³ΠΎ. Π‘ΡΡΡΠ²Π° ΡΠΈ Π΄Π° ΡΠ΅ ΠΎΠ±ΡΡΠ½Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° POM (ΠΎΠ±Π΅ΠΊΡΠ΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°) - "ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»Π΅Π½" 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
- Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΡΠΈΠ½ΡΠ΅ΡΠΈΠΊΠ°, Π·Π° Π΄ΠΈΠΌΠ½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΈ Π΄Ρ.
./bigtop-deploy
- ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅
./bigtop-packages
- ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, ΠΏΠ°ΡΠΎΠ²Π΅ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅, ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°ΡΡ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°
./bigtop-test-framework
- ΡΠ°ΠΌΠΊΠ° Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅
./bigtop-tests
- ΡΠ°ΠΌΠΈΡΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅, Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ ΠΈ Π΄ΠΈΠΌ
./bigtop_toolchain
- ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΠ΅Π΄Π°, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°
./build
- ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ
./dl
- Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π·Π° ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½ΠΈ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ
./docker
- Π²Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄ΠΎΠΊΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠ΅ΡΡΠ²Π°Π½Π΅
./gradle
- ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° gradle
./output
β Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΎΡΠΈΠ²Π°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ
./provisioner
β ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅
ΠΠ°ΠΉ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ Π·Π° Π½Π°Ρ Π΅ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ./bigtop/bigtop.bom
, Π² ΠΊΠΎΠΉΡΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Ρ Π²Π΅ΡΡΠΈΠΈ. Π’ΡΠΊ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΠΌ ΡΠ°Π·Π»ΠΈΡΠ½Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠ° (Π°ΠΊΠΎ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌ) ΠΈΠ»ΠΈ Π²Π΅ΡΡΠΈΡ Π½Π° Π°ΡΠ΅ΠΌΠ±Π»ΠΈΡΠ°Π½Π΅ (Π°ΠΊΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΌΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ).
ΠΠΎΠ»ΡΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΠΈ ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° ./bigtop/bigtop-packages
, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΏΡΡΠΊΠΎ ΡΠ²ΡΡΠ·Π°Π½ΠΎ Ρ ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ Ρ ΡΡΡ
.
Π ΡΠ°ΠΊΠ°, ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡ ΠΌΠ΅ Π°ΡΡ ΠΈΠ²Π°, ΡΠ°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Ρ ΠΌΠ΅ Π³ΠΎ ΠΈΠ»ΠΈ Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΠΌΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΠ½Π³ ΠΎΡ github, ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ?
ΠΠ΅, Π½Π΅ΠΊΠ° ΠΏΡΡΠ²ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΠΌ ΡΡΠ΅Π΄Π°ΡΠ°.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π½Π° ΠΎΠΊΠΎΠ»Π½Π°ΡΠ° ΡΡΠ΅Π΄Π°
Π ΡΡΠΊ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΠΌΠ°Π»ΠΊΠΎ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅. ΠΠ° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ΠΊΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ ΠΏΡΠΎΠ΄ΡΠΊΡ, ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠ΅Π΄Π° - Π² Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΡΠΎΠ²Π° Π΅ JDK, ΡΡΡΠΈΡΠ΅ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π·Π°Π³Π»Π°Π²Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Ρ.Π½., ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ant, ivy2 ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ. ΠΠ΄Π½Π° ΠΎΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π½Π°ΡΠ° ΡΡΠ΅Π΄Π° Π·Π° Bigtop Π΅ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° Ρ ΠΎΡΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅. ΠΠΎΠΆΠ΅ Π΄Π° Π³ΡΠ΅ΡΠ° Π² Ρ ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ°, Π½ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ ΠΎΡ Π²Π΅ΡΡΠΈΡ 1.0 ΠΈΠΌΠ° ΠΈ ΠΎΠΏΡΠΈΡ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π² ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΈ ΠΈ Π½Π°Π»ΠΈΡΠ½ΠΈ Π΄ΠΎΠΊΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΡΠΊ.
Π©ΠΎ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π΄ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°, ΠΈΠΌΠ° ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊ Π·Π° ΡΠΎΠ²Π° - Puppet.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ./bigtop:
./gradlew toolchain
./gradlew toolchain-devtools
./gradlew toolchain-puppetmodules
ΠΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΡΠ΅Π· ΠΌΠ°ΡΠΈΠΎΠ½Π΅ΡΠΊΠ°:
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"
ΠΠ° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΠΈ Π½Π° ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Ρ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ. ΠΠ±ΡΠΈΡΡ ΡΡΠ²Π΅Ρ ΡΡΠΊ Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ, Π°ΠΊΡΡΠ°Π»Π½Π° Π½Π° Ρ ΠΎΡΡΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ, ΠΈΠ»ΠΈ Π΄Π° ΠΎΠΏΠΈΡΠ°ΡΠ΅ Π΄ΠΎΠΊΠ΅Ρ ΠΏΡΡΡ.
ΠΌΠΎΠ½ΡΠ°ΠΆ
ΠΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΡΡΠ±Π΅ΡΠ΅ΠΌ? ΠΡΠ³ΠΎΠ²ΠΎΡΡΡ Π½Π° ΡΠΎΠ·ΠΈ Π²ΡΠΏΡΠΎΡ ΡΠ΅ Π΄Π°Π΄Π΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°
./gradlew tasks
Π ΡΠ°Π·Π΄Π΅Π»Π° ΠΠ°ΠΊΠ΅ΡΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΈΠΌΠ° ΡΠ΅Π΄ΠΈΡΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΊΡΠ°ΠΉΠ½ΠΈΡΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ Π½Π° Bigtop.
Π’Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π· Π½Π°ΡΡΠ°Π²ΠΊΠ°ΡΠ° -rpm ΠΈΠ»ΠΈ -pkg-ind (Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΡΠ³ΡΠ°Π΄Π°
Π² Π΄ΠΎΠΊΠ΅Ρ). Π Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ Π½Π°ΠΉ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈΡΡ Π΅ Hadoop.
ΠΠ΅ΠΊΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌ Π² Π½Π°ΡΠ°ΡΠ° ΡΡΡΠ²ΡΡΠ½Π° ΡΡΠ΅Π΄Π° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅:
./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
Π’Π°Π·ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ΅ Π²ΡΡΠ½Π΅ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠΈ ΠΎΡΠ½ΠΎΠ²ΠΎ. Π’ΠΎΠ·ΠΈ ΠΏΡΡ Π½Π΅ΠΊΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Π΄ΠΎΠΊΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅:
./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
ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° ΡΠΈ ΡΠΏΠΎΠΌΠ½ΠΈΡΠ΅ Π·Π° Π΄ΠΈΠΌΠ½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π² Π΄ΠΎΠΊΠ΅Ρ.
Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»ΡΡΡΠ΅Ρ ΠΎΡ ΡΡΠΈ Π²ΡΠ·Π΅Π»Π°:
./gradlew -Pnum_instances=3 docker-provisioner
ΠΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅ Π΄ΠΈΠΌΠ½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ Π½Π° ΠΊΠ»ΡΡΡΠ΅Ρ ΠΎΡ ΡΡΠΈ Π²ΡΠ·Π΅Π»Π°:
./gradlew -Pnum_instances=3 -Prun_smoke_tests docker-provisioner
ΠΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΡΠ΅Ρ:
./gradlew docker-provisioner-destroy
ΠΠ·Π΅ΠΌΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π²ΡΡΡΠ΅ Π² Π΄ΠΎΠΊΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ:
./gradlew docker-provisioner-ssh
ΠΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅:
./gradlew docker-provisioner-status
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π·Π° ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ°.
ΠΠΊΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΡΠ΅ΡΡΠΎΠ²Π΅, ΡΠΎΠ³Π°Π²Π° ΠΈΠΌΠ° Π΄ΠΎΡΡΠ° Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΠΎΡ ΡΡΡ , Π³Π»Π°Π²Π½ΠΎ Π΄ΠΈΠΌ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ. Π’Π΅Ρ Π½ΠΈΡΡ Π°Π½Π°Π»ΠΈΠ· Π΅ ΠΈΠ·Π²ΡΠ½ ΠΎΠ±Ρ Π²Π°ΡΠ° Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ. ΠΠ΅ΠΊΠ° ΡΠ°ΠΌΠΎ Π΄Π° ΠΊΠ°ΠΆΠ°, ΡΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΡΡΠ΄Π½Π° Π·Π°Π΄Π°ΡΠ°, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π½Π° ΠΏΡΡΠ² ΠΏΠΎΠ³Π»Π΅Π΄. ΠΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π² Π½Π°ΡΠ΅ΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, ΡΡΠΏΡΡ ΠΌΠ΅ Π΄Π° ΡΠ³Π»ΠΎΠ±ΠΈΠΌ ΠΈ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΡΠ΅ΡΡΠΎΠ²Π΅ Π²ΡΡΡ Ρ ΡΡΡ , Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π½ΡΠΌΠ°Ρ ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΈΠΌ ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΡΠ΅ΡΡΠΎΠ²Π° ΡΡΠ΅Π΄Π°.
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π² Bigtop Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Π½Π΅ΡΠΎ Π΄ΡΡΠ³ΠΎ, Π΄ΠΎΡΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠΎΡΡΡΠ΅Ρ. ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π΅ ΠΏΠ΅ΡΡΠ΅ΠΊΡΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΈ ΡΠ΅ Π²ΠΏΠΈΡΠ²Π° Π² ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π½Π° CI/CD.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ Π΅, ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π° ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½Π° Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ. Π’ΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅, ΡΠ΅ Π°ΠΊΠΎ ΠΈΠΌΠ° ΡΠ΅Π°Π»Π½Π° Π½ΡΠΆΠ΄Π° Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ΅ Π²Π°ΡΠ°ΡΠ° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ, ΡΠΎΠ³Π°Π²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°ΡΠ΅ Π² Π½Π΅Ρ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΠΎ ΠΈ Π²ΡΠ² Π²ΡΠ΅ΠΌΠ΅ΡΠΎ.
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Ρ ΠΏΡΠ°Π²ΠΈΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»Π΅Π½ Π΅ΠΊΠΈΠΏ, Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΌΠΈΠ½Π΅ Π±Π΅Π· ΡΡΡΠ³ΠΎΠ²ΡΠΊΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ°ΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ, ΡΠ΅ ΡΠ°ΠΌΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Bigtop ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ ΠΎΡ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ Π΄Π½Π΅Ρ Π² Π½Π΅Π³ΠΎ Π½ΡΠΌΠ° Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅. ΠΠ΅ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΠ° Π΅ ΠΈ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π°ΡΠ° Π² Π½Π΅Π³ΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Hadoop 3. ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, Π°ΠΊΠΎ Π½Π°ΠΈΡΡΠΈΠ½Π° ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ Hadoop 3, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅
ΠΈΠΌΠ° ΡΠ΅Π΄ΠΈΡΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ (Ranger, Knox, NiFi).
Π©ΠΎ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π΄ΠΎ Rostelecom, Π·Π° Π½Π°Ρ Bigtop Π΅ Π΅Π΄Π½Π° ΠΎΡ ΠΎΠΏΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Ρ Π΄Π½Π΅Ρ. ΠΠ°Π»ΠΈ ΡΠ΅ ΡΠ΅ ΡΠ΅ΡΠΈΠΌ ΠΈΠ»ΠΈ Π½Π΅, ΡΠ°ΠΌΠΎ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅.
ΠΠΏΠ΅Π½Π΄ΠΈΠΊΡ
ΠΠ° Π΄Π° Π²ΠΊΠ»ΡΡΠΈΡΠ΅ Π½ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΡΠ±ΠΎΡΠΊΠ°ΡΠ°, ΡΡΡΠ±Π²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ ΠΌΡ ΠΊΡΠΌ bigtop.bom ΠΈ ./bigtop-packages. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΠΏΠΈΡΠ°ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π° ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ. ΠΠΏΠΈΡΠ°ΠΉΡΠ΅ ΡΠ΅ Π΄Π° Π³ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅. ΠΠ΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΡΡΠ΄Π½ΠΎ, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π½Π° ΠΏΡΡΠ² ΠΏΠΎΠ³Π»Π΅Π΄.
ΠΠ°ΠΊΠ²ΠΎ ΠΌΠΈΡΠ»ΠΈΡ? Π©Π΅ ΡΠ΅ ΡΠ°Π΄Π²Π°ΠΌΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π²Π°ΡΠ΅ΡΠΎ ΠΌΠ½Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ ΠΈ Π²ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΡΠΎ!
Π‘ΡΠ°ΡΠΈΡΡΠ° Π΅ ΠΈΠ·Π³ΠΎΡΠ²Π΅Π½Π° ΠΎΡ Π΅ΠΊΠΈΠΏΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π° Π ΠΎΡΡΠ΅Π»Π΅ΠΊΠΎΠΌ
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com