Ndoshta nuk është sekret për askënd që viti i kaluar ishte një vit i madh ndryshimesh për Apache Hadoop. Vitin e kaluar, ndodhi bashkimi midis Cloudera dhe Hortonworks (në thelb, thithja e të dytit), dhe Mapr, për shkak të problemeve financiare të rënda, u shit Hewlett Packard. Dhe nëse disa vite më parë, në rastet e instalimeve on-premises, shpërndarja më shpesh bëhej midis Cloudera dhe Hortonworks, sot, me keqardhje, nuk e kemi më këtë zgjedhje. Një surprizë ishte gjithashtu fakti që Cloudera nga shkurt i këtij viti shpalli se do të ndalonte lëshimin e paketave binare të shpërndarjes së saj në repo 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 para fundit të vitit 2019, është ende e mundur, dhe mbështetje për to parashikohet për një deri në dy vjet. Por çfarë duhet të bëjmë tani? Për ata që më parë paguanin për një abonim, asgjë nuk ka ndryshuar. Dhe për ata që nuk duan të kalojnë në versionin e paguar të shpërndarjes, por ende dëshirojnë të kenë mundësinë për të marrë versione të reja të komponentëve të klashtës, si dhe patch-e dhe përditësime të tjera, ne e kemi përgatitur këtë artikull. Në të, do të shqyrtojmë mundësitë e mundshme për të dalë nga kjo situatë.
Artikulli Ă«shtĂ« mĂ« shumĂ« njĂ« pĂ«rmbledhje. NĂ« tĂ« nuk do tĂ« ketĂ« krahasime tĂ« shpĂ«rndarjeve dhe analizĂ« tĂ« detajuar tĂ« tyre, as receta pĂ«r instalimin dhe konfigurimin e tyre. Por çfarĂ« do tĂ« ketĂ«? Ne do tĂ« flasim shkurtimisht pĂ«r njĂ« shpĂ«rndarje tĂ« tillĂ« si Arenadata Hadoop, e cila me tĂ« drejtĂ« ka merituar vĂ«mendjen tonĂ« pĂ«r shkak tĂ« disponueshmĂ«risĂ« sĂ« saj, e cila sot Ă«shtĂ« njĂ« rarity e madhe. Pastaj do tĂ« flasim pĂ«r Vanilla Hadoop, kryesisht mbi atĂ« se si mund ta âpĂ«rgatisimâ atĂ« me ndihmĂ«n e Apache Bigtop. Jeni gati? AtĂ«herĂ« mirĂ« se vini poshtĂ«.
Arenadata Hadoop

Ky është një shpërndarje krejt e re dhe, për momentin, akoma pak e njohur e zhvillimit vendas. Fatkeqësisht, në këtë moment në habr nuk ka shumë informacion në lidhje me të, përveç .
Informacione më të detajuara mund të gjenden në faqen zyrtare 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.
Informacion mbi roadmap mund të gjendet .

Ndërfaqja Arenadata Cluster Manager
Produkti kryesor i Arenadata është , i cili përdoret për të instaluar, konfiguruar dhe monitoruar zgjidhje të ndryshme software nga kompania. ADCM shpërndahet falas, ndërsa funksionaliteti i tij zgjerohet përmes shtimit të bundle-ve, të cilat përfaqësojnë një grup ansible-playbooks. Bundle-t ndahen në dy lloje: enterprise dhe community. Të fundit janë të disponueshëm për shkarkim falas nga faqja Arenadata. Po ashtu, ka mundësi për të zhvilluar bundle-n tënd dhe për ta lidhur atë me ADCM.
Për deploy dhe menaxhim të Hadoop 3 ofrohet një version community i bundle-it në lidhje me ADCM, ndërsa për hadoop 2 ka vetëm si një alternativë. Sa i përket repozitorëve me paketa, ata janë të hapur për qasje publike, mund të shkarkohen dhe të instalohen në mënyrën e zakonshme për të gjitha komponentët e klasterit. Në përgjithësi, distribucioni duket shumë interesant. Jam i sigurt që do të ketë ata që janë mësuar me zgjidhje si Cloudera Manager dhe Ambari, dhe që do të pëlqejnë ADCM. Një plus i madh për disa do të jetë edhe fakti se distribucioni për zëvendësimin e importeve.
Nëse flasim për disavantazhet, ato do të jenë të njëjta si për të gjitha distribucionet e tjera Hadoop. Pikërisht:
- Ashtu-quajtura «mbyllje e shitësit». Në shembullin e Cloudera dhe Hortonworks ne tashmë e kemi kuptuar se gjithmonë ka rrezik për të ndryshuar politikën e kompanisë.
- Prapambetje e konsiderueshme nga upstream Apache.
Vanilla Hadoop

