Apache Bigtop et le choix d'une distribution Hadoop aujourd'hui

Apache Bigtop et le choix d'une distribution Hadoop aujourd'hui

Il n'est probablement pas surprenant que l'annĂ©e derniĂšre ait Ă©tĂ© marquĂ©e par de grands changements pour Apache Hadoop. L'annĂ©e derniĂšre, il y a eu la fusion de Cloudera et Hortonworks (qui a essentiellement absorbĂ© le second), et MapR, en raison de graves problĂšmes financiers, a Ă©tĂ© vendu Ă  Hewlett Packard. Quelques annĂ©es auparavant, lorsque des installations sur site Ă©taient en jeu, le choix se portait souvent entre Cloudera et Hortonworks, mais aujourd'hui, il n'y a malheureusement plus ce choix. Une autre surprise a Ă©tĂ© le fait que Cloudera a annoncĂ© en fĂ©vrier de cette annĂ©e l'arrĂȘt de la publication des versions binaires de sa distribution dans le dĂ©pĂŽt public, et celles-ci ne sont dĂ©sormais disponibles que par abonnement payant. Bien sĂ»r, il est encore possible de tĂ©lĂ©charger les derniĂšres versions de CDH et HDP, publiĂ©es jusqu'Ă  la fin de l'annĂ©e 2019, et la prise en charge de celles-ci est prĂ©vue pour un ou deux ans. Mais que faire ensuite ? Pour ceux qui ont dĂ©jĂ  payĂ© un abonnement, rien n'a changĂ©. Et pour ceux qui ne souhaitent pas passer Ă  la version payante de la distribution, mais qui veulent avoir la possibilitĂ© d'obtenir les nouvelles versions des composants du cluster, ainsi que des correctifs et d'autres mises Ă  jour, nous avons prĂ©parĂ© cet article. Nous examinerons les options possibles pour sortir de cette situation difficile.

L'article est principalement une vue d'ensemble. Il n'y aura pas de comparaison des distributions ni d'analyse dĂ©taillĂ©e, et il n'y aura pas de recettes pour leur installation et configuration. Alors, que verra-t-on ? Nous allons briĂšvement parler de la distribution appelĂ©e Arenadata Hadoop, qui mĂ©rite notre attention en raison de sa disponibilitĂ©, ce qui est rare aujourd'hui. Ensuite, nous discuterons de Vanilla Hadoop, principalement de la façon dont il peut ĂȘtre 'prĂ©parĂ©' Ă  l'aide d'Apache Bigtop. PrĂȘts ? Alors, bienvenue en dessous.

Arenadata Hadoop

Apache Bigtop et le choix d'une distribution Hadoop aujourd'hui

C'est une distribution toute nouvelle et, pour l'instant, peu connue, développée localement. Malheureusement, à l'heure actuelle, il n'y a que cet article.

Plus d'informations peuvent ĂȘtre trouvĂ©es sur le site officiel site du projet. Les derniĂšres versions de la distribution sont basĂ©es sur Hadoop 3.1.2 pour la version 3 et 2.8.5 pour la version 2.

Les informations sur le roadmap peuvent ĂȘtre trouvĂ©es ici.

Apache Bigtop et le choix d'une distribution Hadoop aujourd'hui
L'interface Arenadata Cluster Manager

Le produit clé d'Arenadata est Arenadata Cluster Manager (ADCM), qui est utilisé pour l'installation, la configuration et le monitoring de diverses solutions logicielles de l'entreprise. ADCM est distribué gratuitement, et ses fonctionnalités sont étendues par l'ajout de bundles, qui représentent un ensemble d'ansible-playbooks. Les bundles se divisent en deux types : entreprise et communauté. Ces derniers sont disponibles pour un téléchargement gratuit sur le site d'Arenadata. Il est également possible de développer son propre bundle et de l'intégrer à ADCM.

