Apache Bigtop болон өнөөдөр Hadoop түгээлтийг сонгох

Apache Bigtop болон өнөөдөр Hadoop түгээлтийг сонгох

Өнгөрсөн жил Apache Hadoop-ийн хувьд томоохон өөрчлөлтүүдийн жил байсан нь нууц биш байх. Өнгөрсөн жил Cloudera болон Hortonworks компаниуд нэгдэж (үндсэндээ сүүлийнх нь худалдан авсан) бөгөөд санхүүгийн ноцтой асуудлаас болж Mapr Hewlett Packard-д зарагдсан. Хэдэн жилийн өмнө газар дээр нь суурилуулах тохиолдолд Cloudera болон Hortonworks хоёрын хооронд сонголт хийх шаардлагатай байсан бол харамсалтай нь өнөөдөр бидэнд ийм сонголт байхгүй. Өөр нэг гэнэтийн зүйл бол Cloudera энэ оны 2019-р сард түгээлтийн хоёртын ассемблейг олон нийтийн репозиторт гаргахаа зогсоож байгаагаа зарласан бөгөөд одоо зөвхөн төлбөртэй захиалгаар ашиглах боломжтой болсон. Мэдээжийн хэрэг, XNUMX оны эцэс гэхэд гаргасан CDH болон HDP-ийн хамгийн сүүлийн үеийн хувилбаруудыг татаж авах боломжтой хэвээр байгаа бөгөөд тэдгээрийг нэгээс хоёр жилийн хугацаанд дэмжих төлөвтэй байна. Гэхдээ дараа нь яах вэ? Өмнө нь захиалгын төлбөр төлсөн хүмүүсийн хувьд юу ч өөрчлөгдөөгүй. Түгээлтийн төлбөртэй хувилбар руу шилжихийг хүсэхгүй байгаа боловч кластерийн бүрэлдэхүүн хэсгүүдийн хамгийн сүүлийн хувилбарууд, засварууд болон бусад шинэчлэлтүүдийг авахыг хүсч байгаа хүмүүст зориулж бид энэ нийтлэлийг бэлтгэсэн. Үүн дээр бид энэ байдлаас гарах боломжит хувилбаруудыг авч үзэх болно.

Нийтлэл нь илүү тойм юм. Энэ нь түгээлтийн харьцуулалт, тэдгээрийн нарийвчилсан дүн шинжилгээг агуулаагүй бөгөөд тэдгээрийг суулгах, тохируулах жор байхгүй болно. Юу тохиолдох вэ? Өнөөдөр маш ховор тохиолддог Arenadata Hadoop гэх мэт түгээлтийн талаар бид товчхон ярих болно. Дараа нь бид Vanilla Hadoop-ийн тухай, голчлон үүнийг Apache Bigtop ашиглан хэрхэн "чанаж" болох талаар ярих болно. Бэлэн үү? Тэгвэл мууранд тавтай морил.

Arenadata Hadoop

Apache Bigtop болон өнөөдөр Hadoop түгээлтийг сонгох

Энэ бол цоо шинэ бөгөөд одоохондоо бага мэддэг дотоодын хөгжлийн түгээлтийн хэрэгсэл юм. Харамсалтай нь, одоогоор Хабре дээр зөвхөн байна энэ нийтлэл.

Дэлгэрэнгүй мэдээллийг албан ёсны вэбсайтаас авах боломжтой сайт төсөл. Түгээлтийн хамгийн сүүлийн хувилбарууд нь 3.1.2-р хувилбарын хувьд Hadoop 3, 2.8.5-р хувилбарын хувьд 2 дээр суурилсан.

Замын зургийн талаархи мэдээллийг авах боломжтой энд.

Apache Bigtop болон өнөөдөр Hadoop түгээлтийг сонгох
Arenadata Cluster Manager интерфейс

Arenadata-ийн үндсэн бүтээгдэхүүн нь Arenadata Cluster Manager (ADCM), энэ нь компанийн янз бүрийн програм хангамжийн шийдлүүдийг суулгах, тохируулах, хянахад ашиглагддаг. ADCM-ийг үнэ төлбөргүй тарааж, үйл ажиллагааг нь багцалсан багц болгон нэмэгдүүлсэн бөгөөд эдгээр нь ansible-playbooks багц юм. Багцыг аж ахуйн нэгж, олон нийтийн гэсэн хоёр төрөлд хуваадаг. Сүүлийнх нь Arenadata вэбсайтаас үнэгүй татаж авах боломжтой. Мөн өөрийн багцаа хөгжүүлж, ADCM-д холбох боломжтой.

