Apache Bigtop dhe zgjedhja e shpërndarjes Hadoop sot

Apache Bigtop dhe zgjedhja e shpërndarjes Hadoop sot

Ndoshta, askush nuk e di se viti i kaluar ishte një vit me ndryshime të mëdha për Apache Hadoop. Vitin e kaluar u realizua bashkimi i Cloudera me Hortonworks (në fakt, kjo ishte një absorbim i fundit), dhe Mapr, për shkak të problemeve të rënda financiare, u shit Hewlett Packard. Ndërsa disa vite më parë, në rastin e instalimeve on-premises, shpesh zgjedhja bëhej midis Cloudera dhe Hortonworks, sot fatkeqësisht nuk e kemi më këtë zgjedhje. Një surprizë ishte gjithashtu fakti se Cloudera që nga shkurt i këtij viti shpalli ndalimin e lëshimit të ndërtimeve binare të shpërndarjes së saj në depo publike, dhe tani ato janë të disponueshme vetëm me një abonim të paguar. Sigurisht, mundësia për të shkarkuar versionet e fundit të CDH dhe HDP, të lëshuara deri në fund të vitit 2019, ekziston ende, dhe mbështetje për to është parashikuar për një deri në dy vjet. Por çfarë do të bëjmë tani? Për ata që më parë paguanin për një abonim, nuk ka asnjë ndryshim. Për ata që nuk duan të kalojnë në versionin e paguar të shpërndarjes, por gjithsesi dëshirojnë të kenë mundësinë për të marrë versione të freskëta të komponenteve të klasterit, si dhe patches dhe përditësime të tjera, ne e përgatitëm këtë artikull. Në të, do të shqyrtojmë mundësitë për të dalë nga kjo situatë.

Artikulli Ă«shtĂ« mĂ« shumĂ« njĂ« pĂ«rmbledhje. Nuk do tĂ« ketĂ« krahasime tĂ« shpĂ«rndarjeve dhe analizave tĂ« tyre tĂ« hollĂ«sishme, as nuk do tĂ« ketĂ« receta pĂ«r instalimin dhe konfigurimin e tyre. ÇfarĂ« do tĂ« ketĂ« atĂ«herĂ«? Ne do tĂ« flasim nĂ« mĂ«nyrĂ« tĂ« shkurtĂ«r pĂ«r shpĂ«rndarjen Arenadata Hadoop, e cila me tĂ« drejtĂ« e meriton vĂ«mendjen tonĂ« pĂ«r shkak tĂ« disponueshmĂ«risĂ« sĂ« saj, e cila sot Ă«shtĂ« njĂ« raritet i madh. MĂ« pas do tĂ« flasim pĂ«r Vanilla Hadoop, kryesisht pĂ«r mĂ«nyrĂ«n se si mund ta

Arenadata Hadoop

Apache Bigtop dhe zgjedhja e shpërndarjes Hadoop sot

Ky është një shpërndarje krejtësisht e re dhe, për momentin, pak e njohur me origjinë vendase. Fatkeqësisht, në këtë moment, në Habrë për të ka vetëm artikull.

Më shumë informacion mund të gjendet në faqen zyrtare të internetit të projektit. Versionet e fundit të shpërndarjes janë të bazuara në Hadoop 3.1.2 për versionin 3 dhe 2.8.5 për versionin 2.

Informacioni mbi roadmap mund të gjendet këtu.

Apache Bigtop dhe zgjedhja e shpërndarjes Hadoop sot
Ndërfaqja e Arenadata Cluster Manager

Produkti kyç i Arenadata është Arenadata Cluster Manager (ADCM), i cili përdor për instalimin, konfigurimin dhe monitorimin e zgjidhjeve të ndryshme softuerike të kompanisë. ADCM shpërndahet falas, dhe funksionaliteti i tij zgjeron me anë të shtimit të bundeve, të cilat përbëjnë një grup ansible-playbooks. Bundet ndahen në dy lloje: enterprise dhe community. Të fundit janë të disponueshëm për shkarkim falas nga faqja Arenadata. Ka gjithashtu mundësinë për të zhvilluar një bundle të vetin dhe ta lidhi atë me ADCM.