Pour le dĂ©ploiement et la gestion de Hadoop 3, une version community du bundle est proposĂ©e en association avec ADCM, tandis que pour Hadoop 2, il n'y a que Apache Ambari comme alternative. En ce qui concerne les dĂ©pĂŽts de paquets, ils sont ouverts Ă  l'accĂšs public, et ils peuvent ĂȘtre tĂ©lĂ©chargĂ©s et installĂ©s de maniĂšre habituelle pour tous les composants du cluster. Dans l'ensemble, la distribution semble trĂšs intĂ©ressante. Je suis sĂ»r qu'il y a des personnes qui sont habituĂ©es Ă  des solutions comme Cloudera Manager et Ambari, et qui apprĂ©cieront ADCM lui-mĂȘme. Pour certains, il sera Ă©galement un grand avantage que la distribution figure dans le registre des logiciels pour le remplacement des importations.

En ce qui concerne les inconvĂ©nients, ils seront les mĂȘmes que pour toutes les autres distributions Hadoop. En gros :

  • Le soi-disant « verrouillage par le fournisseur ». Au travers des exemples de Cloudera et Hortonworks, nous avons dĂ©jĂ  compris qu'il existe toujours un risque de changement de la politique de l'entreprise.
  • Un retard considĂ©rable par rapport Ă  l'upstream Apache.

Vanilla Hadoop

Apache Bigtop et le choix d'une distribution Hadoop aujourd'hui

Comme vous le savez, Hadoop n'est pas un produit monolithique, mais essentiellement une multitude de services autour de son systÚme de fichiers distribué HDFS. Peu de gens se contenteront d'un seul cluster de fichiers. Certains ont besoin de Hive, d'autres de Presto, et il y a aussi HBase et Phoenix, tandis que Spark est de plus en plus utilisé. Pour l'orchestration et le chargement des données, Oozie, Sqoop et Flume sont parfois rencontrés. Et si la question de la sécurité se pose, on pense immédiatement à Kerberos en association avec Ranger.

Les versions binaires des composants Hadoop sont disponibles sur le site de chaque projet de l'Ă©cosystĂšme sous forme d'archives tarball. Vous pouvez les tĂ©lĂ©charger et commencer l'installation, mais avec une condition : en plus de compiler vous-mĂȘme les paquets Ă  partir des binaires « bruts », ce que vous voudrez probablement faire, vous n'aurez aucune certitude quant Ă  la compatibilitĂ© des versions tĂ©lĂ©chargĂ©es entre elles. Une option prĂ©fĂ©rĂ©e est la compilation via Apache Bigtop. Bigtop vous permettra de compiler Ă  partir des dĂ©pĂŽts Maven d'Apache, d'exĂ©cuter des tests et de crĂ©er des paquets. Mais, ce qui est trĂšs important pour nous, Bigtop compilera des versions de composants qui seront compatibles entre elles. Nous en parlerons plus en dĂ©tail par la suite.

Apache Bigtop

Apache Bigtop et le choix d'une distribution Hadoop aujourd'hui

Apache Bigtop est un outil pour la compilation, l'emballage et le test d'un certain nombre
de projets open source, tels que Hadoop et Greenplum. Bigtop a de nombreuses
versions. Au moment de la rédaction de cet article, la derniÚre version stable était la 1.4,
et la version master contenait 1.5. Différentes versions de versions utilisent différentes versions
des composants. Par exemple, pour la 1.4, les composants principaux de Hadoop ont la version 2.8.5, tandis qu’en master
elle est à 2.10.0. La composition des composants supportés change également. Les éléments obsolÚtes et
non mis à jour disparaissent, tandis que de nouveaux et plus demandés apparaissent, et
il ne s'agit pas nĂ©cessairement de quelque chose issu de la famille Apache elle-mĂȘme.

De plus, Bigtop a de nombreux forks..

Lorsque nous avons commencĂ© Ă  nous familiariser avec Bigtop, nous avons d'abord Ă©tĂ© surpris par sa modestie, comparĂ©e Ă  d'autres projets Apache, en termes de diffusion et de notoriĂ©tĂ©, ainsi que par sa communautĂ© assez petite. Cela signifie que les informations sur le produit sont minimales, et la recherche de solutions aux problĂšmes rencontrĂ©s sur les forums et les listes de diffusion peut s'avĂ©rer infructueuse. Au dĂ©part, il nous a semblĂ© difficile de rĂ©aliser une compilation complĂšte du distributeur en raison des particularitĂ©s de l'outil lui-mĂȘme, mais nous en parlerons un peu plus tard.

