Installer og konfigurer Apache Oozie Workflow Scheduler til CDH 4.X på RHEL/CentOS 6/5


Oozie er en open source-planlægger for Hadoop, det forenkler workflow og koordinering mellem job. Vi kan definere afhængighed mellem job for inputdata og dermed automatisere jobafhængighed ved hjælp af ooze scheduler.

I denne vejledning har jeg installeret Oozie på min masternode (dvs. master som værtsnavn, og hvor namenode/JT er installeret), men oozie i produktionssystemet skal installeres på separat Hadoop knude.

Installationsvejledningen er opdelt i to dele, vi kalder det A og B.

  1. A. Oozie Installation.
  2. B. Oozie-konfiguration.

Lad os først kontrollere systemværtsnavnet ved hjælp af følgende 'værtsnavn' kommando.

 hostname

master

Metode A: Oozie-installation på RHEL/CentOS 6/5

Vi bruger det officielle CDH-arkiv fra clouderas websted til at installere CDH4. Gå til den officielle CDH download sektion og download CDH4 (dvs. 4.6) version, eller du kan også bruge følgende wget kommando til at downloade lageret og installere det.

# 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
# 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

Når du først har tilføjet CDH-lager under dit system, kan du bruge følgende kommando til at installere Oozie på systemet.

 yum install oozie

Installer nu oozie-klienten (ovenstående kommando skal dække klientinstallationsdel, men hvis ikke så prøv under kommandoen).

 yum install oozie-client

Bemærk: Ovenstående installation konfigurerer også oozie-tjenesten til at køre ved systemstart. Godt arbejde! Vi er færdige med den første del af installationen, lad os nu gå til den anden del for at konfigurere oozie.

Metode B: Oozie-konfiguration på RHEL/CentOS 6/5

Da oozie ikke interagerer direkte med Hadoop, har vi ikke brug for nogen kortlagt konfiguration her.

Forsigtig: Konfigurer venligst alle indstillinger, mens oozie ikke kører, det betyder, at du skal følge nedenstående trin, mens oozie-tjenesten ikke kører.

Oozie har 'Derby' som standard indbygget i DB, men jeg vil anbefale, at du bruger Mysql DB. Så lad os installere MySQL-databasen ved hjælp af følgende artikel.

  1. Installer MySQL-database i RHEL/CentOS 6/5

Når du er færdig med installationsdelen, skal du gå videre for at oprette oozie DB og give privilegier som vist nedenfor.

 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

Konfigurer derefter Oozie-egenskaber til MySQL. Åbn filen 'oozie-site.xml' og rediger følgende egenskaber som vist.

 cd /etc/oozie/conf
 vi oozie-site.xml

Indtast følgende egenskaber (udskift bare master [mit værtsnavn] med dit værtsnavn).

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

Download og tilføj MySQL JDBC-tilslutningsdriver JAR til Oozie lib-biblioteket. For at gøre det skal du køre følgende seriøs kommando på terminalen.

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

Opret oozie-databaseskema ved at udføre nedenstående kommandoer og bemærk, at dette skal køres som oozie-bruger.

 sudo -u oozie /usr/lib/oozie/bin/ooziedb.sh create -run
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

Du skal downloade ExtJS lib fra internettet for at aktivere oozie webkonsol. Gå til den officielle CDH ExtJS-side, og download ExtJS version 2.2-biblioteker, eller du kan downloade pakken ved hjælp af følgende kommando.

 cd /tmp/
 wget http://archive.cloudera.com/gplextras/misc/ext-2.2.zip
 unzip ext-2.2.zip
 mv ext-2.2 /var/lib/oozie/

Endelig skal du starte oozie-serveren ved at køre følgende kommandoer.

 service oozie status
not running.

 service oozie start

 service oozie status
running

 oozie admin -oozie http://localhost:11000/oozie -status
System mode: NORMAL

Åbn oozie UI ved hjælp af din yndlingsbrowser, og peg på din IP-adresse. I dette tilfælde er min IP 192.168.1.129.

http://192.168.1.129:11000

Nu hvis du ser dette brugergrænseflade. Tillykke!! Du har konfigureret oozie.

Denne procedure er blevet testet med succes på RHEL/CentOS 6/5. I mine kommende artikler vil jeg dele, hvordan jeg konfigurerer og planlægger hadoop-job via oozie. Hold kontakten for mere, og glem ikke at kommentere din feedback.