Apache Bigtop un Hadoop izplatÄ«Å”anas izvēle Å”odien

Apache Bigtop un Hadoop izplatÄ«Å”anas izvēle Å”odien

DroÅ”i vien nav noslēpums, ka pagājuÅ”ais gads Apache Hadoop bija lielu pārmaiņu gads. PagājuÅ”ajā gadā Cloudera un Hortonworks apvienojās (bÅ«tÄ«bā pēdējā iegāde), un Mapr nopietnu finansiālu problēmu dēļ tika pārdots Hewlett Packard. Un, ja dažus gadus iepriekÅ” lokālo instalāciju gadÄ«jumā bieži bija jāizdara izvēle starp Cloudera un Hortonworks, Å”odien diemžēl mums Ŕādas izvēles nav. Vēl viens pārsteigums bija fakts, ka Cloudera Ŕā gada februārÄ« paziņoja, ka pārtrauks izlaist tās izplatÄ«Å”anas bināros komplektus publiskajā repozitorijā, un tagad tie ir pieejami tikai ar maksas abonementu. Protams, joprojām ir iespējams lejupielādēt jaunākās CDH un HDP versijas, kas izlaistas lÄ«dz 2019. gada beigām, un to atbalsts ir paredzēts vienu lÄ«dz divus gadus. Bet ko darÄ«t tālāk? Tiem, kas iepriekÅ” maksāja par abonementu, nekas nav mainÄ«jies. Un tiem, kuri nevēlas pārslēgties uz maksas distribÅ«cijas versiju, bet tajā paŔā laikā vēlas saņemt jaunākās klasteru komponentu versijas, kā arÄ« ielāpus un citus atjauninājumus, esam sagatavojuÅ”i Å”o rakstu. Tajā mēs apsvērsim iespējamās iespējas, kā izkļūt no Ŕīs situācijas.

Raksts drÄ«zāk ir apskats. Tajā nebÅ«s izplatÄ«jumu salÄ«dzinājuma un detalizētas to analÄ«zes, kā arÄ« nebÅ«s recepÅ”u to instalÄ“Å”anai un konfigurÄ“Å”anai. Kas notiks? Mēs Ä«si runāsim par tādu izplatÄ«Å”anu kā Arenadata Hadoop, kas pamatoti ir pelnÄ«jis mÅ«su uzmanÄ«bu, pateicoties tā pieejamÄ«bai, kas mÅ«sdienās ir ļoti reti sastopama. Un tad mēs runāsim par Vanilla Hadoop, galvenokārt par to, kā to var ā€œpagatavotā€, izmantojot Apache Bigtop. Vai esat gatavs? Tad laipni lÅ«dzam kaÄ·Ä«.

Arenadata Hadoop

Apache Bigtop un Hadoop izplatÄ«Å”anas izvēle Å”odien

Å is ir pilnÄ«gi jauns un pagaidām mazpazÄ«stams vietējās attÄ«stÄ«bas izplatÄ«Å”anas komplekts. Diemžēl Å”obrÄ«d uz HabrĆ© ir tikai Å is raksts.

PlaŔāku informāciju var atrast oficiālajā vietnē TieÅ”saistē projektu. Jaunākās izplatÄ«Å”anas versijas ir balstÄ«tas uz Hadoop 3.1.2 3. versijai un 2.8.5 2. versijai.

Informāciju par ceļa karti var atrast Ŕeit.

Apache Bigtop un Hadoop izplatÄ«Å”anas izvēle Å”odien
Arenadata klastera pārvaldnieka saskarne

Arenadata pamatprodukts ir Arenadata Cluster Manager (ADCM), kas tiek izmantots dažādu uzņēmuma programmatÅ«ras risinājumu instalÄ“Å”anai, konfigurÄ“Å”anai un uzraudzÄ«bai. ADCM tiek izplatÄ«ts bez maksas, un tā funkcionalitāte tiek paplaÅ”ināta, pievienojot komplektus, kas ir iespējamu rokasgrāmatu komplekts. Pakas ir sadalÄ«tas divos veidos: uzņēmums un kopiena. Pēdējās ir pieejamas bezmaksas lejupielādei no Arenadata vietnes. Ir iespējams arÄ« izveidot savu komplektu un savienot to ar ADCM.

