ウェブサイト検索

RHEL/CentOS 6/5 での CDH 4.X 用の Apache Oozie ワークフロー スケジューラのインストールと構成


OozieHadoop 用のオープンソース スケジューラで、ワークフローとジョブ間の調整を簡素化します。入力データのジョブ間の依存関係を定義できるため、ooze スケジューラを使用してジョブの依存関係を自動化できます。

このチュートリアルでは、Oozie をマスター ノード (つまり、ホスト名として マスターnamenode/JT がインストールされている場所) にインストールしましたが、実稼働システムにインストールしました。 oozie は別の Hadoop ノードにインストールする必要があります。

インストール手順は 2 つの部分に分かれており、AB と呼ばれます。

  1. A. Oozie のインストール。
  2. B. Oozie 構成。

まず、次の「hostname」コマンドを使用して、システムのホスト名を確認しましょう。

[root@master]# hostname

master

方法 A: RHEL/CentOS 6/5 への Oozie のインストール

CDH4 をインストールするには、cloudeera サイトの公式 CDH リポジトリを使用します。公式 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 をインストールできます。

[root@master ~]# yum install oozie

ここで、oozie クライアントをインストールします (上記のコマンドでクライアントのインストール部分がカバーされるはずですが、そうでない場合は、以下のコマンドを試してください)。

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

: 上記のインストールでは、oozie サービスがシステム起動時に実行されるように構成されます。よくやった!インストールの最初の部分は完了しました。次は 2 番目の部分に進み、oozie を設定しましょう。

方法 B: RHEL/CentOS 6/5 での Oozie 構成

oozie は Hadoop と直接対話しないため、ここではマッピングされた構成は必要ありません。

注意: oozie が実行されていないときにすべての設定を行ってください。つまり、oozie サービスが実行されていないときに以下の手順に従う必要があります。

Oozie にはデフォルトの組み込み DB として「Derby」が含まれていますが、Mysql DB を使用することをお勧めします。そこで、次の記事を参考にMySQLデータベースをインストールしてみましょう。

  1. RHEL/CentOS 6/5 に MySQL データベースをインストールする

インストール部分が完了したら、次に示すように oozie DB を作成し、権限を付与します。

[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

次に、MySQL の Oozie プロパティを構成します。 「oozie-site.xml」 ファイルを開き、次のプロパティを次のように編集します。

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

次のプロパティを入力します (マスター [私のホスト名] を自分のホスト名に置き換えるだけです)。

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

MySQL JDBC 接続ドライバー JAR をダウンロードして、Oozie lib ディレクトリに追加します。これを行うには、ターミナルで次のコマンドを実行します。

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

以下のコマンドを実行して oozie データベース スキーマを作成します。これは oozie ユーザーとして実行する必要があることに注意してください。

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

oozie Web コンソールを有効にするには、インターネットからExtJS ライブラリをダウンロードする必要があります。公式 CDH ExtJS ページに移動し、ExtJS バージョン 2.2 ライブラリをダウンロードするか、次のコマンドを使用してパッケージをダウンロードできます。

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

最後に、次のコマンドを実行して、oozie サーバーを起動します。

[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

お気に入りのブラウザを使用して oozie UI を開き、IP アドレスをポイントします。この場合、私の IP は192.168.1.129です。

http://192.168.1.129:11000

さて、この UI が表示されたら。おめでとう!! oozie の設定が正常に完了しました。

この手順はRHEL/CentOS 6/5 で正常にテストされました。今後の記事では、oozie を介して Hadoop ジョブを構成およびスケジュールする方法を共有する予定です。さらにつながりを保ち、フィードバックにコメントすることを忘れないでください。