Εγκαταστήστε και ρυθμίστε το Apache Oozie Workflow Scheduler για CDH 4.X σε RHEL/CentOS 6/5


Το Oozie είναι ένας προγραμματιστής ανοιχτού κώδικα για το Hadoop, απλοποιεί τη ροή εργασίας και τον συντονισμό μεταξύ των εργασιών. Μπορούμε να ορίσουμε την εξάρτηση μεταξύ εργασιών για δεδομένα εισόδου και ως εκ τούτου μπορούμε να αυτοματοποιήσουμε την εξάρτηση εργασιών χρησιμοποιώντας τον προγραμματιστή ooze.

Σε αυτό το σεμινάριο, έχω εγκαταστήσει το Oozie στον κύριο κόμβο μου (δηλαδή το master ως όνομα κεντρικού υπολογιστή και όπου είναι εγκατεστημένο το namenode/JT), ωστόσο στο σύστημα παραγωγής Το oozie θα πρέπει να εγκατασταθεί σε ξεχωριστό κόμβο Hadoop.

Οι οδηγίες εγκατάστασης χωρίζονται σε δύο μέρη, τα ονομάζουμε A και B.

  1. A. Εγκατάσταση Oozie.
  2. B. Διαμόρφωση Oozie.

Ας επαληθεύσουμε πρώτα το όνομα κεντρικού υπολογιστή συστήματος, χρησιμοποιώντας την παρακάτω εντολή όνομα κεντρικού υπολογιστή.

[]# hostname

master

Μέθοδος Α: Εγκατάσταση Oozie σε RHEL/CentOS 6/5

Χρησιμοποιούμε επίσημο αποθετήριο CDH από τον ιστότοπο της cloudera για να εγκαταστήσουμε το CDH4. Μεταβείτε στην επίσημη ενότητα λήψης CDH και κατεβάστε την έκδοση CDH4 (δηλαδή 4.6) ή μπορείτε επίσης να χρησιμοποιήσετε την ακόλουθη εντολή wget για να κάνετε λήψη του αποθετηρίου και να το εγκαταστήσετε.

Στο 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
Στο 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

Μόλις προσθέσετε το αποθετήριο CDH στο σύστημά σας, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να εγκαταστήσετε το Oozie στο σύστημα.

[ ~]# yum install oozie

Τώρα, εγκαταστήστε το πρόγραμμα-πελάτη oozie (η παραπάνω εντολή πρέπει να καλύπτει το τμήμα εγκατάστασης του προγράμματος-πελάτη, ωστόσο, αν όχι, δοκιμάστε την παρακάτω εντολή).

[ ~]# yum install oozie-client

Σημείωση: Η παραπάνω εγκατάσταση διαμορφώνει επίσης την υπηρεσία oozie ώστε να εκτελείται κατά την εκκίνηση του συστήματος. Καλή δουλειά! Τελειώσαμε με το πρώτο μέρος της εγκατάστασης τώρα ας περάσουμε στο δεύτερο μέρος για να διαμορφώσουμε το oozie.

Μέθοδος Β: Διαμόρφωση Oozie σε RHEL/CentOS 6/5

Καθώς το oozie δεν αλληλεπιδρά άμεσα με το Hadoop, δεν χρειαζόμαστε καμία αντιστοιχισμένη διαμόρφωση εδώ.

Προσοχή: Διαμορφώστε όλες τις ρυθμίσεις ενώ το oozie δεν εκτελείται, αυτό σημαίνει ότι πρέπει να ακολουθήσετε τα παρακάτω βήματα ενώ η υπηρεσία oozie δεν εκτελείται.

Το Oozie έχει το Derby ως προεπιλεγμένο ενσωματωμένο στο DB, ωστόσο, θα συνιστούσα να χρησιμοποιήσετε το Mysql DB. Λοιπόν, ας εγκαταστήσουμε τη βάση δεδομένων MySQL χρησιμοποιώντας το ακόλουθο άρθρο.

  1. Εγκαταστήστε τη βάση δεδομένων MySQL στο RHEL/CentOS 6/5

Μόλις τελειώσετε με το τμήμα εγκατάστασης, προχωρήστε στη συνέχεια για να δημιουργήσετε το oozie DB και να εκχωρήσετε δικαιώματα όπως φαίνεται παρακάτω.

[ ~]# 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

Στη συνέχεια, διαμορφώστε τις ιδιότητες Oozie για MySQL. Ανοίξτε το αρχείο «oozie-site.xml» και επεξεργαστείτε τις ακόλουθες ιδιότητες όπως φαίνεται.

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

Εισαγάγετε τις ακόλουθες ιδιότητες (απλώς αντικαταστήστε το κύριο [my hostname] με το hostname σας).

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

Κατεβάστε και προσθέστε το πρόγραμμα οδήγησης συνδεσιμότητας JAR MySQL JDBC στον κατάλογο Oozie lib. Για να το κάνετε αυτό, εκτελέστε την ακόλουθη σειρά εντολών στο τερματικό.

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

Δημιουργήστε ένα σχήμα βάσης δεδομένων oozie εκτελώντας τις παρακάτω εντολές και σημειώστε ότι αυτό πρέπει να εκτελείται ως χρήστης oozie.

[ ~]# 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

Πρέπει να κάνετε λήψη του ExtJS lib από το διαδίκτυο για να ενεργοποιήσετε την κονσόλα ιστού oozie. Μεταβείτε στην επίσημη σελίδα CDH ExtJS και κατεβάστε τις βιβλιοθήκες ExtJS έκδοσης 2.2 ή μπορείτε να κάνετε λήψη του πακέτου χρησιμοποιώντας την ακόλουθη εντολή.

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

Τέλος, ξεκινήστε τον διακομιστή oozie, εκτελώντας τις ακόλουθες εντολές.

[ tmp]# service oozie status
not running.

[ tmp]# service oozie start

[ tmp]# service oozie status
running

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

Ανοίξτε το oozie UI χρησιμοποιώντας το αγαπημένο σας πρόγραμμα περιήγησης και τοποθετήστε το δείκτη στη διεύθυνση IP σας. Σε αυτήν την περίπτωση, η IP μου είναι 192.168.1.129.

http://192.168.1.129:11000

Τώρα αν δείτε αυτό το UI. Συγχαρητήρια!! Έχετε διαμορφώσει με επιτυχία το oozie.

Αυτή η διαδικασία δοκιμάστηκε με επιτυχία στο RHEL/CentOS 6/5. Στα επόμενα άρθρα μου, θα μοιραστώ τον τρόπο διαμόρφωσης και προγραμματισμού εργασιών hadoop μέσω του oozie. Μείνετε συνδεδεμένοι για περισσότερα και μην ξεχάσετε να σχολιάσετε τα σχόλιά σας.