Hadoop 3 izvietoÅ”anai un pārvaldÄ«bai komplekta kopienas versija tiek piedāvāta kopā ar ADCM, taču Hadoop 2 ir pieejama tikai Apache Ambari kā alternatÄ«vu. Kas attiecas uz krātuvēm ar pakotnēm, tās ir pieejamas publiskai piekļuvei, tās var lejupielādēt un instalēt parastajā veidā visiem klastera komponentiem. Kopumā izplatÄ«Å”ana izskatās ļoti interesanta. Esmu pārliecināts, ka bÅ«s tādi, kas ir pieraduÅ”i pie tādiem risinājumiem kā Cloudera Manager un Ambari un kuriem patiks pats ADCM. Dažiem tas bÅ«s arÄ« milzÄ«gs pluss izplatÄ«Å”anai iekļauts programmatÅ«ras reÄ£istrā importa aizstāŔanai.

Ja mēs runājam par trÅ«kumiem, tie bÅ«s tādi paÅ”i kā visiem citiem Hadoop izplatÄ«jumiem. Proti:

  • Tā sauktā ā€œpārdevēja bloÄ·Ä“Å”anaā€. Izmantojot Cloudera un Hortonworks piemērus, mēs jau esam sapratuÅ”i, ka vienmēr pastāv risks mainÄ«t uzņēmuma politiku.
  • Ievērojama atpalicÄ«ba no Apache augÅ”tecē.

Vaniļas Hadoop

Apache Bigtop un Hadoop izplatÄ«Å”anas izvēle Å”odien

Kā zināms, Hadoop nav monolÄ«ts produkts, bet patiesÄ«bā vesela pakalpojumu plejāde ap tās izplatÄ«to failu sistēmu HDFS. Tikai dažiem cilvēkiem pietiks ar vienu failu kopu. Dažiem ir nepiecieÅ”ams Hive, citiem Presto, un tad ir HBase un Phoenix; Spark tiek izmantots arvien vairāk. OrÄ·estrÄ“Å”anai un datu ielādei dažreiz tiek atrasti Oozie, Sqoop un Flume. Un, ja rodas jautājums par droŔību, tad uzreiz nāk prātā Kerberos savienojumā ar Ranger.

Hadoop komponentu binārās versijas ir pieejamas katra ekosistēmas projekta vietnē tarballu veidā. Varat tos lejupielādēt un sākt instalÄ“Å”anu, taču ar vienu nosacÄ«jumu: papildus pakotņu neatkarÄ«gai salikÅ”anai no ā€œneapstrādātiemā€ bināriem failiem, ko jÅ«s, visticamāk, vēlaties darÄ«t, jums nebÅ«s pārliecÄ«bas par lejupielādēto komponentu versiju savietojamÄ«bu ar katru. cits. Vēlamā iespēja ir veidot, izmantojot Apache Bigtop. Bigtop ļaus jums veidot no Apache maven krātuvēm, palaist testus un veidot pakotnes. Bet, kas mums ir ļoti svarÄ«gi, Bigtop saliks tās komponentu versijas, kas bÅ«s savietojamas viena ar otru. Tālāk mēs par to runāsim sÄ«kāk.

Apache Bigtop

Apache Bigtop un Hadoop izplatÄ«Å”anas izvēle Å”odien

Apache Bigtop ir rīks, lai izveidotu, iepakotu un pārbaudītu vairākus
atvērtā pirmkoda projekti, piemēram, Hadoop un Greenplum. Bigtop ir daudz
izlaidumi. RakstīŔanas laikā jaunākā stabilā versija bija 1.4,
un meistarā bija 1.5. Dažādās izlaidumu versijās tiek izmantotas dažādas versijas
sastāvdaļas. Piemēram, versijai 1.4 Hadoop pamata komponentiem ir versija 2.8.5 un galvenā versija
2.10.0. Mainās arī atbalstīto komponentu sastāvs. Kaut kas novecojis un
neatjaunojamais iet prom, un tā vietā nāk kaut kas jauns, pieprasītāks, un
tas ne vienmēr ir kaut kas no paÅ”as Apache Ä£imenes.

Turklāt Bigtop ir daudz dakŔas.

