[Big Data] Hortonworks : installation et configuration de HDP 2.x avec Ambari

Ce billet présente comment installer et configurer un cluster HDP 2.x avec Ambari.

Linux sera utilisé comme système d’exploitation, et la distribution choisie sera CentOS, qu’on supposera déjà installée.

Pour en savoir plus sur HDP et Ambari, vous pouvez aller ici.

Avant de commencer…

Recommandations générales

Comme tout système qui se respecte, HDP possède un certain nombre de prérequis.

  • Au niveau OS.
    • Red Hat Enterprise Linux (RHEL) : 6.x minimum.
    • CentOS : 6.x minimum.
    • Ubuntu : 11.x minimum.
    • Oracle Linux : 6.x minimum.
    • SUSE Linux Enterprise Server (SLES) : 11.x SP1 minimum
  • Au niveau volumétrie.
Nombre d’hôtes Mémoire minimale Espace disque minimal
1 à 10 1 Go 10 à 20 Go
50 2 Go 50 Go
100 à 300 4 Go 100 Go
500 à 1000 8 à 12 Go 200 Go
2000 16 Go 500 Go
  • Au niveau des bases de données.

La plupart des composants HDP nécessitent l’utilisation d’une base de données pour le stockage de leurs informations. Ainsi :

  • Ambari : PostgreSQL 8 minimum, Oracle 11gR2 minimum, MySQL 5.6 minimum.
  • Hive : idem qu’Ambari.
  • Oozie : idem qu’Ambari et Hive.
  • Ranger : PostgreSQL 9 minimum, Oracle 11gR2 minimum, MySQL 5.6 minimum.

Par défaut, Ambari utilise PostgreSQL, Hive utilise MySQL et Oozie une base native appelée Derby (non-recommandé en environnement de production).

  • Au niveau logiciel.
    • Python 2.6+.
    • OpenSSL 1.01 minimum.
    • Utilitaires curl, scp, tar, unzip et wget, ainsi que :
      • Pour RHEL, CentOS et Oracle Linux : yum et rpm.
      • Pour SLES : zypper et php_curl.
      • Pour Ubuntu : apt.
    • JDK :
      • Oracle JDK 64 bits 1.7.67 minimum.
      • OpenJDK 64 bits 7 minimum (sauf pour SLES).
    • Navigateur Web :
      • Mozilla Firefox 18 minimum.
      • Google Chrome 26 minimum.

Préparation de l’environnement

Les 2 nœuds à préparer dans le cadre de l’installation du cluster HDP sont til-srv-hdp01 et til-srv-hdp02.

Chacune des actions préliminaires suivantes sont à réaliser sur chaque nœud :

  • Vérification de la version…

… du kernel:

uname -r

… du release de CentOS:

cat /etc/redhat-release

  • Désactivation des iptables.

Cette phase permettra à Ambari de mieux communiquer avec les différents hôtes au cours de l’installation.

service iptables stop
service ip6tables stop
chkconfig iptables off
chkconfig ip6tables off
  • Désactivation de SELinux et de PackageKit.

Cette phase permettra à Ambari de mieux communiquer avec les différents hôtes au cours de l’installation.

setenforce 0

SELinux – qui est un mécanisme d’accès obligatoire et restrictif à des éléments du système Linux – peut être désactivé de façon permanente en modifiant le fichier /etc/selinux/config et en affectant la valeur disabled à SELinux (qui est, par défaut, à enforcing) :

vi /etc/selinux/config

Pour PackageKit – qui est un système facilitant les installations et mises-à-jour sur Linux -, il suffit d’ouvrir le fichier /etc/ yum/pluginconf.d/refresh-packagekit.conf et de mettre enabled à 0.

vi /etc/ yum/pluginconf.d/refresh-packagekit.conf
  • Configuration d’une connexion SSH pour Ambari.

La création d’une connexion SSH sans mot-de-passe est une étape nécessaire afin de permettre au futur serveur Ambari d’installer automatiquement ses agents sur chaque hôte du cluster HDP.

  • Génération de clés publiques et privées sur le serveur hôte Ambari (til-srv-hdp01).
