E-MapReduce(EMR)のデータ開発プロジェクトでは、一連の依存ジョブを定義し、依存関係に基づいてジョブを順番に実行できるようにワークフローを作成できます。EMR ワークフローは、ビッグデータ ジョブを並列実行できる有向非巡回グラフ(DAG)として表現できます。EMR コンソールでワークフローをスケジュールしたり、ワークフローのステータスを表示したりできます。
背景情報
前提条件
ワークフローの作成
ワークフローを作成するには、次の手順を実行します。
- [データプラットフォーム]タブに移動します。
- Alibaba Cloud アカウントを使用して Alibaba Cloud EMR コンソール にログオンします。
- 上部のナビゲーションバーで、クラスターが存在するリージョンを選択し、ビジネス要件に基づいてリソースグループを選択します。
- [データプラットフォーム] タブをクリックします。
- 表示されるページの [プロジェクト] セクションで、プロジェクトを見つけ、[アクション]列の [ワークフロー] をクリックします。
- ワークフローを作成します。
- 表示されるページの左側にある [ワークフロー] ペインで、操作を実行するフォルダーを右クリックし、[ワークフローの作成] を選択します。
- [ワークフローの作成] ダイアログボックスで、[ワークフロー名]、[説明]、[リソースグループの選択]、[ターゲットクラスター]を指定します。[ターゲットクラスター]パラメーターの有効な値:
- [既存のクラスターを選択]:ワークフローが実行されると、選択したクラスターでジョブが実行されます。
- [テンプレートからクラスターを作成]:ワークフローが実行されると、選択したクラスターテンプレートを使用して作成された一時クラスターでジョブが実行されます。ワークフローが終了すると、クラスターは自動的に解放されます。詳細については、「クラスターテンプレートの作成」をご参照ください。説明 [既存のクラスターを選択] ドロップダウンリストには、プロジェクトに関連付けられているクラスターのみが表示されます。別のクラスターを選択するには、まず既存のクラスターをプロジェクトから関連付け解除する必要があります。詳細については、「プロジェクトの管理」をご参照ください。
- [OK] をクリックします。ワークフローが作成された後、ワークフローを編集および設定できます。
ワークフローの編集
- さまざまなタイプのジョブノードをキャンバスにドラッグして、ワークフローを編集します。特定のタイプのノードをキャンバスにドラッグすると、[ノードの編集] パネルで、次の表に示すパラメーターを設定できます。
パラメーター 説明 関連ジョブ [関連ジョブ]ドロップダウンリストから、ジョブノードと同じタイプのジョブを選択します。 ジョブ設定のカスタマイズ ビジネス要件に基づいて ジョブ設定をカスタマイズ できます。 - このスイッチをオンにすると、[ターゲットクラスター] パラメーターの値を変更できます。
- このスイッチをオフにすると、ジョブノードに関連付けられているジョブは、ワークフローの作成時に選択したクラスターで実行されます。デフォルトでは、[ジョブ設定のカスタマイズ]スイッチはオフになっています。
- ジョブノードを関連付けます。キャンバス上で、ジョブ間の依存関係に基づいて、ジョブノードから他のジョブノードに線をドラッグします。矢印はワークフローの方向を示します。
- コントローラーノードを設定して、ワークフローの設計を完了します。終了[コントローラーノード] セクションから 開始終了自動調整
ワークフローを編集するときに、右上隅にある [ロック] をクリックしてワークフローをロックできます。この方法では、ワークフローを編集または実行できるのは自分だけです。プロジェクトの他のメンバーは、ワークフローのロックが解除された後にのみワークフローを編集できます。ノードをキャンバスにドラッグします。次に、 ノード、ジョブノード、 ノードを関連付けて、ワークフローの設計を完了します。右上隅にある をクリックして、ワークフロー内のジョブノードのレイアウトを調整できます。説明 ワークフローをロックした RAM ユーザーと Alibaba Cloud アカウントだけがワークフローのロックを解除できます。
ワークフロースケジューリングの設定
ワークフロースケジューリング機能を有効にして、スケジューリング関連のパラメーターを設定できます。その後、関連するワークフローはパラメーター設定に基づいて定期的に実行され、ジョブは指定されたクラスターに配信されて実行されます。[ワークフロースケジューリング]パネルの[基本属性]、[スケジューリング設定]、[アラート設定]タブで、次の手順を実行してパラメーターを設定します。
- [データプラットフォーム]タブに移動します。
- Alibaba Cloud アカウントを使用して Alibaba Cloud EMR コンソール にログオンします。
- 上部のナビゲーションバーで、クラスターが存在するリージョンを選択し、ビジネス要件に基づいてリソースグループを選択します。
- [データプラットフォーム] タブをクリックします。
- 表示されるページの [プロジェクト] セクションで、プロジェクトを見つけ、[アクション]列の [ワークフロー] をクリックします。
- ワークフロー設計ページで、[設定] をクリックします。
- 基本属性[ワークフロースケジューリング] パネルの タブで、ワークフローの説明、リソースグループ、ワークフロー内のジョブを実行するために使用されるクラスターをビジネス要件に基づいて変更します。
- 基本属性を変更した後、[スケジューリング設定] タブをクリックし、ワークフロースケジューリングに関連するパラメーターを設定します。
パラメーター 説明 スケジューリングステータス 有効な値: - [開始]:ワークフロースケジューリングを開始します。[スケジューリングステータス]で[開始]を選択すると、ワークフロー編集キャンバスの右上隅に [スケジューリング] と表示され、ワークフローがスケジュールされていることを示します。
- [停止]:ワークフロースケジューリングを停止します。
時間ベースのスケジューリング 開始時刻 ワークフロースケジューリングの開始時刻。 終了時刻 ワークフロースケジューリングの終了時刻。このパラメーターはオプションです。 繰り返し ワークフロースケジューリングのサイクル。 CRON 式 ワークフロースケジューリングのサイクルを指定するために使用される CRON 式。 依存関係ベースのスケジューリング プロジェクト 現在のワークフローの依存ワークフローが属するプロジェクト。このパラメーターはオプションです。 依存ワークフロー 現在のワークフローの依存ワークフロー。現在のワークフローは、依存ワークフローが終了した後にのみ実行されます。このパラメーターはオプションです。 - [アラート設定] タブをクリックし、アラートパラメーターを設定します。
パラメーター 説明 実行失敗 ワークフローが失敗した場合に、アラート連絡先グループまたは DingTalk アラートグループに通知を送信するかどうかを指定します。 失敗時のアクション ワークフロー内のジョブノードの実行に失敗した場合に、アラート連絡先グループまたは DingTalk アラートグループに通知を送信するかどうかを指定します。 実行済み ワークフローが成功した場合に、アラート連絡先グループまたは DingTalk アラートグループに通知を送信するかどうかを指定します。 起動タイムアウト時のアクション ワークフロー内のジョブノードがクラスターに配信されてから 30 分以内に開始されない場合に、アラート連絡先グループまたは DingTalk アラートグループに通知を送信するかどうかを指定します。 ノードの実行がタイムアウトしました ジョブノードの実行時間がジョブ設定の予想最大実行時間を超えた場合に、アラート連絡先グループまたは DingTalk アラートグループに通知を送信するかどうかを指定します。
ワークフローの実行
ワークフローの業務時間を指定できます。ワークフローのジョブの時間変数は、指定された業務時間を使用して計算されます。業務時間は、特定の期間にワークフローインスタンスを再実行するために使用されます。一度に 1 つのワークフローインスタンスまたは複数のワークフローインスタンスを再実行できます。ジョブに時間変数が設定されていない場合は、[実行]を選択できます。
- [データプラットフォーム]タブに移動します。
- Alibaba Cloud アカウントを使用して Alibaba Cloud EMR コンソール にログオンします。
- 上部のナビゲーションバーで、クラスターが存在するリージョンを選択し、ビジネス要件に基づいてリソースグループを選択します。
- [データプラットフォーム] タブをクリックします。
- 表示されるページの [プロジェクト] セクションで、プロジェクトを見つけ、[アクション]列の [ワークフロー] をクリックします。
- ワークフローを実行します。
- 表示されるページで、ワークフローを選択し、右上隅にある [実行] をクリックします。
- [ワークフローの実行] ダイアログボックスで、ランタイムパラメーターを設定します。ビジネス要件に基づいて 実行モード を選択できます。次の表では、サポートされている実行モード([実行] と [定期的に実行])について説明します。
モード 説明 [実行] ワークフローをすぐに実行します。[指定時刻] をワークフローの業務時間として使用できます。時間関連の変数は、業務時間に基づいて計算されます。 [定期的に実行] 一度に複数のワークフローを実行します。特定のスケジューリングルールのトリガー時間がワークフローの業務時間として使用され、時間関連の変数は業務時間に基づいて計算されます。一度に最大 100 個の時点がサポートされています。[モード]で[定期的に実行]を選択した場合は、次のパラメーターを設定します。 - [開始時刻]:ワークフロースケジューリングの開始時刻。
- [終了時刻]:ワークフロースケジューリングの終了時刻。このパラメーターはオプションです。
- [繰り返し]:ワークフロースケジューリングのサイクル。
- [CRON 式]:ワークフロースケジューリングのサイクルを指定するために使用される CRON 式。
- [成功したノードをスキップ]:成功したワークフローインスタンスをスキップするかどうかを指定します。ビジネス要件に基づいて、このスイッチをオンにするかどうかを決定できます。[成功したノードをスキップ]スイッチをオンにすると、特定の業務時間で実行されるワークフローインスタンスが成功した場合、システムはワークフローインスタンスをスキップし、別の業務時間で失敗したワークフローインスタンスの実行を続けます。
- [OK] をクリックします。
ワークフローの実行状況の表示
ワークフローを実行した後、次の手順を実行して、ワークフローの実行状況を表示できます。
- [ワークフロー設計] ページの下部にある [レコード] タブをクリックします。ワークフローインスタンスのステータスを表示できます。
- ワークフローインスタンスを見つけて、[アクション]列の [詳細] をクリックして、[スケジューリングセンター] タブに移動します。
ワークフローインスタンスの詳細を表示できます。また、ワークフローインスタンスを一時停止、再開、停止、または再実行することもできます。詳細については、「スケジューリングセンター」をご参照ください。
操作 説明 [詳細] ワークフローインスタンスの詳細とステータスを表示します。 [ワークフローの停止] ワークフローインスタンスの実行中のすべてのジョブノードを停止します。 [ワークフローの一時停止] このボタンをクリックすると、実行中のジョブノードは実行を続けますが、ワークフローの後続のジョブノードは開始されません。 [ワークフローの再開] 一時停止されたワークフローインスタンスを再開します。 [ワークフローインスタンスの再実行] 終了したワークフローインスタンスを再実行します。[ワークフローインスタンスの再実行] をクリックした後、失敗したジョブノードを再実行するか、START ノードからすべてのジョブノードを再実行するかを決定できます。
ワークフローで実行できる操作
[ワークフロー] ペインで、ワークフローを右クリックして、次の表に示す操作を実行できます。
| 操作 | 説明 |
| [ワークフローの複製] | 同じフォルダーに同じ設計のワークフローを複製します。 説明 元のワークフローのスケジューリングパラメーターの設定は複製できません。 |
| [ワークフローの名前変更] | ワークフローの名前を変更します。 |
| [ワークフローの削除] | ワークフローを削除します。実行中のワークフローは削除できません。 |