Kad sākām iepazÄ«ties ar Bigtop, mÅ«s pirmām kārtām pārsteidza tā pieticÄ«gā, salÄ«dzinājumā ar citiem Apache projektiem, izplatÄ«ba un popularitāte, kā arÄ« ļoti mazā kopiena. No tā izriet, ka informācija par produktu ir minimāla, un, meklējot risinājumus problēmām, kas raduŔās forumos un adresātu sarakstos, var nebÅ«t neko. Sākumā mums izrādÄ«jās sarežģīts uzdevums pabeigt distribÅ«cijas pilnÄ«gu montāžu paÅ”a rÄ«ka Ä«paŔību dēļ, taču mēs par to runāsim nedaudz vēlāk.

Tiem, kas savulaik interesējuÅ”ies par tādiem Linux visuma projektiem kā Gentoo un LFS, var Ŕķist nostalÄ£iski patÄ«kami strādāt ar Å”o lietu un atcerēties tos ā€œepiskosā€ laikus, kad mēs paÅ”i meklējām (vai pat rakstÄ«jām) pārbÅ«vē un regulāri pārbÅ«vē Mozilla ar jauniem ielāpiem.

Bigtop lielā priekÅ”rocÄ«ba ir tā pamatā esoÅ”o rÄ«ku atvērtÄ«ba un daudzpusÄ«ba. Tas ir balstÄ«ts uz Gradle un Apache Maven. Gradle ir diezgan labi pazÄ«stams kā rÄ«ks, ko Google izmanto Android izveidei. Tas ir elastÄ«gs un, kā saka, "pārbaudÄ«ts kaujā". Maven ir standarta rÄ«ks projektu veidoÅ”anai paŔā Apache, un, tā kā lielākā daļa tā produktu tiek izlaisti caur Maven, bez tā arÄ« Å”eit nevarētu iztikt. Ir vērts pievērst uzmanÄ«bu POM (projekta objekta modelim) - ā€œfundamentālajamā€ xml failam, kas apraksta visu, kas nepiecieÅ”ams, lai Maven strādātu ar jÅ«su projektu, ap kuru tiek veidots viss darbs. TieÅ”i plkst
Maven daļas un ir daži ŔķērŔļi, ar kuriem parasti saskaras pirmie Bigtop lietotāji.

Prakse

Tātad, kur jums vajadzētu sākt? Dodieties uz lejupielādes lapu un lejupielādējiet jaunāko stabilo versiju kā arhīvu. Tur varat atrast arī Bigtop savāktos bināros artefaktus. Starp citu, starp parastajiem pakotņu pārvaldniekiem tiek atbalstīti YUM un APT.

Varat arÄ« lejupielādēt jaunāko stabilo versiju tieÅ”i no
github:

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

KlonÄ“Å”ana ā€œlielajā topāā€ā€¦

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), Š³Š¾Ń‚Š¾Š²Š¾.

IegÅ«tais ./bigtop direktorijs izskatās apmēram Ŕādi:

./bigtop-bigpetstore ā€” demonstrācijas lietojumprogrammas, sintētiskie piemēri
./bigtop-ci - CI instrumenti, jenkins
./bigtop-data-generators ā€” datu Ä£enerÄ“Å”ana, sintētika, dÅ«mu testiem utt.
./bigtop-deploy - izvietoŔanas rīki
./bigtop-packages ā€” konfigurācijas, skripti, montāžas ielāpi, rÄ«ka galvenā daļa
./bigtop-test-framework ā€” testÄ“Å”anas sistēma
./bigtop-tests ā€” paÅ”i testi, slodze un dÅ«mi
./bigtop_toolchain ā€” vide montāžai, darba vides sagatavoÅ”ana instrumentam darbam
./build - izveidot darba direktoriju
./dl ā€” lejupielādēto avotu direktorijs
./docker ā€” Docker attēlu veidoÅ”ana, testÄ“Å”ana
./gradle - pakāpes konfigurācija
./output - direktorijs, kurā atrodas bÅ«vÄ“Å”anas artefakti
./provisioner ā€” nodroÅ”inājums

Visinteresantākā lieta mums Å”ajā posmā ir galvenā konfigurācija ./bigtop/bigtop.bom, kurā mēs redzam visus atbalstÄ«tos komponentus ar versijām. Å eit mēs varam norādÄ«t citu produkta versiju (ja pēkŔņi vēlamies mēģināt to izveidot) vai bÅ«vējuma versiju (ja, piemēram, esam pievienojuÅ”i nozÄ«mÄ«gu ielāpu).

Lielu interesi rada arī apakŔdirektorijs ./bigtop/bigtop-packages, kas ir tieŔi saistīts ar komponentu un iepakojumu komplektēŔanas procesu ar tiem.

