Apache Bigtop dan memilih distribusi Hadoop hari ini

Apache Bigtop dan memilih distribusi Hadoop hari ini

Mungkin bukan rahasia lagi bahwa tahun lalu adalah tahun perubahan besar bagi Apache Hadoop. Tahun lalu, Cloudera dan Hortonworks bergabung (pada dasarnya, akuisisi Hortonworks), dan Mapr, karena masalah keuangan yang serius, dijual ke Hewlett Packard. Dan jika beberapa tahun sebelumnya, dalam hal instalasi di lokasi, pilihan sering kali harus dibuat antara Cloudera dan Hortonworks, namun saat ini, sayangnya, kami tidak memiliki pilihan tersebut. Kejutan lainnya adalah fakta bahwa Cloudera mengumumkan pada bulan Februari tahun ini bahwa mereka akan berhenti merilis rakitan biner distribusinya ke dalam repositori publik, dan sekarang hanya tersedia melalui langganan berbayar. Tentu saja, CDH dan HDP versi terbaru yang dirilis sebelum akhir tahun 2019 masih dapat diunduh, dan dukungan untuk versi tersebut diperkirakan akan bertahan selama satu hingga dua tahun. Tapi apa yang harus dilakukan selanjutnya? Bagi yang sebelumnya membayar berlangganan, tidak ada yang berubah. Dan bagi Anda yang tidak ingin beralih ke distribusi versi berbayar, namun sekaligus ingin dapat menerima komponen cluster versi terbaru, serta patch dan update lainnya, artikel ini telah kami siapkan. Di dalamnya kami akan mempertimbangkan opsi yang memungkinkan untuk keluar dari situasi ini.

Artikel ini lebih merupakan ulasan. Itu tidak akan berisi perbandingan distribusi dan analisis rinci tentangnya, dan tidak akan ada resep untuk menginstal dan mengkonfigurasinya. Apa yang akan terjadi? Kami akan membahas secara singkat tentang distribusi seperti Arenadata Hadoop, yang patut mendapat perhatian kami karena ketersediaannya yang sangat langka saat ini. Lalu kita akan membahas tentang Vanilla Hadoop, terutama tentang cara "memasaknya" menggunakan Apache Bigtop. Siap? Kemudian selamat datang di kucing.

Arenadata Hadoop

Apache Bigtop dan memilih distribusi Hadoop hari ini

Ini adalah perangkat distribusi pengembangan dalam negeri yang benar-benar baru dan, sampai sekarang, kurang dikenal. Sayangnya, saat ini di HabrΓ© hanya ada artikel ini.

Informasi lebih lanjut dapat ditemukan di pejabat Online proyek. Versi distribusi terbaru didasarkan pada Hadoop 3.1.2 untuk versi 3, dan 2.8.5 untuk versi 2.

Informasi tentang peta jalan dapat ditemukan di sini.

Apache Bigtop dan memilih distribusi Hadoop hari ini
Antarmuka Manajer Cluster Arenadata

Produk inti Arenadata adalah Manajer Klaster Arenadata (ADCM), yang digunakan untuk menginstal, mengkonfigurasi, dan memantau berbagai solusi perangkat lunak perusahaan. ADCM didistribusikan secara gratis, dan fungsinya diperluas dengan menambahkan bundel, yang merupakan sekumpulan buku pedoman yang memungkinkan. Paket dibagi menjadi dua jenis: perusahaan dan komunitas. Yang terakhir ini tersedia untuk diunduh gratis dari situs Arenadata. Dimungkinkan juga untuk mengembangkan bundel Anda sendiri dan menghubungkannya ke ADCM.

Untuk penerapan dan pengelolaan Hadoop 3, versi komunitas dari bundel ditawarkan bersama dengan ADCM, namun untuk Hadoop 2 hanya ada apache ambari sebagai alternatif. Sedangkan untuk repositori dengan paket terbuka untuk akses publik, dapat diunduh dan diinstal dengan cara biasa untuk semua komponen cluster. Secara keseluruhan, distribusinya terlihat sangat menarik. Saya yakin akan ada orang yang terbiasa dengan solusi seperti Cloudera Manager dan Ambari, dan akan menyukai ADCM itu sendiri. Bagi sebagian orang, distribusi juga akan menjadi nilai tambah yang besar termasuk dalam register perangkat lunak untuk substitusi impor.

Jika kita berbicara tentang kekurangannya, maka akan sama dengan semua distribusi Hadoop lainnya. Yaitu:

  • Yang disebut β€œpenguncian vendor”. Dengan menggunakan contoh Cloudera dan Hortonworks, kami menyadari bahwa selalu ada risiko perubahan kebijakan perusahaan.
  • Ketertinggalan yang signifikan dibandingkan Apache hulu.

Vanila Hadoop

Apache Bigtop dan memilih distribusi Hadoop hari ini

Seperti yang Anda ketahui, Hadoop bukanlah produk monolitik, namun, pada kenyataannya, seluruh galaksi layanan seputar sistem file terdistribusi HDFS. Hanya sedikit orang yang memiliki satu cluster file yang cukup. Beberapa membutuhkan Hive, yang lain Presto, dan kemudian ada HBase dan Phoenix; Spark semakin banyak digunakan. Untuk orkestrasi dan pemuatan data, Oozie, Sqoop, dan Flume terkadang ditemukan. Dan jika masalah keamanan muncul, maka Kerberos bersama Ranger langsung terlintas dalam pikiran.

Versi biner komponen Hadoop tersedia di situs web masing-masing proyek ekosistem dalam bentuk tarball. Anda dapat mengunduhnya dan memulai instalasi, tetapi dengan satu syarat: selain merakit paket secara mandiri dari biner "mentah", yang kemungkinan besar ingin Anda lakukan, Anda tidak akan yakin dengan kompatibilitas versi komponen yang diunduh dengan masing-masing paket. lainnya. Opsi yang lebih disukai adalah membangun menggunakan Apache Bigtop. Bigtop akan memungkinkan Anda membangun dari repositori pakar Apache, menjalankan pengujian, dan membangun paket. Namun, yang sangat penting bagi kami, Bigtop akan merakit versi komponen yang kompatibel satu sama lain. Kami akan membicarakannya lebih detail di bawah.

Apache Bigtop

Apache Bigtop dan memilih distribusi Hadoop hari ini

Apache Bigtop adalah alat untuk membangun, mengemas, dan menguji sejumlah
proyek sumber terbuka, seperti Hadoop dan Greenplum. Bigtop punya banyak
rilis. Pada saat penulisan, rilis stabil terbaru adalah versi 1.4,
dan di master ada 1.5. Versi rilis yang berbeda menggunakan versi yang berbeda
komponen. Misalnya untuk komponen inti Hadoop 1.4 memiliki versi 2.8.5, dan di master
2.10.0. Komposisi komponen pendukung juga mengalami perubahan. Sesuatu yang ketinggalan jaman dan
energi tak terbarukan akan hilang, dan sebagai gantinya muncullah energi baru, yang lebih dibutuhkan, dan
itu belum tentu berasal dari keluarga Apache itu sendiri.

Selain itu, Bigtop punya banyak garpu.

Ketika kami mulai mengenal Bigtop, pertama-tama kami terkejut dengan kesederhanaannya, dibandingkan dengan proyek Apache lainnya, prevalensi dan popularitasnya, serta komunitasnya yang sangat kecil. Oleh karena itu, hanya ada sedikit informasi tentang produk, dan pencarian solusi atas masalah yang muncul di forum dan milis mungkin tidak menghasilkan apa-apa. Pada awalnya, ternyata menjadi tugas yang sulit bagi kami untuk menyelesaikan seluruh perakitan distribusi karena fitur dari alat itu sendiri, tetapi kami akan membicarakannya nanti.

Sebagai penggoda, mereka yang pernah tertarik dengan proyek-proyek di dunia Linux seperti Gentoo dan LFS mungkin merasa senang bekerja dengan benda ini dan mengingat saat-saat "epik" ketika kita sendiri sedang mencari (atau bahkan menulis) ebuild dan secara rutin membangun kembali Mozilla dengan patch baru.

Keuntungan besar Bigtop adalah keterbukaan dan keserbagunaan alat yang mendasarinya. Ini didasarkan pada Gradle dan Apache Maven. Gradle cukup terkenal sebagai alat yang digunakan Google untuk membangun Android. Ini fleksibel, dan, seperti yang mereka katakan, β€œtelah teruji dalam pertempuran.” Maven adalah alat standar untuk membangun proyek di Apache itu sendiri, dan karena sebagian besar produknya dirilis melalui Maven, hal ini juga tidak dapat dilakukan tanpanya di sini. Perlu memperhatikan POM (model objek proyek) - file xml "dasar" yang menjelaskan semua yang diperlukan Maven untuk bekerja dengan proyek Anda, di mana semua pekerjaan dibangun. Tepatnya pada
bagian dari Maven dan ada beberapa kendala yang biasanya dihadapi oleh pengguna Bigtop pertama kali.

Praktek

Jadi dari mana Anda harus memulai? Buka halaman unduh dan unduh versi stabil terbaru sebagai arsip. Di sana Anda juga dapat menemukan artefak biner yang dikumpulkan oleh Bigtop. Omong-omong, di antara pengelola paket umum, YUM dan APT didukung.

Alternatifnya, Anda dapat mengunduh rilis stabil terbaru langsung dari
github:

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

Kloning di β€œ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), Π³ΠΎΡ‚ΠΎΠ²ΠΎ.

Direktori ./bigtop yang dihasilkan terlihat seperti ini:

./bigtop-bigpetstore β€” aplikasi demo, contoh sintetik
./bigtop-ci - Alat CI, jenkins
./bigtop-data-generators β€” pembuatan data, sintetis, untuk tes asap, dll.
./bigtop-deploy - alat penyebaran
./bigtop-packages β€” konfigurasi, skrip, tambalan untuk perakitan, bagian utama alat
./bigtop-test-framework β€” kerangka pengujian
./bigtop-tests β€” tes itu sendiri, memuat dan merokok
./bigtop_toolchain β€” lingkungan untuk perakitan, mempersiapkan lingkungan agar alat dapat bekerja
./build β€” membangun direktori kerja
./dl β€” direktori untuk sumber yang diunduh
./docker β€” membangun gambar buruh pelabuhan, menguji
./gradle - konfigurasi tingkat
./output – direktori tempat artefak build berada
./provisioner β€” penyediaan

Hal yang paling menarik bagi kami pada tahap ini adalah konfigurasi utama ./bigtop/bigtop.bom, di mana kita melihat semua komponen yang didukung dengan versinya. Di sinilah kita dapat menentukan versi produk yang berbeda (jika kita tiba-tiba ingin mencoba membuatnya) atau versi build (jika, misalnya, kita menambahkan patch yang signifikan).

Subdirektori juga sangat menarik ./bigtop/bigtop-packages, yang berhubungan langsung dengan proses perakitan komponen dan paket dengannya.

Jadi, kita mengunduh arsipnya, membongkarnya atau membuat tiruan dari github, bisakah kita mulai membangunnya?

Tidak, mari kita persiapkan lingkungannya terlebih dahulu.

Mempersiapkan Lingkungan

Dan di sini kita perlu sedikit penyimpangan. Untuk membangun hampir semua produk yang kurang lebih kompleks, diperlukan lingkungan tertentu - dalam kasus kami, ini adalah JDK, perpustakaan bersama yang sama, file header, dll., alat, misalnya, ant, ivy2, dan banyak lagi. Salah satu opsi untuk mendapatkan lingkungan yang Anda perlukan untuk Bigtop adalah dengan menginstal komponen yang diperlukan pada host build. Saya mungkin salah dalam kronologinya, tetapi tampaknya dengan versi 1.0 juga terdapat opsi untuk membangun image Docker yang telah dikonfigurasi sebelumnya dan dapat diakses, yang dapat ditemukan di sini.

Sedangkan untuk mempersiapkan lingkungan, ada asistennya - Wayang.

Anda dapat menggunakan perintah berikut, dijalankan dari direktori root
alat, ./bigtop:

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

Atau langsung melalui wayang:

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"

Sayangnya, kesulitan mungkin sudah muncul pada tahap ini. Saran umum di sini adalah menggunakan distribusi yang didukung, memperbarui host build, atau mencoba rute buruh pelabuhan.

Majelis

Apa yang bisa kita coba kumpulkan? Jawaban atas pertanyaan ini akan diberikan oleh output dari perintah

./gradlew tasks

Di bagian Paket tugas terdapat sejumlah produk yang merupakan artefak akhir Bigtop.
Mereka dapat diidentifikasi dengan akhiran -rpm atau -pkg-ind (dalam kasus building
di buruh pelabuhan). Dalam kasus kami, yang paling menarik adalah Hadoop.

Mari kita coba membangun di lingkungan server build kita:

./gradlew hadoop-rpm

Bigtop sendiri akan mengunduh sumber yang diperlukan untuk komponen tertentu dan memulai perakitan. Oleh karena itu, pengoperasian alat ini bergantung pada repositori Maven dan sumber lain, sehingga memerlukan akses Internet.

Selama operasi, output standar dihasilkan. Terkadang pesan kesalahan dan kesalahan dapat membantu Anda memahami apa yang salah. Dan terkadang Anda perlu mendapatkan informasi tambahan. Dalam hal ini ada baiknya menambahkan argumen --info ΠΈΠ»ΠΈ --debug, dan mungkin juga bermanfaat –stacktrace. Ada cara mudah untuk menghasilkan kumpulan data untuk akses selanjutnya ke milis, kuncinya --scan.

Dengan bantuannya, bigtop akan mengumpulkan semua informasi dan memasukkannya ke dalam gradle, setelah itu akan memberikan tautan,
dengan mengikuti ini, orang yang berkompeten akan dapat memahami mengapa pertemuan tersebut gagal.
Perlu diketahui bahwa opsi ini dapat menampilkan informasi yang tidak Anda inginkan, seperti nama pengguna, node, variabel lingkungan, dll., jadi berhati-hatilah.

Seringkali kesalahan merupakan akibat dari ketidakmampuan memperoleh komponen apa pun yang diperlukan untuk perakitan. Biasanya, Anda dapat memperbaiki masalah dengan membuat tambalan untuk memperbaiki sesuatu di sumber, misalnya alamat di pom.xml di direktori akar sumber. Hal ini dilakukan dengan membuat dan menempatkannya di direktori yang sesuai ./bigtop/bigtop-packages/src/common/oozie/ tambalan, misalnya, dalam bentuk 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>

Kemungkinan besar, saat membaca artikel ini, Anda tidak perlu melakukan sendiri perbaikan di atas.

Saat memperkenalkan patch dan perubahan apa pun pada mekanisme perakitan, Anda mungkin perlu β€œmengatur ulang” perakitan menggunakan perintah pembersihan:

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

Operasi ini akan mengembalikan semua perubahan pada perakitan komponen ini, setelah itu perakitan akan dilakukan kembali. Kali ini kami akan mencoba membangun proyek dalam image buruh pelabuhan:

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

Pembangunan dilakukan di CentOS, tetapi juga dapat dilakukan di Ubuntu:

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

Selain membuat paket untuk berbagai distribusi Linux, alat ini dapat membuat repositori dengan paket yang dikompilasi, misalnya:

./gradlew yum

Anda juga dapat mengingat tentang pengujian asap dan penerapan di Docker.

Buat cluster yang terdiri dari tiga node:

./gradlew -Pnum_instances=3 docker-provisioner

Jalankan pengujian asap dalam kelompok yang terdiri dari tiga node:

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

Hapus klaster:

./gradlew docker-provisioner-destroy

Dapatkan perintah untuk menghubungkan di dalam wadah buruh pelabuhan:

./gradlew docker-provisioner-ssh

Tampilkan status:

./gradlew docker-provisioner-status

Anda dapat membaca lebih lanjut tentang tugas Deployment di dokumentasi.

Jika kita berbicara tentang pengujian, jumlahnya cukup banyak, terutama asap dan integrasi. Analisis mereka berada di luar cakupan artikel ini. Izinkan saya mengatakan bahwa merakit kit distribusi bukanlah tugas yang sulit seperti yang terlihat pada pandangan pertama. Kami berhasil merakit dan lulus pengujian pada semua komponen yang kami gunakan dalam produksi kami, dan kami juga tidak mengalami masalah dalam menerapkannya dan melakukan operasi dasar di lingkungan pengujian.

Selain komponen yang ada di Bigtop, Anda juga bisa menambahkan apa pun, bahkan pengembangan perangkat lunak Anda sendiri. Semua ini sepenuhnya otomatis dan sesuai dengan konsep CI/CD.

Kesimpulan

Tentunya distribusi yang disusun dengan cara ini tidak boleh langsung dikirim ke produksi. Anda perlu memahami bahwa jika ada kebutuhan nyata untuk membangun dan mendukung distribusi Anda, maka Anda perlu menginvestasikan uang dan waktu untuk hal ini.

Namun, jika dikombinasikan dengan pendekatan yang tepat dan tim profesional, sangat mungkin dilakukan tanpa solusi komersial.

Penting untuk dicatat bahwa proyek Bigtop sendiri perlu dikembangkan dan tampaknya tidak dikembangkan secara aktif saat ini. Prospek kemunculan Hadoop 3 di dalamnya juga masih belum jelas. Omong-omong, jika Anda benar-benar perlu membangun Hadoop 3, Anda bisa melihatnya garpu dari Arenadata, yang selain standar
Ada sejumlah komponen tambahan (Ranger, Knox, NiFi).

Sedangkan untuk Rostelecom, bagi kami Bigtop adalah salah satu opsi yang dipertimbangkan saat ini. Apakah kita memilihnya atau tidak, waktu akan menjawabnya.

Lampiran

Untuk menyertakan komponen baru dalam perakitan, Anda perlu menambahkan deskripsinya ke bigtop.bom dan ./bigtop-packages. Anda bisa mencoba melakukannya dengan analogi dengan komponen yang ada. Cobalah untuk mencari tahu. Ini tidak sesulit kelihatannya pada pandangan pertama.

Bagaimana menurutmu? Kami akan senang melihat pendapat Anda di komentar dan terima kasih atas perhatian Anda!

Artikel ini disiapkan oleh tim manajemen data Rostelecom

Sumber: www.habr.com

Tambah komentar