Siç e dini, Hadoop nuk është një produkt monolitik, por esencialisht një grup shërbimesh rreth sistemit të tij të skedarëve të shpërndarë HDFS. Pak njerëz do të jenë të kënaqur vetëm me një klaster skedarësh. Disa kanë nevojë për Hive, të tjerë për Presto, dhe ka edhe HBase dhe Phoenix, ndërsa 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 flitet për sigurimin, menjëherë kujtohet Kerberos në lidhje me Ranger.
Versionet binarike të komponentëve Hadoop janë të disponueshme në faqen e çdo projekti të ekosistemit si tarballs. Ato mund të shkarkohen dhe të filloni instalimin, por me një kusht: përveç ndërtimit të pakove nga "binarët" e papërpunuar, të cilin, shumë mund të dëshirojnë ta bëjnë, nuk do të keni asnjë siguri për pajtueshmërinë e versioneve të shkarkuara të komponentëve me njëri-tjetrin. Një opsion më i preferuar është ndërtimi me Apache Bigtop. Bigtop lejon ndërtimin nga depo maven të Apache, ekzekutimin e testeve dhe ndërtimin e pakove. Por, për ne është shumë e rëndësishme se Bigtop do të ndërtrojë ato versione të komponentëve që do të jenë të pajtueshme me njëra-tjetrën. Këtë do ta shqyrtojmë më në detaje në vazhdim.
Apache Bigtop