Tātad, mēs lejupielādējām arhīvu, izpakojām to vai izveidojām klonu no github, vai varam sākt veidot?

Nē, vispirms sagatavosim vidi.

Vides sagatavoŔana

Un Å”eit mums ir vajadzÄ«ga neliela atkāpÅ”anās. Lai izveidotu gandrÄ«z jebkuru vairāk vai mazāk sarežģītu produktu, ir nepiecieÅ”ama noteikta vide - mÅ«su gadÄ«jumā tā ir JDK, tās paÅ”as koplietotās bibliotēkas, galvenes faili utt., rÄ«ki, piemēram, ant, ivy2 un daudz kas cits. Viena no iespējām, kā iegÅ«t Bigtop nepiecieÅ”amo vidi, ir instalēt nepiecieÅ”amos komponentus bÅ«vÄ“Å”anas resursdatorā. Es varētu kļūdÄ«ties hronoloÄ£ijā, bet Ŕķiet, ka ar versiju 1.0 bija arÄ« iespēja iebÅ«vēt iepriekÅ” konfigurētus un pieejamus Docker attēlus, kurus var atrast Å”eit.

Runājot par vides sagatavoŔanu, tam ir palīgs - Lelle.

Varat izmantot Ŕādas komandas, palaist no saknes direktorija
instruments, ./bigtop:

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

Vai tieŔi, izmantojot lelli:

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"

Diemžēl jau Å”ajā posmā var rasties grÅ«tÄ«bas. VispārÄ«gs padoms Å”eit ir izmantot atbalstÄ«tu izplatÄ«Å”anu, kas ir atjaunināta bÅ«vÄ“Å”anas resursdatorā, vai izmēģināt docker marÅ”rutu.

Montāža

Ko mēs varam mēģināt savākt? Atbildi uz Å”o jautājumu sniegs komandas izvade

./gradlew tasks

Sadaļā Pakotnes uzdevumi ir vairāki produkti, kas ir Bigtop galīgie artefakti.
Tos var identificēt pēc sufiksa -rpm vai -pkg-ind (ēkas gadījumā
dokerā). Mūsu gadījumā visinteresantākais ir Hadoop.

Mēģināsim izveidot mÅ«su bÅ«vÄ“Å”anas servera vidē:

./gradlew hadoop-rpm

Bigtop pats lejupielādēs konkrētam komponentam nepiecieÅ”amos avotus un sāks montāžu. Tādējādi rÄ«ka darbÄ«ba ir atkarÄ«ga no Maven krātuvēm un citiem avotiem, tas ir, tam ir nepiecieÅ”ama piekļuve internetam.

DarbÄ«bas laikā tiek Ä£enerēta standarta izvade. Dažreiz tas un kļūdu ziņojumi var palÄ«dzēt saprast, kas nogāja greizi. Un dažreiz jums ir jāiegÅ«st papildu informācija. Å ajā gadÄ«jumā ir vērts pievienot argumentus --info vai --debugun var bÅ«t arÄ« noderÄ«gi ā€“stacktrace. Ir ērts veids, kā Ä£enerēt datu kopu turpmākai piekļuvei adresātu sarakstiem, atslēga --scan.

Ar tās palīdzību bigtop apkopos visu informāciju un ievietos to gradle, pēc tam sniegs saiti,
pēc kuriem kompetenta persona varēs saprast, kāpēc montāža neizdevās.
LÅ«dzu, ņemiet vērā, ka Ŕī opcija var atklāt informāciju, kuru jÅ«s nevēlaties, piemēram, lietotājvārdus, mezglus, vides mainÄ«gos utt., tāpēc esiet piesardzÄ«gs.

Bieži kļūdas rodas tādēļ, ka nav iespējams iegÅ«t montāžai nepiecieÅ”amās sastāvdaļas. Parasti problēmu var novērst, izveidojot ielāpu, lai kaut ko labotu avotos, piemēram, adreses pom.xml avota saknes direktorijā. Tas tiek darÄ«ts, izveidojot un ievietojot to attiecÄ«gajā direktorijā ./bigtop/bigtop-packages/src/common/oozie/ plāksteris, piemēram, formā 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>

Visticamāk, Ŕī raksta lasÄ«Å”anas laikā jums paÅ”am nebÅ«s jāveic iepriekÅ”minētais labojums.

