5 Oozieワークフローの実行
この章の内容は次のとおりです。
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ランタイム・エンジンを設定する手順は、次のとおりです。
Oozieランタイム・エンジン定義
次の表は、新しいOozieランタイム・エンジンを定義する場合に「定義」タブで指定する必要があるフィールドについて説明しています。Oozieランタイム・エンジンはHadoop環境で実際のOozieサーバーをモデル化します。
表5-2 Oozieランタイム・エンジン定義
フィールド | 値 |
---|---|
名前 |
Oracle Data Integratorに表示されるOozieランタイム・エンジンの名前。 |
ホスト |
Oozieランタイム・エージェントが起動されたマシンの名前またはIPアドレス。 |
ポート |
Oozieランタイム・エンジンによって使用されるリスニング・ポート。デフォルトのOozieポート値は11000です。 |
Webアプリケーション・コンテキスト |
Webアプリケーション・コンテキストの名前。このフィールドの値として |
プロトコル |
接続に使用するプロトコル。使用可能な値は、 |
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エージェントを作成する手順は、次のとおりです。
- トポロジ・ナビゲータで、「論理アーキテクチャ」ナビゲーション・ツリー内の「エージェント」ノードを右クリックします。
- 「新規論理Oozieエンジン」を選択します。
- 「名前」を入力します。
- 左側の列の各コンテキストについて、右側の列で既存の物理エージェントを選択します。この物理エージェントは、このコンテキストの論理Oozieエンジンに自動的に関連付けられます。
- 「ファイル」メニューから「保存」をクリックします。
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ワークフローを実行するには:
-
デザイナ・ナビゲータの「プロジェクト」メニューで、Oozieワークフローとして実行するマッピングを右クリックし、「実行」をクリックします。
-
「論理エージェント」ドロップダウン・リストから、Oozieランタイム・エンジンを選択します。
-
「OK」をクリックします。
「情報」ダイアログが表示されます。
-
セッションが開始しているかどうか確認し、「情報」ダイアログの「OK」をクリックします。
ODI Oozieワークフローをデプロイするには:
-
デザイナ・ナビゲータの「ロード計画とシナリオ」メニューで、Oozieワークフローとしてデプロイするシナリオを右クリックして、「実行」をクリックします。
-
「論理エージェント」ドロップダウン・リストから、Oozieランタイム・エンジンを選択します。
-
「デプロイのみ」を選択して、シナリオを処理し、Oozieワークフローを生成してHDFSにデプロイします。
-
「OK」をクリックします。
「情報」ダイアログが表示されます。
-
セッションが開始しているかどうか確認し、「情報」ダイアログの「OK」をクリックします。
Hadoopログの監査
ODI Oozieワークフローの実行時には、Oozieランタイム・エンジンの頻度プロパティに基づいてログ情報が取得されます。この情報はOozieジョブの状態、進行状況およびパフォーマンスを示します。
アクティブなOozieセッションのログ・データは、「オペレータ」メニューの「ログ・データの取得」をクリックして取得できます。また、oozie WebコンソールまたはMapReduce Webコンソールのoozieセッションに関する情報を、セッション・エディタの「定義」タブに表示されるURLをクリックすることで表示できます。
セッション・エディタ、セッション・ステップ・エディタおよびセッション・タスク・エディタの「詳細」タブには、oozieおよびMapReduceジョブの要約が表示されます。
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