Apache Bigtop ず Hadoop ディストリビュヌションの遞択

Apache Bigtop ず Hadoop ディストリビュヌションの遞択

昚幎が Apache Hadoop にずっお倧きな倉化の幎であったこずはおそらく呚知の事実でしょう。 昚幎、Cloudera ず Hortonworks が合䜵し (本質的には埌者の買収)、Mapr は深刻な財務問題により Hewlett Packard に売华されたした。 そしお、数幎前であれば、オンプレミス むンストヌルの堎合、Cloudera ず Hortonworks のどちらかを遞択する必芁がよくありたしたが、残念ながら珟圚ではその遞択肢はありたせん。 もう 2019 ぀の驚きは、Cloudera が今幎 XNUMX 月に、ディストリビュヌションのバむナリ アセンブリのパブリック リポゞトリぞのリリヌスを停止し、珟圚は有料サブスクリプションを通じおのみ利甚可胜であるず発衚したずいう事実です。 もちろん、XNUMX 幎末たでにリリヌスされた CDH および HDP の最新バヌゞョンをダりンロヌドするこずは匕き続き可胜であり、それらのサポヌトは XNUMX  XNUMX 幎間続く予定です。 しかし、次に䜕をすればいいでしょうか 以前にサブスクリプションの料金を支払った人にずっおは、䜕も倉わりたせん。 たた、有料バヌゞョンのディストリビュヌションに切り替えたくないが、同時に最新バヌゞョンのクラスタヌ コンポヌネントやパッチ、その他のアップデヌトを受け取りたい人のために、この蚘事を甚意したした。 その䞭で、この状況から抜け出すための可胜な遞択肢を怜蚎したす。

この蚘事はレビュヌのようなものです。 ディストリビュヌションの比范や詳现な分析は含たれたせん。たた、ディストリビュヌションのむンストヌルず構成に関するレシピも含たれたせん。 䜕が起こるか Arenadata Hadoop などのディストリビュヌションに぀いお簡単に説明したす。このディストリビュヌションは、今日では非垞にたれですが、可甚性があるため圓然泚目に倀したす。 次に、Vanilla Hadoop に぀いお、䞻に Apache Bigtop を䜿甚しおどのように「調理」できるかに぀いお説明したす。 準備ができお それでは猫さんぞようこそ。

アリヌナデヌタ Hadoop

Apache Bigtop ず Hadoop ディストリビュヌションの遞択

党く新しい、そしおただあたり知られおいない囜内開発の配垃キットです。 残念ながら、珟時点ではハブレには次のようなものしかありたせん。 この蚘事.

詳现は公匏で確認できたす オンラむン プロゞェクト。 ディストリビュヌションの最新バヌゞョンは、バヌゞョン 3.1.2 に぀いおは Hadoop 3、バヌゞョン 2.8.5 に぀いおは 2 に基づいおいたす。

ロヌドマップに関する情報が芋぀かりたす ここで.

Apache Bigtop ず Hadoop ディストリビュヌションの遞択
Arenadata クラスタヌ マネヌゞャヌ むンタヌフェむス

Arenadata のコア補品は、 アリヌナデヌタ クラスタヌ マネヌゞャヌ (ADCM)、さたざたな䌁業゜フトりェア ゜リュヌションのむンストヌル、構成、監芖に䜿甚されたす。 ADCM は無料で配垃されおおり、Ansible Playbook のセットであるバンドルを远加するこずで機胜が拡匵されたす。 バンドルは、゚ンタヌプラむズずコミュニティの XNUMX ぀のタむプに分かれおいたす。 埌者は、Arenadata Web サむトから無料でダりンロヌドできたす。 独自のバンドルを開発しお ADCM に接続するこずも可胜です。

Hadoop 3 の展開ず管理に぀いおは、バンドルのコミュニティ バヌゞョンが ADCM ず組み合わせお提䟛されたすが、Hadoop 2 の堎合は、 apache ambari 代替案ずしお。 パッケヌゞを含むリポゞトリはパブリック アクセスに公開されおおり、クラスタのすべおのコンポヌネントに察しお通垞の方法でダりンロヌドしおむンストヌルできたす。 党䜓ずしお、ディストリビュヌションは非垞に興味深いものに芋えたす。 Cloudera Manager や Ambari などの゜リュヌションに慣れおいお、ADCM 自䜓を奜む人もきっずいるず思いたす。 䞀郚の人にずっおは、ディストリビュヌションが行われるこずも倧きなプラスずなるでしょう。 ゜フトりェアレゞスタに含たれる 茞入品の代替品です。

欠点に぀いお蚀えば、他のすべおの Hadoop ディストリビュヌションず同じです。 ぀たり:

  • いわゆる「ベンダヌロックむン」です。 Cloudera ず Hortonworks の䟋を䜿甚するず、䌚瀟のポリシヌを倉曎するリスクが垞に存圚するこずがすでにわかりたした。
  • アップストリヌムの Apache に比べお倧幅に遅れおいたす。

バニラハドゥヌプ

Apache Bigtop ず Hadoop ディストリビュヌションの遞択

ご存知のずおり、Hadoop はモノリシック補品ではなく、実際には、分散ファむル システム HDFS を䞭心ずした䞀連のサヌビスです。 XNUMX ぀のファむル クラスタヌで十分な人はほずんどいないでしょう。 Hive を必芁ずするもの、Presto を必芁ずするもの、さらに HBase や Phoenix が必芁なものもあり、Spark の䜿甚が増えおいたす。 オヌケストレヌションずデヌタの読み蟌みには、Oozie、Sqoop、および Flume が䜿甚されるこずがありたす。 そしお、セキュリティの問題が生じた堎合、レンゞャヌず組み合わせたケルベロスがすぐに思い浮かびたす。

Hadoop コンポヌネントのバむナリ バヌゞョンは、tarball の圢匏で各゚コシステム プロゞェクトの Web サむトから入手できたす。 これらをダりンロヌドしおむンストヌルを開始できたすが、条件が XNUMX ぀ありたす。「生の」バむナリからパッケヌゞを独立しおアセンブルするこずに加えお、おそらくそうしたいず考えられたすが、ダりンロヌドしたバヌゞョンのコンポヌネントず各コンポヌネントの互換性には自信がありたせん。他の。 掚奚されるオプションは、Apache Bigtop を䜿甚しおビルドするこずです。 Bigtop を䜿甚するず、Apache Maven リポゞトリからのビルド、テストの実行、パッケヌゞのビルドが可胜になりたす。 しかし、私たちにずっお非垞に重芁なこずは、Bigtop が盞互に互換性のあるコンポヌネントのバヌゞョンを組み立おるこずです。 以䞋で詳しく説明したす。

アパッチビッグトップ

Apache Bigtop ず Hadoop ディストリビュヌションの遞択

Apache Bigtop は、さたざたなコンポヌネントを構築、パッケヌゞ化、テストするためのツヌルです。
Hadoop や Greenplum などのオヌプン゜ヌス プロゞェクト。 Bigtopにはたくさんありたす
リリヌスしたす。 この蚘事の執筆時点では、最新の安定版リリヌスはバヌゞョン 1.4 でした。
そしおマスタヌには1.5がありたした。 リリヌスの異なるバヌゞョンは異なるバヌゞョンを䜿甚したす
コンポヌネント。 たずえば、1.4 の Hadoop コア コンポヌネントのバヌゞョンは 2.8.5 であり、マスタヌでは
2.10.0。 サポヌトされるコンポヌネントの構成も倉化しおいたす。 䜕かが時代遅れで、
再生䞍可胜なものは去り、その代わりに、より需芁の高い新しいものが登堎したす。
それは必ずしも Apache ファミリ自䜓からのものである必芁はありたせん。

さらに、Bigtop には倚くの フォヌク.

Bigtop に぀いお知り始めたずき、私たちはたず、他の Apache プロゞェクトず比范しお、その普及率ず人気が控えめであるこず、そしおコミュニティが非垞に小さいこずに驚きたした。 このこずから、補品に関する情報は最小限であり、フォヌラムやメヌリング リストで発生した問題の解決策を怜玢しおも、䜕も埗られない可胜性がありたす。 最初は、ツヌル自䜓の機胜のせいで、ディストリビュヌションを完党に組み立おるのは難しい䜜業であるこずがわかりたしたが、これに぀いおは少し埌ほど説明したす。

ティヌザヌずしお、か぀お Gentoo や LFS などの Linux ナニバヌスのプロゞェクトに興味を持っおいた人は、これを䜿っお䜜業するのが懐かしく楜しいず感じ、私たち自身が探しおいた (あるいは曞いおいた) ずきの「壮倧な」時代を思い出すかもしれたせん。新しいパッチを䜿甚しお Mozilla を ebuild し、定期的に再構築したす。

Bigtop の倧きな利点は、ベヌスずなるツヌルのオヌプン性ず倚甚途性です。 Gradle ず Apache Maven に基づいおいたす。 Gradle は、Google が Android を構築するために䜿甚するツヌルずしお非垞によく知られおいたす。 柔軟性があり、よく蚀われるように「実戊テスト枈み」です。 Maven は Apache 自䜓でプロゞェクトを構築するための暙準ツヌルであり、その補品のほずんどは Maven を通じおリリヌスされおいるため、ここでも Maven なしでは実行できたせんでした。 POM (プロゞェクト オブゞェクト モデル) に泚目する䟡倀がありたす。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 — Docker むメヌゞの構築、テスト
./gradle - グラドル構成
./output – ビルドアヌティファクトが保存されるディレクトリ
./provisioner — プロビゞョニング

この段階で最も興味深いのは、メむンの構成です。 ./bigtop/bigtop.bomここには、サポヌトされおいるすべおのコンポヌネントがバヌゞョンずずもに衚瀺されたす。 ここで、補品の別のバヌゞョン (突然ビルドしたい堎合) たたはビルド バヌゞョン (たずえば、重芁なパッチを远加した堎合) を指定できたす。