En guise de teaser – pour ceux qui, Ă  l'Ă©poque, apprĂ©ciaient des projets du monde Linux, comme Gentoo et LFS, il pourrait ĂȘtre agrĂ©ablement nostalgique de travailler avec cette chose et de se souvenir des « Ă©poques glorieuses » oĂč nous cherchions (et parfois Ă©crivions) des ebuilds et recompilions rĂ©guliĂšrement avec de nouveaux patchs Mozilla.

Un des grands avantages de Bigtop est l'ouverture et la polyvalence des outils sur lesquels il est basĂ©. À sa base se trouvent Gradle et Apache Maven. Gradle est bien connu comme l'outil utilisĂ© par Google pour compiler Android. Il est flexible et, comme on dit, "testĂ© au combat". Maven est l'outil de construction standard dans Apache, et Ă©tant donnĂ© que la plupart de ses produits sont publiĂ©s via Maven, il est Ă©galement indispensable ici. Il convient de prĂȘter attention au POM (model d'objet de projet) – le fichier XML "fondamental" dĂ©crivant tout ce qui est nĂ©cessaire pour que Maven fonctionne avec votre projet, autour duquel s'articule tout le travail. C'est dans
la partie Maven que se posent certains obstacles auxquels ceux qui se lancent dans Bigtop se heurtent généralement pour la premiÚre fois.

Pratique

Alors, par quoi devrions-nous commencer ? Allons sur la page de téléchargement et téléchargeons la derniÚre version stable sous forme d'archive. On peut également y trouver les artefacts binaires construits par Bigtop. D'ailleurs, les gestionnaires de paquets les plus courants supportés sont YUM et APT.

Une autre façon consiste à télécharger la derniÚre version stable directement depuis
github :

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

Clonage dans « bigtop »...

remote: ÉnumĂ©ration des objets : 46, done.
remote: Comptage des objets : 100% (46/46), done.
remote: Compression des objets : 100% (41/41), done.
remote: Total 40217 (delta 14), réutilisé 10 (delta 1), pack-réutilisé 40171
RĂ©cupĂ©ration des objets : 100% (40217/40217), 43.54 MiB | 1.05 MiB/s, prĂȘt.
DĂ©termination des changements : 100% (20503/20503), prĂȘt.
Mise Ă  jour des fichiers : 100% (1998/1998), prĂȘt.

Le répertoire résultant ./$bigtop ressemble à ceci :

./bigtop-bigpetstore — applications de dĂ©monstration, exemples synthĂ©tiques
./bigtop-ci — outils CI, jenkins
./bigtop-data-generators — gĂ©nĂ©ration de donnĂ©es, synthĂ©tique, pour des tests de validation, etc.
./bigtop-deploy — outils de dĂ©ploiement
./bigtop-packages — configs, scripts, patchs pour la construction, partie principale de l'outil
./bigtop-test-framework — framework de test
./bigtop-tests — les tests eux-mĂȘmes, tests de charge et smoke
./bigtop_toolchain — environnement de construction, prĂ©paration de l'environnement pour le fonctionnement de l'outil
./build — rĂ©pertoire de travail pour la construction
./dl — rĂ©pertoire pour le code source tĂ©lĂ©chargĂ©
./docker — construction dans des images docker, tests
./gradle — config gradle
./output – rĂ©pertoire dans lequel se trouvent les artefacts de construction
./provisioner — provisionnement

Ce qui est le plus intéressant à ce stade est la configuration principale ./bigtop/bigtop.bom, dans lequel nous voyons tous les composants pris en charge avec leurs versions. C'est ici que nous pouvons indiquer une autre version du produit (si jamais nous souhaitons essayer de la construire) ou la version du build (si, par exemple, nous avons ajouté un patch significatif).