Hadoop 3-ийг байршуулах, удирдахын тулд багцын олон нийтийн хувилбарыг ADCM-тэй хамт санал болгодог боловч Hadoop 2-ын хувьд зөвхөн Апачи Амбари хувилбар болгон. Багц бүхий репозиторуудын хувьд тэдгээр нь олон нийтэд нээлттэй, тэдгээрийг кластерын бүх бүрэлдэхүүн хэсгүүдийн хувьд ердийн аргаар татаж аваад суулгаж болно. Ерөнхийдөө хуваарилалт нь маш сонирхолтой харагдаж байна. Cloudera Manager, Ambari зэрэг шийдэлд дассан, ADCM-д дуртай хүмүүс байх болно гэдэгт итгэлтэй байна. Зарим хүмүүсийн хувьд энэ нь түгээлт нь маш том нэмэх болно програм хангамжийн бүртгэлд оруулсан болно импортыг орлох зориулалттай.

Хэрэв бид сул талуудын талаар ярих юм бол тэдгээр нь бусад бүх Hadoop түгээлтийн адил байх болно. Тухайлбал:

  • "Худалдагчийн түгжээ" гэж нэрлэгддэг. Cloudera болон Hortonworks-ийн жишээг ашигласнаар бид компанийн бодлогыг өөрчлөх эрсдэл үргэлж байдгийг аль хэдийн ойлгосон.
  • Урсгалын дээд талд Apache-ээс мэдэгдэхүйц хоцрогдол бий.

Ваниль Хадуп

Apache Bigtop болон өнөөдөр Hadoop түгээлтийг сонгох

Таны мэдэж байгаагаар Hadoop бол цул бүтээгдэхүүн биш, харин үнэн хэрэгтээ HDFS тархсан файлын системийн эргэн тойрон дахь бүхэл бүтэн галактик үйлчилгээ юм. Цөөхөн хүн нэг файлын кластертай байх болно. Заримд нь Hive, бусад нь Presto хэрэгтэй, дараа нь HBase болон Phoenix байдаг; Spark-ийг улам ихээр ашигладаг. Оркестр болон өгөгдөл ачаалахад заримдаа Oozie, Sqoop, Flume-г олдог. Хэрэв аюулгүй байдлын асуудал гарвал Керберос Ренжертэй хамт шууд санаанд орж ирдэг.

Hadoop бүрэлдэхүүн хэсгүүдийн хоёртын хувилбаруудыг экосистемийн төсөл бүрийн вэбсайтаас tarballs хэлбэрээр авах боломжтой. Та тэдгээрийг татаж аваад суулгаж эхлэх боломжтой, гэхдээ нэг болзолтой: "түүхий" хоёртын файлаас багцуудыг бие даан угсрахаас гадна та үүнийг хийхийг хүсч байгаа бол бүрэлдэхүүн хэсгүүдийн татаж авсан хувилбарууд тус бүртэй нийцэж байгаа гэдэгт итгэхгүй байх болно. бусад. Хамгийн тохиромжтой сонголт бол Apache Bigtop ашиглан бүтээх явдал юм. Bigtop нь танд Apache maven репозитороос бүтээх, тест хийх, багц үүсгэх боломжийг олгоно. Гэхдээ бидний хувьд хамгийн чухал зүйл бол Bigtop нь өөр хоорондоо нийцтэй бүрэлдэхүүн хэсгүүдийн хувилбаруудыг цуглуулах болно. Бид энэ талаар доор дэлгэрэнгүй ярих болно.

Apache Bigtop

Apache Bigtop болон өнөөдөр Hadoop түгээлтийг сонгох

Apache Bigtop нь хэд хэдэн бүтээх, савлах, турших хэрэгсэл юм
Hadoop, Greenplum зэрэг нээлттэй эхийн төслүүд. Bigtop-д хангалттай
гаргадаг. Үүнийг бичиж байх үед хамгийн сүүлийн тогтвортой хувилбар нь 1.4 хувилбар байсан.
мөн мастерт 1.5 байсан. Янз бүрийн хувилбарууд нь өөр өөр хувилбаруудыг ашигладаг
бүрэлдэхүүн хэсгүүд. Жишээлбэл, 1.4-ийн хувьд Hadoop-ийн үндсэн бүрэлдэхүүн хэсгүүд нь 2.8.5 хувилбартай, мөн мастер дээр
2.10.0. Дэмжигдсэн бүрэлдэхүүн хэсгүүдийн найрлага бас өөрчлөгдөж байна. Ямар нэг зүйл хуучирсан ба
нөхөн сэргээгдэх боломжгүй зүйл алга болж, түүний оронд шинэ, илүү эрэлт хэрэгцээтэй зүйл гарч ирдэг
Энэ нь Апачи гэр бүлээс гаралтай зүйл биш юм.

Нэмж дурдахад Bigtop-д олон зүйл бий сэрээ.

Бид Bigtop-тэй танилцаж эхлэхэд юуны түрүүнд түүний бусад Апачи төслүүдтэй харьцуулахад даруухан, тархалт, алдар нэр, мөн маш жижиг нийгэмлэгтэй харьцуулахад гайхсан. Үүнээс үзэхэд бүтээгдэхүүний талаар хамгийн бага мэдээлэл байдаг бөгөөд форум болон захидлын жагсаалтад үүссэн асуудлын шийдлийг хайх нь юу ч өгөхгүй байж магадгүй юм. Эхэндээ, уг хэрэгслийн онцлог шинж чанараас шалтгаалан түгээлтийн бүрэн угсралтыг дуусгах нь бидний хувьд хэцүү ажил байсан боловч бид энэ талаар дараа нь ярих болно.

Нэгэн цагт Gentoo, LFS зэрэг Линуксийн ертөнцийн төслүүдийг сонирхож байсан хүмүүст энэ зүйлтэй ажиллах нь дурсахуйгаар тааламжтай санагдаж, бидний хайж байсан (эсвэл бүр бичиж байсан) тэр "баатарлаг" үеийг дурсах нь дамжиггүй. ebuild болон Mozilla-г шинэ засваруудаар тогтмол сэргээдэг.

Bigtop-ийн том давуу тал нь түүний суурилсан хэрэгслүүдийн нээлттэй байдал, олон талт байдал юм. Энэ нь Gradle болон Apache Maven дээр суурилдаг. Gradle нь Google-ийн Android бүтээхэд ашигладаг хэрэгсэл гэдгээрээ алдартай. Энэ нь уян хатан бөгөөд тэдний хэлснээр "туланд туршсан". Maven бол Apache-д төсөл барих стандарт хэрэгсэл бөгөөд түүний ихэнх бүтээгдэхүүн нь Maven-ээр дамждаг тул энд үүнгүйгээр хийх боломжгүй юм. POM (төслийн объектын загвар) - Maven-д таны төсөлтэй ажиллахад шаардлагатай бүх зүйлийг тодорхойлсон "үндсэн" xml файлд анхаарлаа хандуулах нь зүйтэй бөгөөд түүний эргэн тойронд бүх ажил бий. Яг цагт
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 хэрэгслүүд, Женкинс
./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, ижил хуваалцсан номын сан, толгой файл гэх мэт хэрэгслүүд, жишээлбэл, шоргоолж, ivy2 болон бусад олон зүйл юм. Bigtop-д хэрэгтэй орчинг бүрдүүлэх сонголтуудын нэг нь бүтээх хост дээр шаардлагатай бүрэлдэхүүн хэсгүүдийг суулгах явдал юм. Би он цагийн дарааллаар алдаатай байж магадгүй ч 1.0 хувилбарын хувьд урьдчилан тохируулсан, хүртээмжтэй Docker зургуудыг эндээс авах боломжтой байсан бололтой.

Орчноо бэлтгэх тухайд үүнд туслах ажилтан байдаг - Хүүхэлдэй.

Та дараах тушаалуудыг ашиглаж, үндсэн директороос ажиллуулж болно
хэрэгсэл, ./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

Төрөл бүрийн Линукс түгээлтийн багцуудыг бүтээхээс гадна уг хэрэгсэл нь эмхэтгэсэн багц бүхий репозитор үүсгэж болно, жишээлбэл:

./gradlew yum

Та мөн Docker дахь утааны туршилт, байршуулалтын талаар санаж болно.

Гурван зангилааны кластер үүсгэ:

./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-ыг бүтээх үнэхээр хэрэгцээ байгаа бол та эндээс харж болно. сэрээ стандартаас гадна Arenadata-аас
Хэд хэдэн нэмэлт бүрэлдэхүүн хэсгүүд байдаг (Ranger, Knox, NiFi).

Ростелекомын хувьд бидний хувьд Bigtop бол өнөөдөр авч үзэх сонголтуудын нэг юм. Бид үүнийг сонгосон эсэхээс үл хамааран цаг хугацаа харуулах болно.

Хавсралт

Ассемблерт шинэ бүрэлдэхүүн хэсэг оруулахын тулд та түүний тайлбарыг bigtop.bom болон ./bigtop-packages дээр нэмэх хэрэгтэй. Та үүнийг одоо байгаа бүрэлдэхүүн хэсгүүдтэй харьцуулах замаар хийхийг оролдож болно. Үүнийг ойлгохыг хичээ. Энэ нь эхлээд харахад тийм ч хэцүү биш юм.

Чи юу гэж бодож байна? Бид таны сэтгэгдлийг сэтгэгдэл дээр хараад баяртай байх болно, анхаарал тавьсанд баярлалаа!

Нийтлэлийг Ростелекомын мэдээллийн менежментийн баг бэлтгэсэн

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх