Apache Bigtop və bu gün Hadoop paylanması seçimi

Apache Bigtop və bu gün Hadoop paylanması seçimi

Yəqin ki, heç kimə sirr deyil ki, ötən il Apache Hadoop üçün böyük dəyişikliklər ili olub. Keçən il Cloudera və Hortonworks birləşdi (əslində sonuncunun ələ keçirilməsi) və Mapr ciddi maliyyə problemlərinə görə Hewlett Packard-a satıldı. Bir neçə il əvvəl, yerli quraşdırmalar vəziyyətində, seçim daha tez-tez Cloudera və Hortonworks arasında edilməli idisə, bu gün təəssüf ki, bizim bu seçimimiz yoxdur. Digər bir sürpriz, bu ilin fevral ayından etibarən Cloudera-nın paylanmasının ikili quruluşlarını ictimai depoya buraxmağı dayandırdığını elan etməsi və indi onları yalnız ödənişli abunə ilə əldə etməsi idi. Əlbəttə ki, 2019-cu ilin sonuna qədər buraxılmış CDH və HDP-nin ən son versiyalarını yükləmək imkanı hələ də mövcuddur və bir-iki il ərzində onlara dəstək gözlənilir. Amma bundan sonra nə etməli? Əvvəllər abunə haqqını ödəyənlər üçün heç nə dəyişməyib. Və paylamanın pullu versiyasına keçmək istəməyənlər, lakin eyni zamanda klaster komponentlərinin ən son versiyalarını, həmçinin yamaqları və digər yeniləmələri əldə etmək istəyənlər üçün bu məqaləni hazırlamışıq. Bu vəziyyətdə bu vəziyyətdən çıxmaq üçün mümkün variantları nəzərdən keçirəcəyik.

Məqalə daha çox icmal xarakterlidir. Dağıtımları müqayisə etməyəcək və onları ətraflı təhlil etməyəcək və onları quraşdırmaq və konfiqurasiya etmək üçün heç bir resept olmayacaq. Bəs nə olacaq? Arenadata Hadoop kimi bir paylama dəsti haqqında qısaca danışacağıq, mövcudluğu ilə haqlı olaraq diqqətimizə layiq idi, bu gün nadirdir. Və sonra Vanilla Hadoop haqqında danışacağıq, əsasən Apache Bigtop istifadə edərək necə "bişirilə biləcəyi" haqqında. Hazırsan? Sonra pişik altında xoş gəlmisiniz.

Arenadata Hadoop

Apache Bigtop və bu gün Hadoop paylanması seçimi

Bu, tamamilə yeni və hələlik, yerli inkişafın az tanınan paylama dəstidir. Təəssüf ki, hazırda Habré-də yalnız onun haqqında var Bu məqalə.

Daha ətraflı məlumatı rəsmidə tapa bilərsiniz Online layihə. Yayımın ən son versiyaları 3.1.2-cü versiya üçün Hadoop 3, 2.8.5-ci versiya üçün 2-ə əsaslanır.

Yol xəritəsi məlumatlarını tapa bilərsiniz burada.

Apache Bigtop və bu gün Hadoop paylanması seçimi
Arenadata Cluster Manager interfeysi

Arenadata-nın əsas məhsulu Arenadata Klaster Meneceri (ADCM), şirkətin müxtəlif proqram həllərini quraşdırmaq, konfiqurasiya etmək və izləmək üçün istifadə olunur. ADCM pulsuz paylanır və onun funksionallığı ona ansible-playbooks dəsti olan paketlər əlavə etməklə genişləndirilir. Paketlər iki növə bölünür: müəssisə və icma. Sonuncuları Arenadata saytından pulsuz yükləmək olar. Öz paketinizi inkişaf etdirmək və onu ADCM-ə qoşmaq da mümkündür.

Hadoop 3-ün yerləşdirilməsi və idarə edilməsi üçün ADCM ilə birlikdə paketin icma versiyası təklif olunur və hadoop 2 üçün yalnız Apache Ambari alternativ kimi. Paketləri olan repozitoriyalara gəldikdə, onlar ictimai giriş üçün açıqdır, onları bütün klaster komponentləri üçün adi şəkildə yükləmək və quraşdırmaq olar. Ümumiyyətlə, paylama çox maraqlı görünür. Əminəm ki, Cloudera Manager və Ambari kimi həllərə öyrəşmiş və ADCM-nin özünü bəyənənlər olacaq. Bəziləri üçün bu, paylama dəsti də böyük bir artı olacaq proqram təminatı reyestrinə daxil edilmişdir idxalı əvəz etmək üçün.

Mənfi cəhətlərdən danışsaq, onlar bütün digər Hadoop paylamaları ilə eyni olacaq. Məhz:

  • Sözdə "satıcı kilidi". Cloudera və Hortonworks nümunələrindən istifadə edərək, biz artıq başa düşdük ki, şirkətin siyasətini dəyişmək riski həmişə var.
  • Upstream Apache-dən əhəmiyyətli dərəcədə geri qalır.

Vanil Hadoop

Apache Bigtop və bu gün Hadoop paylanması seçimi

Bildiyiniz kimi, Hadoop monolit məhsul deyil, əslində HDFS paylanmış fayl sistemi ətrafında xidmətlər qalaktikasıdır. Bir fayl klasterindən çox az adam razı qalacaq. Bəzilərinə Hive, digərlərinə Presto lazımdır, sonra HBase və Phoenix var, Spark getdikcə daha çox istifadə olunur. Oozie, Sqoop və Flume bəzən orkestrasiya və məlumatların yüklənməsi üçün tapılır. Əgər təhlükəsizlik məsələsi yaranarsa, Kerberos dərhal Ranger ilə birlikdə xatırlanır.

Hadoop komponentlərinin ikili versiyaları ekosistem layihələrinin hər birinin veb saytında tarball şəklində mövcuddur. Siz onları yükləyə və quraşdırmaya başlaya bilərsiniz, lakin bir şərtlə: çox güman ki, etmək istədiyiniz "xam" ikili sistemlərdən paketlərin öz-özünə yığılmasına əlavə olaraq, yüklənmiş versiyaların uyğunluğuna heç bir inamınız olmayacaq. komponentləri bir-biri ilə. Ən yaxşı seçim Apache Bigtop ilə qurmaqdır. Bigtop sizə Apache maven depolarından qurmağa, testlər keçirməyə və paketlər qurmağa imkan verəcək. Ancaq bizim üçün çox vacib olan Bigtop komponentlərin bir-birinə uyğun olan versiyalarını yığacaq. Bu barədə sonra daha ətraflı danışacağıq.

Apache bigtop

Apache Bigtop və bu gün Hadoop paylanması seçimi

Apache Bigtop bir sıra qurmaq, qablaşdırmaq və sınaqdan keçirmək üçün bir vasitədir
Hadoop və Greenplum kimi açıq mənbəli layihələr. Bigtopda çox şey var
relizlər. Yazı zamanı ən son stabil buraxılış 1.4 versiyasıdır,
magistraturada isə 1.5 idi. Relizlərin müxtəlif versiyaları fərqli versiyalardan istifadə edir
komponentlər. Məsələn, 1.4 Hadoop üçün əsas komponentlər 2.8.5 versiyasına malikdir və master-da
2.10.0. Dəstəklənən komponentlərin siyahısı da dəyişir. Köhnə bir şey və
bərpa olunmayan gedir və onun yerinə daha çox tələbat olan yeni bir şey gəlir və
mütləq Apache ailəsinin özündən bir şey deyil.

Bundan əlavə, Bigtop-da çoxlu var çəngəllər.

Bigtop ilə tanış olmağa başlayanda ilk növbədə onun digər Apache layihələri ilə müqayisədə təvazökarlığı, yayılması və şöhrəti, eləcə də çox kiçik bir icması bizi təəccübləndirdi. Buradan belə nəticə çıxır ki, məhsul haqqında minimum məlumat var və forumlarda və poçt siyahılarında yaranan problemlərin həlli üçün axtarış heç bir şey verməyə bilər. Əvvəlcə alətin özünün xüsusiyyətlərinə görə paylamanın tam yığılmasını başa çatdırmaq bizim üçün çətin bir iş oldu, lakin bu barədə bir az sonra danışacağıq.

Tizer olaraq, bir dəfə Linux kainatının Gentoo və LFS kimi layihələrini ziyarət edənlər bu şeylə işləməkdən nostalji xoş gələ bilər və özümüzün ebuildləri axtardığımız (və ya hətta yazdığımız) və müntəzəm olaraq mozilla-nı yenidən qurduğumuz o "epik" vaxtları xatırlaya bilər. yeni yamalar ilə.

Bigtop-un böyük üstünlüyü onun əsaslandığı alətlərin açıqlığı və çox yönlü olmasıdır. O, Gradle və Apache Maven-ə əsaslanır. Gradle, Google-un Android ilə qurduğu alət kimi tanınır. Çevikdir və necə deyərlər, "döyüşdə sınaqdan keçirilir". Maven, Apache-nin özündə layihələr qurmaq üçün standart bir vasitədir və məhsullarının əksəriyyəti Maven vasitəsilə buraxıldığından, onsuz da edə bilməzdi. POM-a (layihə obyekti modeli) diqqət yetirməyə dəyər - Maven-in layihənizlə işləməsi üçün lazım olan hər şeyin təsviri ilə "fundamental" bir xml faylı, ətrafında bütün işlər qurulur. Tam olaraq
Maven hissələri və Bigtop-a yeni gələnlərin adətən qarşılaşdıqları bəzi maneələr.

Praktika

Beləliklə, haradan başlamaq lazımdır? Yükləmə səhifəsinə gedirik və ən son stabil versiyanı arxiv olaraq yükləyirik. Orada Bigtop tərəfindən tərtib edilmiş ikili artefaktları da tapa bilərsiniz. Yeri gəlmişkən, ümumi paket menecerlərindən YUM və APT dəstəklənir.

Alternativ olaraq, ən son stabil buraxılışı birbaşa buradan yükləyə bilərsiniz
github:

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

"Bigtop"a klonlanır...

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), готово.

Nəticədə ./bigtop kataloqu belə görünür:

./bigtop-bigpetstore - demo proqramlar, sintetik nümunələr
./bigtop-ci - CI alət dəsti, jenkins
./bigtop-data-generators - məlumatların yaradılması, sintetik, tüstü testləri üçün və s.
./bigtop-deploy - yerləşdirmə alətləri
./bigtop-packages - konfiqurasiyalar, skriptlər, qurma yamaları, alətin əsas hissəsi
./bigtop-test-framework - sınaq çərçivəsi
./bigtop-tests - sınaqların özləri, yük və siqaret
./bigtop_toolchain - mühitin qurulması, alətin işləməsi üçün mühitin hazırlanması
./build - iş kataloqu qurmaq
./dl - yüklənmiş mənbələr üçün kataloq
./docker - docker şəkillərində qurmaq, sınaqdan keçirmək
./gradle - gradle konfiqurasiyası
./output – tikinti artefaktlarının getdiyi kataloq
./provisioner - təminat

Bu mərhələdə bizim üçün ən maraqlısı əsas konfiqurasiyadır ./bigtop/bigtop.bom, biz versiyaları ilə bütün dəstəklənən komponentləri görürük. Burada məhsulun fərqli bir versiyasını (birdən onu qurmaq istəsək) və ya montaj versiyasını (məsələn, əhəmiyyətli bir yamaq əlavə etdiksə) təyin edə bilərik.

Alt kataloq da böyük maraq doğurur ./bigtop/bigtop-packages, bu da bilavasitə komponentlərin və bağlamaların onlarla birlikdə yığılması prosesi ilə bağlıdır.

Beləliklə, biz arxivi yüklədik, çıxardıq və ya github-dan klon hazırladıq, qurmağa başlaya bilərikmi?

Yox, əvvəlcə mühiti hazırlayaq.

Ətraf Mühitin Hazırlanması

Və burada bir az uzaqlaşmaq lazımdır. Demək olar ki, hər hansı bir az və ya çox mürəkkəb məhsul yaratmaq üçün müəyyən bir mühitə ehtiyacınız var - bizim vəziyyətimizdə bu, JDK, eyni paylaşılan kitabxanalar, başlıq faylları və s., alətlər, məsələn, qarışqa, ivy2 və daha çox şeydir. Bigtop üçün düzgün mühiti əldə etməyin bir variantı quraşdırma hostunda düzgün komponentləri quraşdırmaqdır. Xronologiyada səhv edə bilərəm, lakin görünür ki, 1.0 versiyasından bəri əvvəlcədən konfiqurasiya edilmiş və mövcud docker şəkillərində quraşdırma seçimi də var, onları burada tapa bilərsiniz.

Mühitin hazırlanmasına gəlincə, bunun üçün bir köməkçi var - Kukla.

Aşağıdakı əmrlərdən istifadə edə bilərsiniz, işə salma kök kataloqundan həyata keçirilir
alət, ./bigtop:

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

Və ya birbaşa kukla vasitəsilə:

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"

Təəssüf ki, hətta bu mərhələdə də çətinliklər yarana bilər. Buradakı ümumi məsləhət, qurulma hostunda yenilənmiş dəstəklənən paylamadan istifadə etmək və ya docker yolunu sınamaqdır.

Məclis

Nə toplamağa cəhd edə bilərik? Bu sualın cavabı əmrin nəticəsini verəcəkdir

./gradlew tasks

Paket tapşırıqları bölməsində Bigtopun son artefaktları olan bir sıra məhsullar var.
Onlar -rpm və ya -pkg-ind şəkilçisi ilə müəyyən edilə bilər (bina vəziyyətində
dokerdə). Bizim vəziyyətimizdə ən maraqlısı Hadoopdur.

Quraşdırma server mühitimizdə qurmağa çalışaq:

./gradlew hadoop-rpm

Bigtop müəyyən bir komponent üçün lazım olan mənbələri endirəcək və qurmağa başlayacaq. Beləliklə, alətin işi Maven depolarına və digər mənbələrə bağlıdır, yəni İnternetə çıxış lazımdır.

Əməliyyat zamanı standart çıxış yaradılır. Bəzən o və səhv mesajları nəyin səhv getdiyini anlamaq üçün istifadə edilə bilər. Və bəzən daha çox məlumat lazımdır. Bu vəziyyətdə arqumentlər əlavə etməlisiniz --info və ya --debughəm də faydalı ola bilər –stacktrace. Əsas poçt siyahılarına sonradan daxil olmaq üçün məlumat dəstini yaratmaq üçün əlverişli bir yol var --scan.

Bununla, bigtop bütün məlumatları toplayacaq və gradle-ə yerləşdirəcək, bundan sonra bir keçid verəcək,
oradan keçdikdən sonra səlahiyyətli şəxs toplantının niyə uğursuz olduğunu başa düşə biləcək.
Nəzərə alın ki, bu seçim istifadəçi adları, qovşaqlar, mühit dəyişənləri və s. kimi istəmədiyiniz məlumatları ictimai edə bilər, ona görə də diqqətli olun.

Çox vaxt səhvlər montaj üçün lazım olan hər hansı komponenti əldə edə bilməməyin nəticəsidir. Tipik olaraq, problemi həll etməyin yolu mənbə kök kataloqunda pom.xml-də ünvan kimi mənbələrdə nəyisə düzəltmək üçün yamaq yaratmaqdır. Bu, onu yaratmaq və müvafiq qovluğa yerləşdirməklə həyata keçirilir ./bigtop/bigtop-packages/src/common/oozie/ yamaq, məsələn, formada 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>

Çox güman ki, bu məqaləni oxuyarkən yuxarıdakı düzəlişləri özünüz etməli olmayacaqsınız.

Quraşdırma mexanizminə hər hansı yamaq və düzəlişlər təqdim edərkən, təmizləmə əmri ilə quruluşu "sıfırlamağınız" lazım ola bilər:

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

Bu əməliyyat bu komponentin montajındakı bütün dəyişiklikləri geri qaytaracaq, bundan sonra montaj yenidən həyata keçiriləcək. Bu dəfə layihəni docker şəklində qurmağa çalışaq:

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

Quraşdırma CentOS altında edildi, lakin siz bunu Ubuntu altında da edə bilərsiniz:

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

Müxtəlif Linux paylamaları üçün paketlər qurmaqla yanaşı, alət tərtib edilmiş paketlərlə bir repozitoriya yarada bilər, məsələn:

./gradlew yum

Duman testləri və docker-də yerləşdirmə haqqında da xatırlaya bilərsiniz.

Üç qovşaqdan ibarət klaster yaradın:

./gradlew -Pnum_instances=3 docker-provisioner

Üç qovşaqdan ibarət klasterdə tüstü testlərini həyata keçirin:

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

Klasteri silin:

./gradlew docker-provisioner-destroy

Docker konteynerlərinin içərisinə qoşulmaq üçün əmrlər alın:

./gradlew docker-provisioner-ssh

Vəziyyəti göstərin:

./gradlew docker-provisioner-status

Siz sənədlərdə yerləşdirmə tapşırıqları haqqında ətraflı oxuya bilərsiniz.

Testlər haqqında danışırıqsa, onların kifayət qədər çoxu var, əsasən tüstü və inteqrasiya. Onların təhlili bu məqalənin əhatə dairəsi xaricindədir. Sadəcə onu deyim ki, paylanma qurmaq ilk baxışdan göründüyü qədər çətin bir iş deyil. İstehsalımızda istifadə etdiyimiz bütün komponentlər onları yığıb sınaqdan keçirə bildi və biz də onları yerləşdirmək və sınaq mühitində əsas əməliyyatları yerinə yetirməkdə heç bir problem yaşamadıq.

Bigtop-da mövcud komponentlərə əlavə olaraq, başqa bir şey əlavə etmək, hətta öz proqram təminatınızı inkişaf etdirmək mümkündür. Bütün bunlar mükəmməl avtomatlaşdırılmışdır və CI / CD konsepsiyasına uyğundur.

Nəticə

Aydındır ki, bu şəkildə tərtib edilmiş bir paylama dərhal istehsala göndərilməməlidir. Siz başa düşməlisiniz ki, əgər paylamanızı qurmaq və dəstəkləmək üçün həqiqətən ehtiyac varsa, o zaman ona maliyyə və vaxtında investisiya qoymalısınız.

Bununla belə, düzgün yanaşma və peşəkar komanda ilə birlikdə kommersiya həlləri olmadan etmək olduqca mümkündür.

Qeyd etmək lazımdır ki, Bigtop layihəsinin özünün də inkişafa ehtiyacı var və görünür, bu gün orada aktiv inkişaf yoxdur. Hadoop 3-ün orada görünməsi perspektivi də anlaşılmazdır.Yeri gəlmişkən, Hadoop 3-ü qurmaq üçün həqiqətən ehtiyacınız varsa, baxa bilərsiniz. çəngəl Standarta əlavə olaraq Arenadata-dan
bir sıra əlavə komponentlər var (Ranger, Knox, NiFi).

Rostelecom-a gəldikdə, bizim üçün Bigtop bu gün nəzərdən keçirilən variantlardan biridir. Buna qərar verib-verməsək də, bunu zaman göstərəcək.

əlavə

Assambleyaya yeni komponent daxil etmək üçün onun təsvirini bigtop.bom və ./bigtop-packages-a əlavə etməlisiniz. Bunu mövcud komponentlərlə bənzətmə yolu ilə etməyə cəhd edə bilərsiniz. Bunu anlamağa çalışın. Bu, ilk baxışdan göründüyü qədər çətin deyil.

Nə fikirləşirsən? Rəylərinizi şərhlərdə görməkdən şad olarıq və diqqətinizə görə təşəkkür edirik!

Məqalə Rostelecom-un məlumatların idarə edilməsi qrupu tərəfindən hazırlanmışdır

Mənbə: www.habr.com

Добавить комментарий