5 Oozieワークフローの実行

この章では、Oozieエンジンを設定する方法およびOracle Data Integratorを使用してOozieワークフローを実行する方法について説明します。また、Hadoopログの監査方法についても説明します。

この章の内容は次のとおりです。

Oracle Data IntegratorによるOozieワークフローの実行

Oracle Data Integratorを使用してOozieワークフローを実行するには、Oozieランタイム・エンジンを設定し、Oozieワークフローを実行またはデプロイしてから、Hadoopログを監査します。

Oracle Data IntegratorでOozieワークフローを実行するために必要なステップを次の表にまとめます。

表5-1 Oozieワークフローの実行

ステップ 説明

Oozieランタイム・エンジンの設定

Oozieランタイム・エンジンを設定してOozieエンジンがインストールされているHadoopデータ・サーバーへの接続を構成します。このOozieランタイム・エンジンは、OozieエンジンでODI設計オブジェクトまたはシナリオをOozieワークフローとして実行するのに使用されます。

「Oozieランタイム・エンジンの設定および初期化」を参照してください。

Oozieワークフローの実行またはデプロイ

前のステップで作成されたOozieランタイム・エンジンを使用してODI設計オブジェクトまたはシナリオを実行し、Oozieワークフローを実行またはデプロイします。

「Oozieワークフローの実行またはデプロイ」を参照してください。

Hadoopログの監査

Oracle Data Integrator内でのOozieワークフローの実行をモニターするHadoopログを監査します。

「Hadoopログの監査」を参照してください。

Oozieランタイム・エンジンの設定および初期化

Oozieランタイム・エンジンを設定する前に、OozieエンジンがデプロイされているHadoopデータ・サーバーがトポロジで使用可能になっていることを確認してください。Oozieエンジンは、このHadoopデータ・サーバーに関連付ける必要があります。

Oozieランタイム・エンジンを設定する手順は、次のとおりです。

  1. トポロジ・ナビゲータで、「物理アーキテクチャ」ナビゲーション・ツリー内の「エージェント」ツリー・ノードを右クリックして、「新規Oozieエンジン」をクリックします。
  2. 「定義」タブで、フィールドの値を指定してOozieランタイム・エンジンを定義します。

    フィールドの説明は、「Oozieランタイム・エンジン定義」を参照してください。

  3. 「プロパティ」タブで、Oozieランタイム・エンジンのプロパティを指定します。

    プロパティの説明は、「Oozieランタイム・エンジンのプロパティ」を参照してください。

  4. 「テスト」をクリックして、実際のOozieサーバーと関連Hadoopデータ・サーバーの接続と構成をテストします。
  5. 「初期化」をクリックして、Oozieランタイム・エンジンを初期化します。

    Oozieランタイム・エンジンを初期化するとログ取得ワークフローおよびコーディネータ・ワークフローをHDFSファイル・システムにデプロイし、ログ取得コーディネータおよびワークフローのジョブを実際のOozieサーバー上で開始します。リポジトリおよびoozieエンジンのログ取得フローおよびコーディネータの名前はそれぞれOdiRetrieveLog_<EngineName>_<ReposId>_FおよびOdiLogRetriever_<EngineName>_<ReposId>_Cとなります。

    ODIライブラリおよびクラスもデプロイします。

  6. 「保存」をクリックします。

Oozieランタイム・エンジン定義

次の表は、新しいOozieランタイム・エンジンを定義する場合に「定義」タブで指定する必要があるフィールドについて説明しています。Oozieランタイム・エンジンはHadoop環境で実際のOozieサーバーをモデル化します。

表5-2 Oozieランタイム・エンジン定義

フィールド

名前

Oracle Data Integratorに表示されるOozieランタイム・エンジンの名前。

ホスト

Oozieランタイム・エージェントが起動されたマシンの名前またはIPアドレス。

ポート

Oozieランタイム・エンジンによって使用されるリスニング・ポート。デフォルトのOozieポート値は11000です。

Webアプリケーション・コンテキスト

Webアプリケーション・コンテキストの名前。このフィールドの値としてoozieと入力します。これはHadoop環境で実行するOozieサービス・プロセスに必要な値です。

プロトコル

接続に使用するプロトコル。使用可能な値は、httpまたはhttpsです。デフォルトはhttpです。

Hadoopサーバー

oozieエンジンがインストールされたHadoopサーバーの名前。このHadoopサーバーはoozieランタイム・エンジンに関連付けられています。

ポーリング頻度

Hadoop監査ログが取得され、ODIリポジトリにセッション・ログとして格納される頻度。

ポーリングの頻度は、秒(s)、分(m)、時間(h)、日(d)および年(y)で指定できます。例: 5mまたは4h。

存続期間

Hadoop監査ログの取得コーディネータが監査ログの取得ワークフローをスケジュールできる期間。

存続期間は、分(m)、時間(h)、日(d)および年(y)で指定できます。例: 4hまたは2d。

スケジュール頻度

Hadoop監査ログの取得ワークフローがOozieコーディネータ・ジョブとしてスケジュールされる頻度。

スケジュール・ワークフローは、分(m)、時間(h)、日(d)および年(y)で指定できます。例: 20mまたは5h。

Oozieランタイム・エンジンのプロパティ

次の表は、新しいOozieランタイム・エンジンを定義する場合に「プロパティ」タブで構成可能なプロパティについて説明しています。

表5-3 Oozieランタイム・エンジンのプロパティ

フィールド

OOZIE_WF_GEN_MAX_DETAIL

OozieエンジンのODI Oozieワークフローを生成する際に許可される最大詳細(セッション・レベルまたはきめの細かいタスク・レベル)を制限します。

このプロパティの値をTASKに設定するとすべてのODIタスクに対してOozieアクションが生成され、SESSIONに設定するとセッション全体に対してOozieアクションが生成されます。

論理Oozieエンジンの作成

論理oozieエージェントを作成する手順は、次のとおりです。

  1. トポロジ・ナビゲータで、「論理アーキテクチャ」ナビゲーション・ツリー内の「エージェント」ノードを右クリックします。
  2. 「新規論理Oozieエンジン」を選択します。
  3. 「名前」を入力します。
  4. 左側の列の各コンテキストについて、右側の列で既存の物理エージェントを選択します。この物理エージェントは、このコンテキストの論理Oozieエンジンに自動的に関連付けられます。
  5. 「ファイル」メニューから「保存」をクリックします。

Oozieワークフローの実行またはデプロイ

ODIの設計時オブジェクト(マッピングなど)や実行時オブジェクト(シナリオなど)は、Oozieワークフローを使用して実行できます。ODIデザイン・オブジェクトまたはシナリオを実行する際、Oozieワークフローを実行せず、デプロイだけにとどめておくこともできます。

注意:

Oozieワークフローの実行時にSQOOPロギングを有効にするには、次のプロパティをデータ・サーバーに追加します。

HADOOP_CLIENT_OPTS="-Dlog4j.debug -Dhadoop.root.logger=INFO,console -Dlog4j.configuration=file:/etc/hadoop/conf.cloudera.yarn/log4j.properties"

ODI Oozieワークフローを実行するには:

  1. デザイナ・ナビゲータの「プロジェクト」メニューで、Oozieワークフローとして実行するマッピングを右クリックし、「実行」をクリックします。

  2. 「論理エージェント」ドロップダウン・リストから、Oozieランタイム・エンジンを選択します。

  3. 「OK」をクリックします。

    「情報」ダイアログが表示されます。

  4. セッションが開始しているかどうか確認し、「情報」ダイアログの「OK」をクリックします。

ODI Oozieワークフローをデプロイするには:

  1. デザイナ・ナビゲータの「ロード計画とシナリオ」メニューで、Oozieワークフローとしてデプロイするシナリオを右クリックして、「実行」をクリックします。

  2. 「論理エージェント」ドロップダウン・リストから、Oozieランタイム・エンジンを選択します。

  3. 「デプロイのみ」を選択して、シナリオを処理し、Oozieワークフローを生成してHDFSにデプロイします。

  4. 「OK」をクリックします。

    「情報」ダイアログが表示されます。

  5. セッションが開始しているかどうか確認し、「情報」ダイアログの「OK」をクリックします。

Hadoopログの監査

ODI Oozieワークフローの実行時には、Oozieランタイム・エンジンの頻度プロパティに基づいてログ情報が取得されます。この情報はOozieジョブの状態、進行状況およびパフォーマンスを示します。

アクティブなOozieセッションのログ・データは、「オペレータ」メニューの「ログ・データの取得」をクリックして取得できます。また、oozie WebコンソールまたはMapReduce Webコンソールのoozieセッションに関する情報を、セッション・エディタの「定義」タブに表示されるURLをクリックすることで表示できます。

セッション・エディタ、セッション・ステップ・エディタおよびセッション・タスク・エディタの「詳細」タブには、oozieおよびMapReduceジョブの要約が表示されます。

Oracle Data IntegratorによるOozieワークフローの実行

ODI Oozieワークフロー実行におけるUserlib jarのサポート

ODI Oozieワークフローでのuserlib jarのサポートにより、ユーザーはjarファイルをuserlib HDFSディレクトリにコピーできます。このjarファイルはoozie.libpathプロパティにより生成および発行されるODI Oozieワークフローによって参照されます。

これにより、各ワークフロー・アプリケーションのlib HDFSディレクトリにlibs/jarsがレプリケートされるのを防ぐことができます。userlibディレクトリはHDFSの次の場所にあります。

<ODI HDFS Root>/odi_<version>/userlib

Oracle Data IntegratorによるOozieワークフローの実行