ssh-keygen

Voici un aperçu :


  • Copie de la clé publique SSH précédemment générée (id_rsa.pub)
    vers le root de chaque hôte du futur cluster HDP.
ssh-copy-id -i ~/.ssh/id_rsa.pub root@til-srv-hdp0x.timeislife.io

til-srv-hdp0x.timeislife.io est le FQDN de chaque hôte.


Vous pouvez également ajouter la clé publique dans la liste des clés autorisées comme suit :

cat ~/.ssh/id_rsa.pub | ssh root@til-srv-hdp0x.timeislife.io 'cat >> .ssh/authorized_keys'

til-srv-hdp0x.timeislife.io est le FQDN de chaque hôte.

  • Affectation des permissions idoines sur le dossier .ssh et le fichier authorized_keys sur chaque hôte.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

A titre informatif:

  • 700: lecture/écriture/execution du programme par l’owner, seulement.
  • 600 : lecture/écriture du fichier par l’owner, seulement.
  • Test de la connexion SSH sans mot-de-passe.
ssh root@til-srv-hdp0x.timeislife.io

x égal 1 si le test est effectué sur le serveur til-srv-hdp02, et égal à 2 si sur til-srv-hdp01.

  • Installation d’un serveur HTTP, pour l’accès Web à Ambari.

Sur chaque hôte :

yum install httpd

Voici un extrait du déroulement de l’installation :


Sitôt l’installation terminée, on enchaîne en l’activant, suivi d’un lancement du service…

chkconfig httpd on
service httpd start

L’utilisation de status à la place de start permet de vérifier l’état de fonctionnement du serveur HTTP, et valider qu’il est bien démarré:


On termine en créant un répertoire d’uploads Web:

mkdir -p /var/www/html/
  • Activation du service NTP sur le cluster.

Afin de permettre à chaque nœud du cluster d’avoir leur système horaire synchronisé, il faut procéder à l’activation du service NTP (Network Time Protocol) sur chaque hôte.

  • Installation du package NTP.
yum install ntp

Petit extrait :

  • Lancement du service NTP.
service ntpd start

L’utilisation de status à la place de start permet de valider le bon démarrage du service NTP :


Il est possible d’activer l’auto-lancement du service NTP en tapant la commande suivante :

chkconfig ntpd on
  • Modification du hosts file (si ce n’est déjà fait).

Pour ce faire, on ouvre le fichier network de chaque hôte :

vi /etc/hosts

Puis, on applique les modifications suivantes :

<IP> <FQDN>


FQDN est le nom de domaine pleinement qualifié de l’hôte (til-srv-hdp0x.timeislife.io) et IP, son adresse IP.

  • Modification du fichier de configuration réseau (si ce n’est déjà fait).

Pour ce faire, on ouvre le fichier network de chaque hôte:

vi /etc/sysconfig/network

Puis, on applique les modifications suivantes :

NETWORKING=yes
HOSTNAME=<FQDN>

Téléchargement d’Ambari et de HDP

Il existe diverses façons de télécharger Ambari et HDP, suivant la nature des accès aux sources de téléchargement : accès Internet permanent (opter pour l’URL de base), accès Internet temporaire (opter pour un repository), pas d’accès Internet (opter pour un tarball).

  • Obtention des repositories.
    • Pour Ambari.

<web_server> est le FQDN du serveur Web Hortonworks où se trouve les repositories (usuellement public-repo-1.hortonworks.com), et <OS> est la distribution Linux concernée (exemple : centos7)

Dans notre contexte, supposons que l’accès à Internet soit limité (généralement le cas dans le monde de l’entreprise), dans ce cas, il suffit de procéder à la création d’un repository local :

wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.1.1/ambari.repo -O /etc/yum.repos.d/ambari.repo
  • Pour HDP.

Même contexte qu’avec Ambari où on suppose que l’accès à Internet est limité :

wget -nv http://public-repo-1E.hortonworks.com/HDP/centos7/2.x/updates/2.3.0.0/hdp.repo -O /etc/yum.repos.d/HDP.repo 

La commande suivante permet de vérifier la bonne installation des repositories :

yum repolist 

Voici un extrait du contenu :

Entrée dans le vif du sujet

Installation et configuration d’Ambari

  • Lancement de l’installation d’Ambari.
yum install ambari-server 

  • Lancement de la configuration d’Ambari.
ambari-server setup

Une série de choix seront à effectuer à ce moment-là :

  • La version du JDK.


Opter, de préférence, pour la dernière version.

  • La base de données.


Par défaut, PostgreSQL est installé avec ambari comme nom de base de données et d’username et bigdata comme mot-de-passe).

Si tout va bien, la suite devrait ressembler à cela :

  • Lancement de l’installation d’Ambari.
yum install ambari-server

  • Lancement de la configuration d’Ambari.
ambari-server setup

Une série de choix seront à effectuer à ce moment-là :

  • La version du JDK.


Opter, de préférence, pour la dernière version.

  • La base de données.


Par défaut, PostgreSQL est installé avec ambari comme nom de base de données et d’username et bigdata comme mot-de-passe).

Si tout va bien, la suite devrait ressembler à cela :


  • Lancement d’Ambari.
 

 ambari-server start 

Le lancement du serveur Ambari devrait donner à cette suite de messages, si tout va bien :


La ligne de commande suivante permet de connaître le statut du serveur Ambari :

ambari-server status


Il suffit de remplacer « status » par « stop » pour l’arrêter.

Installation et configuration d’un cluster HDP

  • Authentification au serveur Ambari.

Pour ce faire, il suffit de taper http://til-srv-hdp01.timeislife.io:8080 sur un navigateur Web (le FQDN peut être remplacé par localhost, si le fichier des hosts est correctement configuré).


Les informations d’accès sont, par défaut admin, à la fois pour le login et le mot-de-passe. Ils peuvent bien sûr être changés au sein de l’interface Ambari.


  • Lancement de l’installation de HDP.

A partir de l’interface de bienvenue d’Ambari, un clic sur le bouton Launch install Wizard, de la section Create a cluster va permettre de lancer l’installation de HDP.

  • Nommage du cluster HDP.


  • Sélection de la version du cluster HDP.


La section Advanced Repository Options permet de spécifier – si besoin – l’URL du repository où ont été téléchargées les sources HDP.


  • Sélection du FQDN des hôtes et de la clé privée générée au cours des étapes préliminaires.


  • Confirmation des hôtes.


C’est au cours de cette étape que l’assistant d’installation d’Ambari va tester les accès SSH avec la clé privée fournie.

  • Choix des services (ou composants) à déployer au sein du cluster HDP.


Il peut s’agir de HBase, Kafka, Storm, Spark, Mahout,…

  • Affectation des maîtres des services aux bons hôtes.


A cette étape de l’installation, Ambari va répartir (suivant les choix effectués) les services à travers les hôtes du cluster. Par défaut, Hive, son métastore et WebHCat sont déployés sur le même hôte.

  • Affectation des esclaves et des clients des services aux bons hôtes.

Il s’agit principalement des DataNodes, NodeManagers, RegionServers,…


C’est également à cette étape que les clients des services sont installés.

  • Paramétrage des services.


Il s’agit principalement de renseigner, au minimum, les usernames et mots-de-passe de services comme :

  • Hive.


  • Oozie.


Rappelons que l’utilisation d’une base de données Derby n’est pas recommandée sur un serveur de production. A l’étape suivante, en cas de sélection de Derby comme base Oozie, une boîte d’avertissement s’affichera :


  • Accumulo.


  • Knox.


  • Résumé des paramètres renseignés avant validation.


  • Déploiement du cluster HDP configuré.


Si tout va bien :


Le dashboard d’Ambari aura normalement cet aperçu :


Pour aller plus loin…

Jetez un coup d’œil ici pour plus de références sur Hortonworks. Pour plus d’articles autour des Big Data et de HDP, vous pouvez aller .

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s