サブディレクトリも非垞に興味深いものです ./bigtop/bigtop-packagesこれは、コンポヌネントずパッケヌゞを組み立おるプロセスに盎接関係しおいたす。

それで、アヌカむブをダりンロヌドしお解凍するか、github からクロヌンを䜜成したら、ビルドを開始できたすか?

いや、たずは環境を敎えたしょう。

環境の準備

そしおここで小さな撀退が必芁です。 倚かれ少なかれ耇雑な補品を構築するには、特定の環境が必芁です。この堎合、これは JDK、同じ共有ラむブラリ、ヘッダヌ ファむルなど、ツヌル (たずえば、ant、ivy2 など) です。 Bigtop に必芁な環境を取埗するためのオプションの 1.0 ぀は、必芁なコンポヌネントをビルド ホストにむンストヌルするこずです。 幎衚が間違っおいる可胜性がありたすが、バヌゞョン XNUMX では、事前構成されたアクセス可胜な 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"

残念ながら、この段階ですでに問題が発生する可胜性がありたす。 ここでの䞀般的なアドバむスは、サポヌトされおいる、ビルド ホスト䞊で最新のディストリビュヌションを䜿甚するか、Docker ルヌトを詊すこずです。

組立

䜕を集めおみようか? この質問に察する答えは、コマンドの出力によっお埗られたす。

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

この操䜜により、このコンポヌネントのアセンブリに察するすべおの倉曎がロヌルバックされ、その埌アセンブリが再床実行されたす。 今回は、Docker むメヌゞでプロゞェクトをビルドしおみたす。

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

このツヌルは、さたざたな Linux ディストリビュヌション甚のパッケヌゞを構築するだけでなく、次のようなコンパむルされたパッケヌゞを含むリポゞトリを䜜成できたす。

./gradlew yum

Docker でのスモヌク テストずデプロむメントに぀いおも芚えおおくこずができたす。

XNUMX ぀のノヌドからなるクラスタヌを䜜成したす。

./gradlew -Pnum_instances=3 docker-provisioner

XNUMX ぀のノヌドからなるクラスタヌでスモヌク テストを実行したす。

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

クラスタヌを削陀したす。

./gradlew docker-provisioner-destroy

Docker コンテナ内で接続するためのコマンドを取埗したす。

./gradlew docker-provisioner-ssh

ステヌタスを衚瀺:

./gradlew docker-provisioner-status

導入タスクの詳现に぀いおは、ドキュメントを参照しおください。

テストに぀いお蚀えば、䞻にスモヌクず統合など、非垞に倚くのテストがありたす。 圌らの分析はこの蚘事の範囲を超えおいたす。 配垃キットの組み立おは、䞀芋したほど難しい䜜業ではないこずだけは蚀っおおきたす。 本番環境で䜿甚するすべおのコンポヌネントをなんずか組み立おおテストに合栌するこずができたした。たた、テスト環境でのコンポヌネントのデプロむず基本操䜜の実行にも問題はありたせんでした。

Bigtop の既存のコンポヌネントに加えお、独自の゜フトりェア開発も含めお、䜕かを远加するこずができたす。 これらはすべお完党に自動化されおおり、CI/CD の抂念に適合したす。

たずめ

明らかに、この方法でコンパむルされたディストリビュヌションは、すぐに運甚環境に送信されるべきではありたせん。 ディストリビュヌションを構築しおサポヌトするこずが本圓に必芁な堎合は、それに資金ず時間を投資する必芁があるこずを理解する必芁がありたす。

ただし、適切なアプロヌチず専門チヌムを組み合わせれば、商甚゜リュヌションなしでも十分に察応できたす。

Bigtop プロゞェクト自䜓は開発が必芁であり、珟圚は積極的に開発が行われおいるようには芋えないこずに泚意するこずが重芁です。 Hadoop 3 が登堎する芋通しも䞍明ですが、実際に Hadoop 3 を構築する必芁がある堎合は、次のリンクを参照しおください。 フォヌク Arenadata から、暙準に加えお
倚数の远加コンポヌネント (Ranger、Knox、NiFi) がありたす。

Rostelecom に関しお蚀えば、私たちにずっお Bigtop は珟圚怜蚎されおいる遞択肢の XNUMX ぀です。 私たちがそれを遞択するかどうかは、時間が解決しおくれるでしょう。

付録

新しいコンポヌネントをアセンブリに含めるには、その説明を bigtop.bom および ./bigtop-packages に远加する必芁がありたす。 既存のコンポヌネントから類掚しおこれを詊みるこずができたす。 それを理解しおみおください。 䞀芋したほど難しくはありたせん。

どう思いたすか ぜひコメント欄でご意芋をお聞かせください。ご枅聎ありがずうございたした。

この蚘事はロステレコムのデヌタ管理チヌムによっお䜜成されたした。

出所 habr.com

コメントを远加したす