Apache Bigtop është një mjet për ndërtimin, paketimin dhe testimin e disa
projektesh open source, si Hadoop dhe Greenplum. Bigtop ka shumë
lëshime. Në momentin e shk writing të këtij artikulli, lëshimi më i fundit stabil ishte versioni 1.4,
ndërsa në master ishte 1.5. Në versione të ndryshme të lëshimeve përdoren versione të ndryshme
komponentësh. 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. Ndryshohet edhe përbërja e komponentëve të mbështetur. Disa gjëra të vjetra dhe
të papërditësuara largohet, ndërsa në vendin e tyre vijnë gjëra të reja, më të kërkuara, dhe
s'është e domosdoshme që këto të jenë gjithmonë nga familja e Apache.
Për më tepër, Bigtop ka shumë .
Kur filluam të njihemi me Bigtop, na befasoi së pari përhapja dhe njohja e tij e skromtë, në krahasim me projektet e tjera të Apache, si dhe komuniteti i tij shumë i vogël. Kjo nënkupton se informacioni për produktin është minimal, dhe kërkimi i zgjidhjeve për problemet e hasura në forume dhe lista mund të mos japë asgjë. Në fillim, për ne ishte një detyrë e vështirë të kryenim 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 - ata që në një kohë kanë gjetur këto projekte të universit Linux, si Gentoo dhe LFS, ndoshta do t'u duket nostalgjikisht këndshëm të punojnë me këtë gjë dhe të kujtojnë ato kohë "legjendare" kur ne vetë kërkonim (madje edhe shkruanim) ebuildet dhe rregullisht rindërtonim Mozilla me patch-e të reja.
NjĂ« pĂ«rparĂ«si e madhe e Bigtop-it Ă«shtĂ« transparenca 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 i cili pĂ«rdoret nga Google pĂ«r tĂ« ndĂ«rtuar Android. Ai Ă«shtĂ« fleksibĂ«l dhe, siç thonĂ«, "i provuar nĂ« betejĂ«". Maven Ă«shtĂ« mjeti standard pĂ«r ndĂ«rtimin e projekteve nĂ« vetĂ« Apache, dhe, duke qenĂ« se shumica e produkteve tĂ« tij publikohen pĂ«rmes Maven, nuk Ă«shtĂ« lĂ«nĂ« jashtĂ« kĂ«tu. Duhet tĂ« vihet re POM (modeli objekt tĂ« projektit) â njĂ« skedar xml "themelor" me pĂ«rshkrimin e tĂ« gjitha gjĂ«rave tĂ« nevojshme pĂ«r funksionimin e Maven me projektin tuaj, rreth tĂ« cilit ndĂ«rtohet e gjithĂ« puna. PikĂ«risht nĂ«
pjesën e Maven ndodhin disa pengesa, në të cilat zakonisht përplasen ata që e marrin për herë të parë Bigtop-in.
Praktika
Pra, nga ku duhet të fillojmë? Shkoni në faqen e shkarkimit dhe shkarkoni versionin e fundit stabil në formë arkivi. Aty gjithashtu mund të gjeni dhe artefaktet binarë të ndërtuara nga Bigtop. Për më tepër, nga menaxherët e zakonshëm të paketave përkrahën YUM dhe APT.
Si një mënyrë alternative, mund të shkarkoni versionin e fundit stabil direkt nga
github:
$ git clone --branch branch-1.4 https://github.com/apache/bigtop.gitKlonimi nĂ« "bigtop"âŠ
remote: Numërimi i objekteve: 46, përfunduar.
remote: Numërimi i objekteve: 100% (46/46), përfunduar.
remote: Kompresimi i objekteve: 100% (41/41), përfunduar.
remote: Totali 40217 (delta 14), rishpërndarë 10 (delta 1), pak-rishpërndarë 40171
Pranimi i objekteve: 100% (40217/40217), 43.54 MiB | 1.05 MiB/s, përfunduar.
Përcaktimi i ndryshimeve: 100% (20503/20503), përfunduar.
Aktualizimi i skedarëve: 100% (1998/1998), përfunduar.Katalogu i krijuar ./bigtop duket kështu:
./bigtop-bigpetstore â aplikacione demonstrative, shembuj sintetikĂ«
./bigtop-ci â mjetet CI, jenkins
./bigtop-data-generators â gjenerimi i tĂ« dhĂ«nave, sintetikĂ«, pĂ«r testet e mjeteve dhe tĂ« tjera.
./bigtop-deploy â mjete pĂ«r shpĂ«rndarjen
./bigtop-packages â konfigurime, skripte, patch-e pĂ«r ndĂ«rtimin, pjesa kryesore e mjetit
./bigtop-test-framework â struktura e testimit
./bigtop-tests â vetĂ« testet, ngarkimi dhe testet e mjeteve
./bigtop_toolchain â ambienti i ndĂ«rtimit, pĂ«rgatitja e mjedisit pĂ«r funksionimin e mjetit
./build â katalogu i punĂ«s pĂ«r ndĂ«rtimin
./dl â katalogu pĂ«r burimet e shkarkuara
./docker â ndĂ«rtimi nĂ« imazhet docker, testimi
./gradle â konfigurimi gradle
./output â katalogu ku shkojnĂ« artefaktet e ndĂ«rtimit
./provisioner â providimi
Ajo që është më interesante në këtë pjesë për ne është konfigurimi kryesor ./bigtop/bigtop.bom, ku ku shohim të gjitha komponentët e mbështetur me versionet e tyre. Pikërisht këtu mund të specifikojmë një version tjetër të produktit (nëse e duam ta provojmë atë) ose versionin e mbledhjes (nëse, për shembull, kemi shtuar një patch të rëndësishëm).
Një interes i madh përbën gjithashtu nënkatelli .\/bigtop\/bigtop-packages, i cili ka lidhje të drejtpërdrejtë me procesin e ndërtimit të komponentëve dhe pakove me ta.
Pra, e shkarkuam arkivën, e shpërndamë atë ose krijuam një klon nga github, a mund të fillojmë ndërtimin?
Jo, së pari le të përgatisim ambientin.
Përgatitja e mjedisit
Dhe kĂ«tu do tĂ« nevojitet njĂ« shkĂ«putje e vogĂ«l. PĂ«r ndĂ«rtimin e pothuajse çdo produkti mĂ« ose mĂ« pak tĂ« komplikuar nevojitet njĂ« ambient i caktuar â nĂ« rastin tonĂ«, kjo Ă«shtĂ« JDK, tĂ« njĂ«jtat biblioteka tĂ« ndara, dosje kryesore etj., mjete si ant, ivy2 dhe shumĂ« tĂ« tjera. NjĂ« nga opsionet pĂ«r tĂ« marrĂ« ambientin e nevojshĂ«m pĂ«r Bigtop Ă«shtĂ« instalimi i komponentĂ«ve tĂ« nevojshĂ«m nĂ« hostin e ndĂ«rtimit. Mund tĂ« jem nĂ« gabim me kronologjinĂ«, por, duket, qĂ« nga versioni 1.0 gjithashtu ka shfaqur njĂ« opsion tĂ« ndĂ«rtimit nĂ« imazhe docker tĂ« parakonfiguruara dhe tĂ« disponueshme, me tĂ« cilat mund tĂ« njiheni kĂ«tu.
Sa i pĂ«rket pĂ«rgatitjes sĂ« ambientit, pĂ«r kĂ«tĂ« ka njĂ« ndihmĂ«s â Puppet.
Mund tĂ« pĂ«rdoren komandat e mĂ«poshtme, ekzekutimi bĂ«het nga ĐŽĐžŃĐ”ĐșŃĐŸŃĐžŃ kryesore
e mjetit, .\/bigtop:
.\/gradlew toolchain\n.\/gradlew toolchain-devtools\n.\/gradlew toolchain-puppetmodules
Ose përmes puppet direkt:
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, qĂ« nĂ« kĂ«tĂ« fazĂ« mund tĂ« shfaqen vĂ«shtirĂ«si. KĂ«shilla e pĂ«rgjithshme kĂ«tu â pĂ«rdorimi i njĂ« distribuimi tĂ« mbĂ«shtetur, nĂ« gjendje tĂ« pĂ«rditĂ«suar nĂ« hostin e ndĂ«rtimit ose provo tĂ« shkosh me docker.
Ndërtimi
ĂfarĂ« mund tĂ« provojmĂ« tĂ« ndĂ«rtojmĂ«? PĂ«rgjigja pĂ«r kĂ«tĂ« pyetje do tĂ« jepet nga dalja e komandĂ«s
.\/gradlew tasks Në seksionin Package tasks 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ë, më interesanti është Hadoop.
Të përpiqemi të kryejmë ndërtimin në ambientin e serverit tonë të ndërtimit:
.\/gradlew hadoop-rpmBigtop do të shkarkojë vetë burimet e nevojshme, të nevojshme për komponentin specific, dhe do të fillojë ndërtimin. Kështu, puna e mjetit është e lidhur me repositorët Maven dhe burime të tjera, kështu që i nevojitet akses në internet.
GjatĂ« procesit tĂ« punĂ«s krijohet njĂ« dalje standarde. Nd sometimes, nga ajo dhe mesazhet pĂ«r gabimet mund tĂ« kuptohet se çfarĂ« ka shkuar keq. Dhe ndonjĂ«herĂ« kĂ«rkohet tĂ« marrĂ«sh informacion shtesĂ«. NĂ« kĂ«tĂ« rast, Ă«shtĂ« e nevojshme tĂ« shtosh argumentet --info ose --debug, si dhe mund tĂ« jetĂ« e dobishme âstacktrace. Ekziston njĂ« mĂ«nyrĂ« e thjeshtĂ« pĂ«r tĂ« krijuar njĂ« grup tĂ« dhĂ«nash pĂ«r tâu pĂ«rdorur mĂ« vonĂ« nĂ« listat e dĂ«rgimit, çelĂ«si --scan.
Me ndihmën e tij, bigtop do të mbledhë të gjitha informacionet dhe do t'i vendosë në gradle, pas së cilës do të japë një lidhje,
përmes së cilës një person kompetent do të jetë në gjendje të kuptojë pse ndërtimi dështoi.
Duhet marrë parasysh se kjo mundësi mund ta bëjë publike informacionin e padëshiruar për ju, për shembull, emrat e përdoruesve, nodet, variablat e mjedisit etj., kështu që duhet të jeni të kujdesshëm.
Shpesh gabimet janë pasojë e pamundësisë për të marrë ndonjë komponent të nevojshëm për ndërtimin. Si rregull, problemi mund të zgjidhet duke krijuar një patch për të riparuar diçka në burim, për shembull, adresën në pom.xml në katalogun rrënjë të burimeve. Kjo bëhet duke krijuar dhe vendosur atë në katalogun përkatës .\/bigtop\/bigtop-packages\/src\/common\/oozie\/ patch-it, për shembull, në formën e patch2-fix.diff.
--- a\/pom.xml
+++ b\/pom.xml
@@ -136,7 +136,7 @@
central
- http:\/\/repo1.maven.org\/maven2
+ https:\/\/repo1.maven.org\/maven2
false
Me shumë mundësi, në momentin që po lexoni këtë artikull, riparimi i mësipërm nuk do t'ju nevojitet ta bëni vetë.
Kur implementoni ndonjë patch dhe korrigjime në mekanizmin e ndërtimit, mund t'ju nevojitet "të rivendosni" ndërtimin përmes komandës së pastrimit:
.\/gradlew hadoop-clean
> Task :hadoop_vardefines
> Task :hadoop-clean
BUILD SUCCESSFUL in 5s
2 actionable tasks: 2 executedKjo operacion do të kthejë të gjitha ndryshimet për ndërtimin e këtij komponenti, pas së cilës ndërtimi do të bëhet përsëri. Tani do të përpiqemi të ndërtojmë projektin në një imazh docker:
.\/gradlew -POS=centos-7 -Pprefix=1.2.1 hadoop-pkg-ind
> Task :hadoop-pkg-ind
Duke në ndërtimin e 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 të dhëna
....
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
Kryer (%clean): \/bin\/sh -e \/var\/tmp\/rpm-tmp.uQ2FCn
+ exit 0
+ umask 022
Kryer (--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 në \/bigtop\/build\/hadoop\/ .rpm
:hadoop-rpm (Thread[Punëtori i detyrave për ':',5,main]) përfundoi. Zgjati 38 minutash 1.151 sek.
:hadoop-pkg (Thread[Punëtori i detyrave për ':',5,main]) filloi.
> Task :hadoop-pkg
Detyra ':hadoop-pkg' nuk është në përditësim sepse:
Detyra nuk ka shpallur asnjë dalje pavarësisht se ekzekutonte veprime.
:hadoop-pkg (Thread[Punëtori i detyrave për ':',5,main]) përfundoi. Zgjati 0.0 sek.
NDERTIM I SUKSESHĂM nĂ« 40m 37s
6 detyra të vepruara: 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ë konteiner të tillë:
ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb
NDERTIM I SUKSESHĂM nĂ« 41m 24s
1 detyrë e vepruar: 1 e ekzekutuarNdërtimi u realizua nën CentOS, por mund të kryhet edhe nën Ubuntu:
.\/gradlew -POS=ubuntu-16.04 -Pprefix=1.2.1 hadoop-pkg-indPërveç ndërtimit të paketave për shpërndarje të ndryshme Linux, instrumenti mund të formojë një repository me paketat e ndërtuara, për shembull:
.\/gradlew yumGjithashtu mund të përmendim testet smoke dhe shpërndarjen në docker.
Krijoni një klaster me tre nod:
.\/gradlew -Pnum_instances=3 docker-provisionerNisni testet smoke në klasterin me tre nod:
.\/gradlew -Pnum_instances=3 -Prun_smoke_tests docker-provisionerFshini klasterin:
.\/gradlew docker-provisioner-destroyMerrni komandat për t'u lidhur brenda konteinerëve docker:
.\/gradlew docker-provisioner-sshTrego gjendjen:
.\/gradlew docker-provisioner-statusMë shumë detaje rreth detyrave të shpërndarjes mund të lexoni në dokumentacion.
Kur flasim për testet, ka një numër të madh, kryesisht teste smoke dhe integrimi. Analiza e tyre është jashtë shkrimit të kësaj artikulli. Thjesht do të them se ndërtimi i shpërndarjes nuk është një detyrë aq e komplikuar sa mund të duket në shikim të parë. Të gjithë komponentët që përdorim në prodhim i kemi ndërtuar dhe kemi kaluar testet për ta, si dhe nuk kemi pasur probleme me shpërndarjen dhe kryerjen e operacioneve bazike në ambientin e testit.
Përveç komponentëve ekzistues në Bigtop, ka mundësinë të shtoni diçka tjetër, madje edhe një zhvillim të vetin. Të gjitha këto automatizohen mjaft mirë dhe janë në përputhje me konceptin CI/CD.
Përfundim
ĂshtĂ« e qartĂ« se shpĂ«rndarja e ndĂ«rtuar nĂ« kĂ«tĂ« mĂ«nyrĂ« nuk duhet dĂ«rguar menjĂ«herĂ« nĂ« prodhim. Duhet tĂ« kuptoni se nĂ«se ka njĂ« nevojĂ« reale pĂ«r ndĂ«rtimin dhe mbĂ«shtetje tĂ« shpĂ«rndarjes tuaj, atĂ«herĂ« duhet tĂ« investoni financa dhe kohĂ«.
Megjithatë, në përputhje me qasje të duhur dhe një ekip profesional, është e mundur të përballohemi edhe pa zgjidhje komerciale.
ĂshtĂ« e rĂ«ndĂ«sishme tĂ« theksohet se vetĂ« projekti Bigtop ka nevojĂ« pĂ«r zhvillim dhe, duket se pĂ«r sot nuk po zhvillohet aktivisht. Gjithashtu, nuk Ă«shtĂ« e qartĂ« perspektiva pĂ«r shfaqjen e Hadoop 3. NĂ«se keni njĂ« nevojĂ« reale pĂ«r ndĂ«rtimin e Hadoop 3, mund tĂ« shihni nga Arenadata, e cila pĂ«rveç komponentĂ«ve standardĂ«
ka një gamë të tërë komponentësh të tjerë (Ranger, Knox, NiFi).
Sa i përket Rostelekomit, për ne Bigtop është një nga opsionet e shqyrtuara për momentin. Nëse do të ndalojmë zgjedhjen tonë te ai apo jo, do ta tregojë koha.
Shtojca
Për të përfshirë një komponent të ri në ndërtim, duhet ta shtoni përshkrimin e tij në bigtop.bom dhe .\/bigtop-packages. Mund të provoni ta bëni këtë përmes ngjashmërisë me komponentët ekzistues. Provoni të kuptoni. Nuk është kaq e vështirë siç duket në shikim të parë.
ĂfarĂ« mendoni ju? Do tĂ« na pĂ«lqente tĂ« shohim 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
