Recherche de site Web

Installer et configurer Apache Oozie Workflow Scheduler pour CDH 4.X sur RHEL/CentOS 6/5


Oozie est un planificateur open source pour Hadoop, il simplifie le flux de travail et la coordination entre les tâches. Nous pouvons définir la dépendance entre les tâches pour une donnée d'entrée et pouvons donc automatiser la dépendance des tâches à l'aide du planificateur ooze.

Dans ce tutoriel, j'ai installé Oozie sur mon nœud maître (c'est-à-dire maître comme nom d'hôte et où namenode/JT sont installés) mais dans le système de production oozie doit être installé sur un nœud Hadoop distinct.

Les instructions d'installation sont divisées en deux parties, nous les appelons A et B.

  1. A. Installation d'Oozie.
  2. B. Configuration Oozie.

Vérifions d’abord le nom d’hôte du système à l’aide de la commande suivante « hostname ».

[root@master]# hostname

master

Méthode A : installation d'Oozie sur RHEL/CentOS 6/5

Nous utilisons le référentiel CDH officiel du site cloudera pour installer CDH4. Accédez à la section de téléchargement officielle de CDH et téléchargez la version CDH4 (c'est-à-dire 4.6) ou vous pouvez également utiliser la commande wget suivante pour télécharger le référentiel et l'installer.

Sur RHEL/CentOS 6
wget http://archive.cloudera.com/cdh4/one-click-install/redhat/6/i386/cloudera-cdh-4-0.i386.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.i386.rpm

wget http://archive.cloudera.com/cdh4/one-click-install/redhat/6/x86_64/cloudera-cdh-4-0.x86_64.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.x86_64.rpm
Sur RHEL/CentOS 5
wget http://archive.cloudera.com/cdh4/one-click-install/redhat/5/i386/cloudera-cdh-4-0.i386.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.i386.rpm

wget http://archive.cloudera.com/cdh4/one-click-install/redhat/5/x86_64/cloudera-cdh-4-0.x86_64.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.x86_64.rpm

Une fois que vous avez ajouté le référentiel CDH sous votre système, vous pouvez utiliser la commande suivante pour installer Oozie sur le système.

[root@master ~]# yum install oozie

Maintenant, installez le client oozie (la commande ci-dessus devrait couvrir la partie d'installation du client, sinon essayez la commande ci-dessous).

[root@master ~]# yum install oozie-client

Remarque : L'installation ci-dessus configure également le service oozie pour qu'il s'exécute au démarrage du système. Bon travail! Nous avons terminé la première partie de l'installation, passons maintenant à la deuxième partie pour configurer oozie.

Méthode B : configuration d’Oozie sur RHEL/CentOS 6/5

Comme oozie n'interagit pas directement avec Hadoop, nous n'avons besoin d'aucune configuration mappée ici.

Attention : Veuillez configurer tous les paramètres lorsque oozie n'est pas en cours d'exécution, cela signifie que vous devez suivre les étapes ci-dessous lorsque le service oozie n'est pas en cours d'exécution.

Oozie a « Derby » par défaut dans la base de données. Cependant, je vous recommande d'utiliser la base de données Mysql. Alors, installons la base de données MySQL à l'aide de l'article suivant.

  1. Installer la base de données MySQL dans RHEL/CentOS 6/5

Une fois que vous avez terminé la partie installation, allez plus loin pour créer oozie DB et accorder les privilèges comme indiqué ci-dessous.

[root@master ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.38 MySQL Community Server (GPL) by Remi

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database oozie;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on oozie.* to 'oozie'@'localhost' identified by 'oozie';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on oozie.* to 'oozie'@'%' identified by 'oozie';
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

Ensuite, configurez les propriétés Oozie pour MySQL. Ouvrez le fichier « oozie-site.xml » et modifiez les propriétés suivantes comme indiqué.

[root@master ~]# cd /etc/oozie/conf
[root@master conf]# vi oozie-site.xml

Entrez les propriétés suivantes (remplacez simplement master [mon nom d'hôte] par votre nom d'hôte).

<property>
        <name>oozie.service.JPAService.jdbc.driver</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.url</name>
        <value>jdbc:mysql://master:3306/oozie</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.username</name>
        <value>oozie</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.password</name>
        <value>oozie</value>
    </property>

Téléchargez et ajoutez le JAR du pilote de connectivité MySQL JDBC au répertoire Oozie lib. Pour ce faire, exécutez la commande sérieuse suivante sur le terminal.

[root@master oozie]# cd /tmp/
[root@master tmp]# wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.31.tar.gz
[root@master tmp]# tar -zxf mysql-connector-java-5.1.31.tar.gz	
[root@master tmp]# cd mysql-connector-java-5.1.31
[root@master mysql-connector-java-5.1.31]# cp mysql-connector-java-5.1.31-bin.jar /var/lib/oozie/

Créez un schéma de base de données oozie en exécutant les commandes ci-dessous et veuillez noter que celui-ci doit être exécuté en tant qu'utilisateur oozie.

[root@master ~]# sudo -u oozie /usr/lib/oozie/bin/ooziedb.sh create -run
Exemple de sortie
setting OOZIE_CONFIG=/etc/oozie/conf
setting OOZIE_DATA=/var/lib/oozie
setting OOZIE_LOG=/var/log/oozie
setting OOZIE_CATALINA_HOME=/usr/lib/bigtop-tomcat
setting CATALINA_TMPDIR=/var/lib/oozie
setting CATALINA_PID=/var/run/oozie/oozie.pid
setting CATALINA_BASE=/usr/lib/oozie/oozie-server-0.20
setting CATALINA_OPTS=-Xmx1024m
setting OOZIE_HTTPS_PORT=11443
...
DONE
Oozie DB has been created for Oozie version '3.3.2-cdh4.7.0'
The SQL commands have been written to: /tmp/ooziedb-8250405588513665350.sql

Vous devez télécharger la librairie ExtJS depuis Internet pour activer la console Web oozie. Accédez à la page officielle CDH ExtJS et téléchargez les bibliothèques ExtJS version 2.2 ou vous pouvez télécharger le package à l'aide de la commande suivante.

[root@master ~]# cd /tmp/
[root@master tmp]# wget http://archive.cloudera.com/gplextras/misc/ext-2.2.zip
[root@master tmp]# unzip ext-2.2.zip
[root@master tmp]# mv ext-2.2 /var/lib/oozie/

Enfin, démarrez le serveur oozie en exécutant les commandes suivantes.

[root@master tmp]# service oozie status
not running.

[root@master tmp]# service oozie start

[root@master tmp]# service oozie status
running

[root@master tmp]# oozie admin -oozie http://localhost:11000/oozie -status
System mode: NORMAL

Ouvrez oozie UI à l'aide de votre navigateur préféré et pointez sur votre adresse IP. Dans ce cas, mon IP est 192.168.1.129.

http://192.168.1.129:11000

Maintenant, si vous voyez cette interface utilisateur. Toutes nos félicitations!! Vous avez configuré avec succès oozie.

Cette procédure a été testée avec succès sur RHEL/CentOS 6/5. Dans mes prochains articles, je vais expliquer comment configurer et planifier des tâches Hadoop via oozie. Restez connecté pour en savoir plus et n'oubliez pas de commenter vos commentaires.