Për deploimin dhe menaxhimin e Hadoop 3 ofrohet një version community i bundle-it në lidhje me ADCM, ndërsa për hadoop 2 ka vetëm Apache Ambari si një alternativë. Sa i përket depozitave me paketa, ato janë të hapura për akses publik, mund të shkarkohen dhe instalohen në mënyrë të zakonshme për të gjithë komponentët e klasterit. Në përgjithësi, distribucioni duket mjaft interesant. Jam i sigurt se do të ketë ata që janë mësuar me zgjidhje si Cloudera Manager dhe Ambari, dhe që do ta pëlqejnë ADCM. Për disa, do të jetë një avantazh i madh gjithashtu fakti se distributi ndodhet në regjistrin e softuerit për zëvendësimin e importeve.

Nëse flasim për disavantazhet, ato do të jenë të njëjtat si për të gjithë distributet e tjera të Hadoop. Në veçanti:

  • Kjo Ă«shtĂ« e ashtuquajtura «vendor lock-in». Me anĂ« tĂ« Cloudera dhe Hortonworks, ne tashmĂ« kemi kuptuar se gjithmonĂ« ekziston rreziku i ndryshimit tĂ« politikave tĂ« kompanisĂ«.
  • Dohatisa prapa e konsiderueshme nga upstream Apache.

Vanilla Hadoop

Apache Bigtop dhe zgjedhja e shpërndarjes Hadoop sot

Siç e dini, Hadoop – nuk Ă«shtĂ« njĂ« produkt monolitik, por, nĂ« thelb, njĂ« sĂ«rĂ« shĂ«rbimesh rreth sistemit tĂ« tij tĂ« skedarĂ«ve tĂ« shpĂ«rndarĂ« HDFS. Pak njerĂ«z do tĂ« jenĂ« tĂ« kĂ«naquar vetĂ«m me njĂ« klaster skedarĂ«sh. Disa kanĂ« nevojĂ« pĂ«r Hive, disa pĂ«r Presto, dhe gjithashtu ka HBase dhe Phoenix, gjithnjĂ« e mĂ« shumĂ« pĂ«rdoret Spark. PĂ«r orkestrimin dhe ngarkimin e tĂ« dhĂ«nave, ndonjĂ«herĂ« hasen Oozie, Sqoop dhe Flume. Dhe nĂ«se ngrihet çështja e sigurimit, menjĂ«herĂ« kujtohet Kerberos nĂ« lidhje me Ranger.

Versionet binar të komponenteve Hadoop janë të disponueshme në faqen e çdo projekti të ekosistemit në formën e tarballs. Ato mund të shkarkohen dhe të filloni instalimin, por me një kush: përveç ndërtimit të paketave nga 'kanalet' e papërpunuara, që dyshojmë se do të dëshironit të realizoni, nuk do të keni asnjë siguri për përputhshmërinë e versioneve të shkarkuara të komponenteve me njëri-tjetrin. Një opsion më i preferuar është ndërtimi me Apache Bigtop. Bigtop do t'ju lejojë të bëni ndërtimin nga depot maven të Apache, të kryeni teste dhe të krijoni paketa. Por, ajo që është shumë e rëndësishme për ne, Bigtop do të krijojë ato versione të komponenteve që do të jenë të përputhshme me njëri-tjetrin. Pikat më të detajuara për të do i trajtojmë më poshtë.

Apache Bigtop

Apache Bigtop dhe zgjedhja e shpërndarjes Hadoop sot

Apache Bigtop është një mjet për ndërtimin, paketimin dhe testimin e një sërë
projekteve open source, të tilla si Hadoop dhe Greenplum. Bigtop ka një shumëllojshmëri
publikimesh. Në momentin e shkrimit të artikullit, publikimi më i fundit stabil ishte versioni 1.4,
ndërsa në master ndodhej 1.5. Në versione të ndryshme publikimesh, përdoren versione të ndryshme
të komponentëve. Për shembull, për 1.4 komponentët thelbësorë të Hadoop kanë versionin 2.8.5, ndërsa në master
2.10.0. Ndryshon po ashtu struktura e komponentëve të mbështetur. Diçka e vjetruar dhe
e papërditësuar largohet, ndërsa në vend të saj vjen diçka e re, më e kërkuar, dhe
nuk është domosdoshmërisht diçka nga familja e Apache vetë.

Për më tepër, Bigtop ka një shumëllojshmëri forkesh.