Un grand intĂ©rĂȘt est Ă©galement suscitĂ© par le sous-rĂ©pertoire .\/bigtop\/bigtop-packages, qui a un lien direct avec le processus de construction des composants et des packages associĂ©s.

Donc, nous avons téléchargé l'archive, l'avons décompressée ou avons fait un clone depuis github, pouvons-nous commencer la construction ?

Non, nous devons d'abord préparer l'environnement.

Préparation de l'environnement

Et ici, il faudra faire un petit dĂ©tour. Pour construire pratiquement n'importe quel produit plus ou moins complexe, un certain environnement est nĂ©cessaire — dans notre cas, cela inclut le JDK, les bibliothĂšques partagĂ©es, les fichiers d'en-tĂȘte, etc., des outils comme ant, ivy2 et bien d'autres. Une des maniĂšres d'obtenir l'environnement nĂ©cessaire pour Bigtop est d'installer les composants requis sur l'hĂŽte de construction. Je peux me tromper sur la chronologie, mais il semble qu'avec la version 1.0, une option de construction dans des images docker prĂ©-configurĂ©es et disponibles ait Ă©galement Ă©tĂ© introduite, que l'on peut consulter ici.

En ce qui concerne la prĂ©paration de l'environnement, il y a un assistant — Puppet.

Vous pouvez utiliser les commandes suivantes, en exécutant à partir du répertoire racine
de l'outil, .\/bigtop:

.\/gradlew toolchain\n.\/gradlew toolchain-devtools\n.\/gradlew toolchain-puppetmodules

Ou directement via puppet :

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"

Malheureusement, à ce stade, des difficultés peuvent déjà survenir. Le conseil général ici est d'utiliser une distribution prise en charge et à jour sur l'hÎte de construction ou d'essayer le chemin avec docker.

Assemblage

Que pouvons-nous essayer de construire ? La réponse à cette question sera fournie par la sortie de la commande

.\/gradlew tasks

Dans la section Package tasks, il y a plusieurs produits qui sont des artefacts finaux de Bigtop.
Ils peuvent ĂȘtre identifiĂ©s par le suffixe -rpm ou -pkg-ind (dans le cas d'une construction
dans docker). Dans notre cas, le plus intéressant est Hadoop.

Essayons d'effectuer la construction dans l'environnement de notre serveur de build :

.\/gradlew hadoop-rpm

Bigtop téléchargera automatiquement les sources nécessaires pour un composant spécifique et commencera la construction. Ainsi, l'outil dépend des dépÎts Maven et d'autres sources, ce qui signifie qu'il a besoin d'un accÚs à Internet.

Au cours du processus, une sortie standard est gĂ©nĂ©rĂ©e. Parfois, on peut comprendre ce qui ne va pas Ă  partir de cette sortie et des messages d'erreur. Dans d'autres cas, des informations supplĂ©mentaires sont nĂ©cessaires. Dans ce cas, il vaut mieux ajouter les arguments --info ou --debug, et il peut Ă©galement ĂȘtre utile de consulter –stacktrace. Il existe un moyen pratique de former un ensemble de donnĂ©es pour un contact ultĂ©rieur dans les listes de distribution, la clĂ© --scan.

Avec cela, bigtop collectera toutes les informations et les déposera dans gradle, aprÚs quoi il fournira un lien,
en suivant lequel, une personne compétente pourra comprendre pourquoi la construction a échoué.
Il faut garder à l'esprit que cette option peut rendre publique des informations que vous ne souhaitez pas partager, comme les noms d'utilisateur, les nƓuds, les variables d'environnement, etc., alors soyez prudent.

Souvent, les erreurs rĂ©sultent de l'impossibilitĂ© d'obtenir certains composants nĂ©cessaires Ă  la construction. En gĂ©nĂ©ral, le problĂšme peut ĂȘtre corrigĂ© en crĂ©ant un patch pour corriger quelque chose dans les sources, par exemple, l'adresse dans pom.xml Ă  la racine des sources. Cela se fait en crĂ©ant et en plaçant le patch dans le rĂ©pertoire correspondant .\/bigtop\/bigtop-packages\/src\/common\/oozie\/ patch, par exemple, sous la forme de 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