IevieÅ”ot montāžas mehānisma ielāpus un izmaiņas, iespējams, vajadzēs ā€œatiestatÄ«tā€ montāžu, izmantojot tÄ«rÄ«Å”anas komandu:

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

Å Ä« darbÄ«ba atcels visas Ŕī komponenta montāžas izmaiņas, un pēc tam montāža tiks veikta vēlreiz. Å oreiz mēs mēģināsim izveidot projektu docker attēlā:

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

BūvēŔana tika veikta ar CentOS, bet to var veikt arī Ubuntu:

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

Papildus pakotņu veidoÅ”anai dažādiem Linux izplatÄ«jumiem, rÄ«ks var izveidot repozitoriju ar apkopotām pakotnēm, piemēram:

./gradlew yum

Varat arÄ« atcerēties par dÅ«mu testiem un izvietoÅ”anu programmā Docker.

Izveidojiet trīs mezglu kopu:

./gradlew -Pnum_instances=3 docker-provisioner

Veiciet dūmu testus trīs mezglu klasterī:

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

Dzēst kopu:

./gradlew docker-provisioner-destroy

Iegūstiet komandas docker konteineru savienoŔanai:

./gradlew docker-provisioner-ssh

Rādīt statusu:

./gradlew docker-provisioner-status

Vairāk par izvietoŔanas uzdevumiem varat lasīt dokumentācijā.

Ja runājam par testiem, tad to ir diezgan liels skaits, galvenokārt dÅ«mi un integrācija. Viņu analÄ«ze ir ārpus Ŕī raksta darbÄ«bas jomas. Ä»aujiet man tikai teikt, ka izplatÄ«Å”anas komplekta salikÅ”ana nav tik grÅ«ts uzdevums, kā varētu Ŕķist no pirmā acu uzmetiena. Mums izdevās samontēt un nokārtot testus visiem komponentiem, ko izmantojam savā ražoÅ”anā, un mums arÄ« nebija problēmu ar to izvietoÅ”anu un pamata darbÄ«bu veikÅ”anu testa vidē.

Papildus Bigtop esoÅ”ajām sastāvdaļām ir iespējams pievienot jebko citu, pat savu programmatÅ«ras izstrādi. Tas viss ir lieliski automatizēts un iekļaujas CI/CD koncepcijā.

Secinājums

AcÄ«mredzot Ŕādā veidā sastādÄ«to izplatÄ«Å”anas paketi nevajadzētu nekavējoties nosÅ«tÄ«t uz ražoÅ”anu. Jums ir jāsaprot, ka, ja ir reāla vajadzÄ«ba izveidot un atbalstÄ«t savu izplatÄ«Å”anu, jums tajā jāiegulda nauda un laiks.

Taču kombinācijā ar pareizo pieeju un profesionālu komandu pilnīgi iespējams iztikt bez komerciāliem risinājumiem.

Ir svarÄ«gi atzÄ«mēt, ka pats Bigtop projekts ir jāattÄ«sta, un Ŕķiet, ka Å”odien tas netiek aktÄ«vi attÄ«stÄ«ts. ArÄ« Hadoop 3 parādÄ«Å”anās iespēja tajā nav skaidra. Starp citu, ja jums ir patiesa nepiecieÅ”amÄ«ba izveidot Hadoop 3, varat apskatÄ«t dakÅ”a no Arenadata, kurā papildus standarta
Ir vairāki papildu komponenti (Ranger, Knox, NiFi).

Kas attiecas uz Rostelecom, mums Bigtop ir viena no iespējām, kas tiek apsvērta Å”odien. NeatkarÄ«gi no tā, vai mēs to izvēlēsimies, laiks rādÄ«s.

Pielikums

Lai komplektā iekļautu jaunu komponentu, tā apraksts jāpievieno failiem bigtop.bom un ./bigtop-packages. Varat mēģināt to izdarÄ«t pēc analoÄ£ijas ar esoÅ”ajiem komponentiem. Mēģiniet to izdomāt. Tas nav tik grÅ«ti, kā Ŕķiet no pirmā acu uzmetiena.

Ko tu domā? Priecāsimies redzēt jūsu viedokli komentāros un pateicamies par uzmanību!

Rakstu sagatavoja Rostelecom datu pārvaldības komanda

Avots: www.habr.com

Pievieno komentāru