Kur filluam të njohim Bigtop, na surprizoi së pari përhapja e tij modeste, krahasuar me projektet e tjera Apache, dhe fama e tij mjaft e vogël, si dhe një komunitet shumë të vogël. Kjo nënkupton se informacioni mbi produktin është minimal, dhe kërkimi për zgjidhje të problemeve të paraqitura në forume dhe lista mund të mos japë asgjë. Në fillim, për ne ishte një detyrë e vështirë të realizonim një ndërtim të plotë të distribucionit për shkak të veçorive të vetë mjetit, por për këtë do të flasim pak më vonë.

Si një teaser - atyre që në kohën e tyre i pëlqenin projekte si Gentoo dhe LFS në universin Linux, ndoshta do t'i duket nostalgjikisht këndshëm të punojnë me këtë gjë dhe të kujtojnë ato 'epike' kohë kur ne vetë kërkonim (apo madje shkruanim) ebuilds dhe rregullisht rindërtonim me patch të rinj Mozilla.

NjĂ« avantazh i madh i Bigtop Ă«shtĂ« hapĂ«sira dhe universialiteti i mjeteve mbi tĂ« cilat Ă«shtĂ« ndĂ«rtuar. NĂ« themel tĂ« tij qĂ«ndrojnĂ« Gradle dhe Apache Maven. Gradle Ă«shtĂ« mjaft i njohur si njĂ« mjet qĂ« Google pĂ«rdor pĂ«r tĂ« ndĂ«rtuar Android. Ai Ă«shtĂ« fleksibĂ«l dhe, siç thonĂ«, "i testuar nĂ« luftĂ«". Maven Ă«shtĂ« mjeti standard pĂ«r ndĂ«rtimin e projekteve nĂ« vetĂ« Apache, dhe, pasi shumica e produkteve tĂ« tij lĂ«shohen pĂ«rmes Maven, gjithashtu Ă«shtĂ« e domosdoshme. Duhet tĂ« vihet re POM (modeli i objektit tĂ« projektit) – njĂ« skedar xml "themelor" qĂ« pĂ«rshkruan gjithçka tĂ« nevojshme pĂ«r punĂ«n e Maven me projektin tuaj, rreth tĂ« cilit ndĂ«rtohet gjithçka.
Në pjesën e Maven shfaqen disa pengesa me të cilat zakonisht përballen ata që e përdorin për herë të parë Bigtop.

Praktika

Pra, nga nga e si duhet të filloni? Shkoni në faqen e shkarkimit dhe shkarkoni versionin e fundit stabil si një arkiv. Aty gjithashtu mund të gjeni dhe artefaktet binarë të ndërtuara nga Bigtop. Në fakt, nga menaxherët e zakonshëm të paketave mbështeten YUM dhe APT.

Si një mënyrë alternative, mund të shkarkoni versionin e fundit stabil direkte nga
github:

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

Klonimi në "bigtop"...

remote: Duke numëruar objekte: 46, e përfunduar.
remote: Duke numëruar objekte: 100% (46/46), e përfunduar.
remote: Duke kompresuar objekte: 100% (41/41), e përfunduar.
remote: Totali 40217 (delta 14), përshtatur 10 (delta 1), përdorur sërish 40171
Marrja e objekteve: 100% (40217/40217), 43.54 MiB | 1.05 MiB/s, përfunduar.
Përcaktimi i ndryshimeve: 100% (20503/20503), përfunduar.
Përditësimi i skedarëve: 100% (1998/1998), përfunduar.

Katalogu i krijuar ./bigtop duket rreth kësaj:

./bigtop-bigpetstore — aplikacione demonstrative, shembuj sintetikĂ«
./bigtop-ci — mjetet CI, jenkins
./bigtop-data-generators — gjenerimi i tĂ« dhĂ«nave, sintetik, pĂ«r testet smoke etj.
./bigtop-deploy — mjetet pĂ«r pĂ«rdorimin e aplikacioneve
./bigtop-packages — konfigurimet, skenat, patches pĂ«r ndĂ«rtim, pjesa kryesore e mjetit
./bigtop-test-framework — korniza e testimeve
./bigtop-tests — testimet vetĂ«, testet e ngarkesĂ«s dhe smoke
./bigtop_toolchain — mjedisi i ndĂ«rtimit, pĂ«rgatitja e mjedisit pĂ«r veprimin e mjeteve
./build — katalogu i punĂ«s pĂ«r ndĂ«rtimin
./dl — katalogu pĂ«r burimet e shkarkuara
./docker — ndĂ«rtimi nĂ« imazhe docker, testimi
./gradle — konfigurimi i gradle
./output – katalogu nĂ« tĂ« cilin shkojnĂ« artefaktet e ndĂ«rtimit
./provisioner — provizionimi