Il est probable qu'au moment de lire cet article, vous n'aurez pas Ă  rĂ©aliser vous-mĂȘme la correction mentionnĂ©e ci-dessus.

Lors de l'application de patchs et de corrections dans le mĂ©canisme de construction, il peut ĂȘtre nĂ©cessaire de 'rĂ©initialiser' la construction via une commande de nettoyage :

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

Cette opération annulera toutes les modifications apportées à la construction de ce composant, aprÚs quoi la construction sera relancée. Cette fois, essayons de construire le projet dans une image 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
....
much output
....
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

La construction a Ă©tĂ© rĂ©alisĂ©e sous CentOS, mais peut Ă©galement ĂȘtre effectuĂ©e sous Ubuntu :

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

En plus de la construction de paquets pour diverses distributions Linux, l'outil peut également générer un dépÎt avec des paquets construits, par exemple :

./gradlew yum

On peut également se rappeler des tests de validation et du déploiement dans Docker.

CrĂ©er un cluster de trois nƓuds :

./gradlew -Pnum_instances=3 docker-provisioner

Lancer des tests de validation dans un cluster de trois nƓuds :

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

Supprimer le cluster :

./gradlew docker-provisioner-destroy

Obtenir les commandes pour se connecter aux conteneurs Docker :

./gradlew docker-provisioner-ssh

Montrer l'état :

./gradlew docker-provisioner-status

Pour plus de détails sur les tùches de déploiement, vous pouvez lire la documentation.

En ce qui concerne les tests, leur nombre est relativement important, principalement des tests de validation et des tests d'intégration. Leur analyse dépasse le cadre de cet article. Je dirai simplement que construire une distribution n'est pas une tùche aussi complexe qu'elle peut le sembler au premier abord. Tous les composants que nous utilisons en production ont été assemblés et ont passé les tests, et nous n'avons pas eu de problÚmes avec leur déploiement et l'exécution des opérations de base dans l'environnement de test.

En plus des composants existants dans Bigtop, il est possible d'ajouter d'autres Ă©lĂ©ments, y compris un dĂ©veloppement logiciel propre. Tout cela peut ĂȘtre parfaitement automatisĂ© et s'intĂšgre dans le concept de CI/CD.

Conclusion

Il est Ă©vident qu'une distribution construite de cette maniĂšre ne doit pas ĂȘtre envoyĂ©e en production immĂ©diatement. Il faut comprendre que s'il y a un besoin rĂ©el de construire et de maintenir sa propre distribution, cela nĂ©cessite un investissement financier et temporel.

Néanmoins, avec une approche correcte et une équipe professionnelle, il est tout à fait possible de se passer de solutions commerciales.

Il est important de noter que le projet Bigtop a besoin de dĂ©veloppement et qu'il semble qu'il n'y ait pas d'activitĂ©s de dĂ©veloppement actif en cours aujourd'hui. L'avenir de l'intĂ©gration de Hadoop 3 y est Ă©galement incertain. À propos, si vous avez un besoin rĂ©el de construire Hadoop 3, vous pouvez jeter un Ɠil Ă  fork Arenadata, qui, en plus des composants standards,
inclut également un ensemble d'autres (Ranger, Knox, NiFi).

En ce qui concerne Rostelecom, pour nous Bigtop est une des options considérées à ce jour. Si nous choisirons ou non cette option, le temps nous le dira.

Annexe

Pour inclure un nouveau composant dans l'assemblage, il faut ajouter sa description dans bigtop.bom et ./bigtop-packages. Vous pouvez essayer de le faire par analogie avec les composants existants. Essayez de comprendre, ce n'est pas aussi compliqué qu'il y paraßt.

Et que pensez-vous ? Nous serions ravis de voir votre avis dans les commentaires et merci de votre attention !

Cet article a été préparé par l'équipe de gestion des données de Rostelecom

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster