EMR Workflow を使用すると、タスクノードを有向非循環グラフ (DAG) に接続することで、データ処理パイプラインを構築できます。各パイプラインはワークフローとして実行され、各実行により、個別にモニターおよび再実行できるワークフローインスタンスが生成されます。
前提条件
開始する前に、以下を準備してください。
EMR Studio でプロジェクトが作成されていること。詳細については、「プロジェクトの作成」をご参照ください。
ワークフローの作成
E-MapReduce (EMR) コンソールにログインしてください。E-MapReduce (EMR) コンソール。
左側のナビゲーションウィンドウで、[EMR Studio] > [ワークフロー] を選択します。
[プロジェクト] タブをクリックし、プロジェクト名をクリックします。
プロジェクトの詳細ページの左側ナビゲーションウィンドウで、ワークフロー > ワークフロー定義 を選択します。
「ワークフロー定義」ページで、「ワークフローの作成」をクリックします。
「ワークフローの作成」ページで、ノードタイプをキャンバスにドラッグします。この例では、HIVECLI をキャンバスにドラッグします。
[現在のノード設定] ダイアログボックスで、パラメーターを設定し、[確認] をクリックします。 HIVECLI の詳細については、「HIVECLI」をご参照ください。 その他のノードタイプについては、「ノードタイプ」をご参照ください。
(オプション) ノード間の依存関係を設定します。
EMR Workflow を使用すると、ワークフロー間でカスタムノードの依存関係を設定できます。
2 つのノードを接続するには、ノードの右側にある
アイコンにカーソルを合わせ、接続線を別のノードにドラッグします。依存関係またはノードを削除するには、接続線またはノードをクリックし、キャンバスの右上隅にある
アイコンをクリックします。
ワークフローを保存します。
キャンバスの右上隅にある[保存]をクリックします。
「[基本情報]」ダイアログボックスで、以下のパラメーターを設定し、「[確認]」をクリックします。
パラメーター 説明 ワークフロー名
ワークフローの名前。
説明
ワークフローの説明。
タイムアウトアラート
デフォルトでは無効になっています。有効にすると、タイムアウト期間を指定できます。ノードの実行時間がタイムアウト期間を超えると、アラートがトリガーされます。
プロセス実行タイプ
同一ワークフローの複数インスタンスを同時に実行する方法。並列: インスタンスが同時に実行されます。直列待機: インスタンスが 1 つずつ順番に実行されます。
グローバル変数
ワークフロー内のすべてのノードに適用される変数。
ワークフローステータスと利用可能な操作
ワークフローは、[オンライン] または [オフライン] の状態のいずれかです。この状態によって、使用可能な操作が決まります。次の表では、各操作を実行可能な状態にマッピングしています。
| 操作 | オンライン | オフライン | 説明 |
|---|---|---|---|
| 編集 | はい | ワークフロー定義を編集します。 | |
| 開始 | はい | ワークフローを手動で実行します。「ワークフローの実行」をご参照ください。 | |
| タイミング | はい | Cron ベースのスケジュールを設定します。保存後、スケジュールされたワークフローはオフライン状態に戻り、[Cron 管理] ページでオンラインにする必要があります。詳細については、「ワークフローのスケジュール設定」をご参照ください。 | |
| オンライン | はい | ワークフローの状態をオフラインからオンラインに変更します。 | |
| オフライン | はい | ワークフローの状態をオンラインからオフラインに変更します。 | |
| ワークフローのコピー | はい | はい | このワークフローをコピーして新しいワークフローを生成します。 |
| Cron管理 | はい | はい | スケジュールされたワークフローエントリを表示、編集、または状態を変更します。 |
| 削除 | はい | ワークフローを削除します。作成者のみがワークフローを削除できます。 | |
| ツリービュー | はい | はい | ノードタイプとステータスをツリー構造で表示します。 |
| エクスポート | はい | はい | ワークフローを JSON ファイルとしてエクスポートします。 |
| バージョン情報 | はい | はい | ワークフローのバージョン情報を表示します。 |
ワークフローの実行
各実行ではワークフロー インスタンスが生成され、[ワークフロー インスタンス] ページに表示されます。
[ワークフロー定義] ページで、ワークフローを探し、[操作] 列の
([オンライン]) アイコンをクリックしてワークフローをオンラインにします。[操作] 列の
([開始]) アイコンをクリックします。表示されるダイアログボックスで、以下のパラメーターを設定し、[確認] をクリックします。
パラメーター 説明 失敗した場合の戦略 いずれかのノードが失敗した場合に、同時実行ノードをどのように処理するかを指定します。[続行]:他のノードは実行を継続します。[終了]:失敗したノードのダウンストリームノードは終了されます。 通知戦略 ワークフロー終了後に通知を送信するタイミングを指定します。有効な値:[なし]、[成功]、[失敗]、[すべて]。 ワークフローの優先度 ワークフロー実行の優先度です。デフォルト:MEDIUM。有効な値:HIGHEST、HIGH、MEDIUM、LOW、LOWEST。 実行クラスター ワークフローを実行するクラスターです。[セキュリティ] タブの [クラスター管理] ページで関連付けられたクラスターを選択します。 アラームグループ 通知用のアラームグループです。[セキュリティ] タブの [アラームグループ管理] ページで設定されたグループを選択します。 補完データ 過去の時間範囲のバックフィルデータを生成するかどうかを指定します。詳細については、後述の「補完データパラメーター」をご参照ください。 起動パラメーター 起動パラメーターとその値です。このワークフローインスタンスの開始時に、グローバル変数を定義または上書きします。 ドライランの実行有無 有効化されている場合、ワークフローは実際のタスクを実行せずにドライランを実行し、成功ログを記録します。 プロジェクトの詳細ページの左側のナビゲーションウィンドウで、[ワークフロー] > [ワークフローインスタンス] を選択して、ワークフローインスタンスのステータスを表示します。
補完データパラメーター
補完データは、指定された過去の期間におけるワークフロー実行のバックフィルデータを生成します。有効にするには、[補完プロセスかどうか?]を選択し、次に以下のパラメーターを設定します。
| パラメーター | 説明 |
|---|---|
| 依存ワークフローのバックフィル設定 | 現在のワークフローに依存するワークフローに対して、バックフィルデータを生成するかどうかを指定します。無効(デフォルト):依存ワークフローにはバックフィルデータを生成しません。有効:現在のワークフローがオンライン状態であり、スケジューリングが設定されている場合、依存ワークフローにもバックフィルデータを生成します。 |
| バックフィル実行モード | 指定した日付範囲内でバックフィルデータを生成する方法を指定します。逐次実行:ワークフローインスタンスを日付順に1日分ずつ生成します。並列実行:すべての日付分のワークフローインスタンスを同時に生成します。並列モードでは、カスタム並列数 を設定して、同時実行可能な最大インスタンス数を制限してください。 |
| スケジューリング日付範囲 | バックフィルデータを生成する過去の期間を指定します。 |
「[実行モード]」をワークフローの「プロセス実行タイプ」に合わせます。「[並列実行]」を使用する場合は、ワークフローが「[並列]」に設定されている場合で、「[直列実行]」を使用する場合は、「[直列待機]」に設定されている場合です。
ワークフローのインポート
EMR Workflow から以前にエクスポートした JSON ファイルからワークフローをインポートします。
[ワークフロー定義] ページで、[ワークフローのインポート] をクリックします。
「アップロード」ダイアログボックスで、「アップロード」をクリックし、エクスポート済みの JSON ファイルを選択します。
[確認] をクリックします。
ワークフローのスケジュール設定
Cronベースのスケジュールを設定して、ワークフローを一定の間隔で自動的に実行します。
[ワークフロー定義] ページで、ワークフローを見つけ、[操作] 列の
([タイミング]) アイコンをクリックします。[タイミング] 操作は Online ワークフローでのみ利用可能です。
以下のパラメーターを設定し、[確認] をクリックします。
パラメーター 説明 開始時刻と停止時刻 ワークフローがスケジュールされて実行される期間。この範囲外では、スケジュールされたインスタンスは生成されません。 タイミング ワークフローが実行されるスケジューリング間隔 (Cron 式)。 実行クラスター スケジュールされた実行に使用するクラスター。 スケジュールされたワークフローをアクティブ化します。
スケジューリング設定を保存すると、スケジュールされたワークフローエントリは [オフライン] 状態になります。有効にするには:
[ワークフロー定義]ページで、[操作]列の
([Cron 管理])アイコンをクリックします。[Cron 管理] ページで、スケジュールされたワークフロー項目を見つけ、[操作] 列の
([オンライン]) アイコンをクリックします。
スケジュールされたワークフローがアクティブになり、設定された間隔で実行されます。