Ajo që është më interesante në këtë fazë për ne është konfigurimi kryesor ./bigtop/bigtop.bom, ku shohim të gjitha komponentët e mbështetur me versionet. Këtu mund të specifikojmë një version tjetër të produktit (nëse ndonjëherë duam ta provokojmë të ndërtojmë atë) ose versionin e ndërtimit (nëse, për shembull, kemi shtuar një patch të rëndësishëm).

Gjithashtu, nënkatalogu .\/bigtop\/bigtop-packages, i cili ka të bëjë drejtpërdrejt me procesin e ndërtimit të komponentëve dhe paketave me to.

Pra, ne e kemi shkarkuar arkivin, e kemi shpërndarë atë ose kemi bërë një klon nga github, a mund të fillojmë ndërtimin?

Jo, së pari duhet të përgatitim mjedisin.

Përgatitja e mjedisit

Dhe këtu na nevojitet një devijim i vogël. Për të ndërtuar pothuajse çdo produkt më ose më pak të ndërlikuar, është i nevojshëm një mjedis i caktuar - në rastin tonë është JDK, ato biblioteka të ndara, skedarët e titullit, etj., mjete si ant, ivy2 dhe shumë të tjera. Një nga mënyrat për të marrë mjedisin e nevojshëm për Bigtop është instalimi i komponentëve të nevojshëm në hostin e ndërtimit. Mund të kem gabime në kronologji, por ndoshta nga versioni 1.0 gjithashtu u shfaq një mundësi ndërtimi në imazhet docker të parakonfiguruara dhe të disponueshme, ato mund të shqyrtohen këtu.

Sa i përket përgatitjes së mjedisit, për këtë ka një ndihmës - Puppet.

Mund të përdorni komandat e mëposhtme, nisja bëhet nga katalogu rrënjësor
i mjetit, .\/bigtop:

.\/gradlew toolchain\n.\/gradlew toolchain-devtools\n.\/gradlew toolchain-puppetmodules

Ose direkt përmes puppet:

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

Fatkeqësisht, tashmë në këtë fazë mund të ketë vështirësi. Këshilla e përgjithshme këtu është - përdorni një distribucion të mbështetur, në gjendje aktuale në hostin e ndërtimit ose provoni rrugën me docker.

Ndërtimi

ÇfarĂ« mund tĂ« pĂ«rpiqemi tĂ« ndĂ«rtojmĂ«? PĂ«rgjigjen pĂ«r kĂ«tĂ« pyetje do ta japĂ« dalja e komandĂ«s

.\/gradlew tasks

Në seksionin e Paketave ka një sërë produktesh që janë artefakte përfundimtare të Bigtop.
Ato mund të identifikohen nga sufiksi -rpm ose -pkg-ind (në rastin e ndërtimit
në docker). Në rastin tonë, Hadoop është më interesanti.

Le të përpiqemi të kryejmë ndërtimin në mjedisin e serverit tonë të ndërtimit:

.\/gradlew hadoop-rpm

Bigtop do të shkarkojë vetë burimet e nevojshme, të nevojshme për komponentin specifik, dhe do të fillojë ndërtimin. Kështu, funksionimi i mjetit është i lidhur me depot Maven dhe burime të tjera, pra, i nevojitet qasja në Internet.

NĂ« procesin e punĂ«s formohet njĂ« dalje standarde. NdonjĂ«herĂ« nga ajo dhe mesazhet e gabimeve mund tĂ« kuptohet se çfarĂ« ka shkuar keq. NdĂ«rsa herĂ« tĂ« tjera kĂ«rkohet tĂ« merret mĂ« shumĂ« informacion. NĂ« kĂ«tĂ« rast Ă«shtĂ« mirĂ« tĂ« shtohesh argumente --info ose --debug, si dhe mund tĂ« jetĂ« e dobishme –stacktrace. Ka njĂ« mĂ«nyrĂ« tĂ« pĂ«rshtatshme pĂ«r tĂ« formuar njĂ« grup tĂ« dhĂ«nash pĂ«r njĂ« referencĂ« tĂ« mĂ«vonshme nĂ« listat e dĂ«rgimit, çelĂ«si --scan.

Me ndihmën e tij, bigtop do të mbledhë të gjithë informacionin dhe do ta nxjerrë në gradle, pas së cilës do të japë një lidhje,
nëpërmjet të cilës një person kompetent do të jetë në gjendje të kuptojë se përse ndodhi dështimi i ndërtimit.
Duhet të keni parasysh se kjo opsion mund ta bëjë publike informacionin që nuk dëshironi të jetë i aksesueshëm, për shembull, emrat e përdoruesve, nodet, variablat e mjedisit, etj., kështu që jini të kujdesshëm.

Shpesh gabimet janë pasojë e pamundësisë për të marrë disa komponente të nevojshme për ndërtim. Në përgjithësi, problemi mund të riparohen duke krijuar një patch për të korrigjuar diçka në burim, për shembull, adresën në pom.xml në katalogun rrënjor të burimeve. Kjo bëhet duke krijuar dhe vendosur atë në katalogun përkatës .\/bigtop\/bigtop-packages\/src\/common\/oozie\/ patch, për shembull, në formën 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>

Me shumë të ngjarë, në momentin kur po e lexoni këtë artikull, disa nga riparimet e përmendura më lart nuk do t'ju nevojitet t'i bëni vetë.

Në implementimin e ndonjë patch-e dhe rregullime në mekanizmin e ndërtimit mund të nevojitet të "resetoni" ndërtimin përmes komandës së pastrimit:

.\/gradlew hadoop-clean
> Detyra :hadoop_vardefines
> Detyra :hadoop-clean
KONSTRUKT I SUKSESËSHËM nĂ« 5s
2 detyra në veprim: 2 ekzekutuar

Kjo operacion do të rikthejë të gjitha ndryshimet për ndërtimin e këtij komponenti, pas së cilës ndërtimi do të kryhet përsëri. Këtë herë do të provojmë të ndërtomë projektin në një imazh docker:

.\/gradlew -POS=centos-7 -Pprefix=1.2.1 hadoop-pkg-ind
> Task :hadoop-pkg-ind
Ndërtohet hadoop-pkg 1.2.1 në centos-7 në 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
....
shumë dalje
....
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-2.8.5-1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-hdfs-2.8.5-1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-yarn-2.8.5-1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-mapreduce-2.8.5-1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-hdfs-namenode-2.8.5-1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-hdfs-secondarynamenode-2.8.5-
1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-hdfs-zkfc-2.8.5-1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-hdfs-journalnode-2.8.5-
1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-hdfs-datanode-2.8.5-1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-httpfs-2.8.5-1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-yarn-resourcemanager-2.8.5-
1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-yarn-nodemanager-2.8.5-
1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-yarn-proxyserver-2.8.5-
1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-yarn-timelineserver-2.8.5-
1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-mapreduce-historyserver-2.8.5-
1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-client-2.8.5-1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-conf-pseudo-2.8.5-1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-doc-2.8.5-1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-libhdfs-2.8.5-1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-libhdfs-devel-2.8.5-1.el7.x86_64.rpm
Shkruar: \/bigtop\/build\/hadoop\/rpm\/RPMS\/x86_64\/hadoop-hdfs-fuse-2.8.5-1.el7.x86_64.rpm
Shkruar: \/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
Duke (%clean): \/bin\/sh -e \/var\/tmp\/rpm-tmp.uQ2FCn
+ exit 0
+ umask 022
Duke (--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] Duke \/bigtop\/build\/hadoop\/.rpm
:hadoop-rpm (Thread[Task worker for ':',5,main]) përfundoi. Zgjati 38 minuta 1.151 sekonda.
:hadoop-pkg (Thread[Task worker for ':',5,main]) filloi.
> Task :hadoop-pkg
Task ':hadoop-pkg' nuk është në përditësim pasi:
Task nuk ka shpallur ndonjë dalje megjithëse ka ekzekutuar veprime.
:hadoop-pkg (Thread[Task worker for ':',5,main]) përfundoi. Zgjati 0.0 sekonda.
NDERTIMI SUKSES MË 40m 37s
6 detyra të veprueshme: 6 të ekzekutuara
+ 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
Gabim: Nuk ka një kontejner të tillë:
ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb
NDERTIMI SUKSES MË 41m 24s
1 detyr e veprueshme: 1 e ekzekutuar

Këtu është konstrukti për CentOS, por gjithashtu mund të ekzekutohet edhe për Ubuntu:

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

Përveç ndërtimit të pakove për shpërndarje të ndryshme Linux, ky mjet është në gjendje të krijojë një depotë me paketat e ndërtuara, për shembull:

.\/gradlew yum

Gjithashtu mund të përmendim testet smoke dhe vendosjen në docker.

Krijo një klaster prej tre nodësh:

.\/gradlew -Pnum_instances=3 docker-provisioner

Nis testet smoke në klasterin prej tre nodësh:

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

Çmo klasterin:

.\/gradlew docker-provisioner-destroy

Merr komandat për t'u lidhur brenda kontejnerëve docker:

.\/gradlew docker-provisioner-ssh

Trego gjendjen:

.\/gradlew docker-provisioner-status

Më shumë detaje rreth detyrave të vendosjes mund të lexoni në dokumentacionin.

Nëse flasim për testet, ka një numër të konsiderueshëm të tyre, kryesisht teste smoke dhe integruese. Shkëputja e tyre është jashtë pamjes së kësaj article. Vetëm do të them se ndërtimi i shpërndarjes nuk është aq i vështirë sa mund të duket në shikim të parë. Të gjitha komponentet që përdorim në prodhim arritëm t'i ndërtojmë dhe të kalojmë testet, dhe gjithashtu nuk kemi hasur në probleme me vendosjen e tyre dhe kryerjen e operacioneve bazë në mjedisin e testit.

Përveç komponentëve ekzistues në Bigtop, ka mundësi të shtosh edhe diçka tjetër, madje edhe zhvillime softuerike të tua. Të gjitha këto automatizohen mirë dhe përshtaten në konceptin CI/CD.

Përfundimi

Natyrisht, shpërndarja e ndërtuar në këtë mënyrë nuk duhet menjëherë të dërgohet në prodhim. Duhet kuptuar se nëse ka një nevojë të vërtetë për ndërtimin dhe mbështetje të shpërndarjes suaj, atëherë duhet të investoni financiarisht dhe me kohë.

Megjithatë, në kombinim me qasje të drejtë dhe një ekip profesional, është krejtësisht e mundur të bëhet pa zgjidhje komerciale.

ËshtĂ« e rĂ«ndĂ«sishme tĂ« theksohet se projekti vetĂ« Bigtop ka nevojĂ« pĂ«r zhvillim dhe, duket se aktualisht nuk ka zhvillim aktiv nĂ« tĂ«. Gjithashtu nuk Ă«shtĂ« e qartĂ« perspektiva e shfaqjes sĂ« Hadoop 3. PĂ«r tĂ« thĂ«nĂ«, nĂ«se keni njĂ« nevojĂ« tĂ« vĂ«rtetĂ« pĂ«r ndĂ«rtimin e Hadoop 3, mund tĂ« shikoni tek fork Arenadata, tĂ« cilat pĂ«rveç komponentĂ«ve standardĂ«
kanë edhe një sërë komponentësh shtesë (Ranger, Knox, NiFi).

Sa i përket Rostelecom-it, Bigtop është një nga opsionet e shqyrtuara sot. Nëse do të ndalojmë zgjedhjen tonë tek ai apo jo - koha do ta tregojë.

Shtojca

Për ta përfshirë një komponent të ri në ndërtim, duhet të shtoni përshkrimin e tij në bigtop.bom dhe ./bigtop-packages. Mund të provoni ta bëni këtë në mënyrë analogjike me komponentët ekzistues. Provoni të kuptoni. Nuk është aq e vështirë sa duket në radhë të parë.

ÇfarĂ« mendoni ju? Do tĂ« na kĂ«naqte tĂ« shihnim mendimin tuaj nĂ« komentet dhe faleminderit pĂ«r vĂ«mendjen!

Artikulli është përgatitur nga ekipi i menaxhimit të të dhënave të "Rostelecom"

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster