すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:ワークフローの編集

最終更新日:Jan 11, 2025

E-MapReduce(EMR)のデータ開発プロジェクトでは、一連の依存ジョブを定義し、依存関係に基づいてジョブを順番に実行できるようにワークフローを作成できます。EMR ワークフローは、ビッグデータ ジョブを並列実行できる有向非巡回グラフ(DAG)として表現できます。EMR コンソールでワークフローをスケジュールしたり、ワークフローのステータスを表示したりできます。

背景情報

前提条件

  • プロジェクトが作成されていること。詳細については、「プロジェクトの管理」をご参照ください。
  • ジョブが編集されていること。詳細については、「ジョブの編集」をご参照ください。

ワークフローの作成

ワークフローを作成するには、次の手順を実行します。

  1. [データプラットフォーム]タブに移動します。
    1. Alibaba Cloud アカウントを使用して Alibaba Cloud EMR コンソール にログオンします。
    2. 上部のナビゲーションバーで、クラスターが存在するリージョンを選択し、ビジネス要件に基づいてリソースグループを選択します
    3. [データプラットフォーム] タブをクリックします。
  2. 表示されるページの [プロジェクト] セクションで、プロジェクトを見つけ、[アクション]列の [ワークフロー] をクリックします。
  3. ワークフローを作成します。
    1. 表示されるページの左側にある [ワークフロー] ペインで、操作を実行するフォルダーを右クリックし、[ワークフローの作成] を選択します。
    2. [ワークフローの作成] ダイアログボックスで、[ワークフロー名][説明]、[リソースグループの選択]、[ターゲットクラスター]を指定します。
      [ターゲットクラスター]パラメーターの有効な値:
      • [既存のクラスターを選択]:ワークフローが実行されると、選択したクラスターでジョブが実行されます。
      • [テンプレートからクラスターを作成]:ワークフローが実行されると、選択したクラスターテンプレートを使用して作成された一時クラスターでジョブが実行されます。ワークフローが終了すると、クラスターは自動的に解放されます。詳細については、「クラスターテンプレートの作成」をご参照ください。
        説明 [既存のクラスターを選択] ドロップダウンリストには、プロジェクトに関連付けられているクラスターのみが表示されます。別のクラスターを選択するには、まず既存のクラスターをプロジェクトから関連付け解除する必要があります。詳細については、「プロジェクトの管理」をご参照ください。
    3. [OK] をクリックします。
      ワークフローが作成された後、ワークフローを編集および設定できます。

ワークフローの編集

  1. さまざまなタイプのジョブノードをキャンバスにドラッグして、ワークフローを編集します。
    特定のタイプのノードをキャンバスにドラッグすると、[ノードの編集] パネルで、次の表に示すパラメーターを設定できます。
    パラメーター説明
    関連ジョブ[関連ジョブ]ドロップダウンリストから、ジョブノードと同じタイプのジョブを選択します。
    ジョブ設定のカスタマイズビジネス要件に基づいて ジョブ設定をカスタマイズ できます。
    • このスイッチをオンにすると、[ターゲットクラスター] パラメーターの値を変更できます。
    • このスイッチをオフにすると、ジョブノードに関連付けられているジョブは、ワークフローの作成時に選択したクラスターで実行されます。デフォルトでは、[ジョブ設定のカスタマイズ]スイッチはオフになっています。
  2. ジョブノードを関連付けます。
    キャンバス上で、ジョブ間の依存関係に基づいて、ジョブノードから他のジョブノードに線をドラッグします。矢印はワークフローの方向を示します。
  3. コントローラーノードを設定して、ワークフローの設計を完了します。
    終了[コントローラーノード] セクションから 開始終了自動調整Edit a workflow
    ワークフローを編集するときに、右上隅にある [ロック] をクリックしてワークフローをロックできます。この方法では、ワークフローを編集または実行できるのは自分だけです。プロジェクトの他のメンバーは、ワークフローのロックが解除された後にのみワークフローを編集できます。
    説明 ワークフローをロックした RAM ユーザーと Alibaba Cloud アカウントだけがワークフローのロックを解除できます。
    ノードをキャンバスにドラッグします。次に、 ノード、ジョブノード、 ノードを関連付けて、ワークフローの設計を完了します。右上隅にある をクリックして、ワークフロー内のジョブノードのレイアウトを調整できます。

ワークフロースケジューリングの設定

ワークフロースケジューリング機能を有効にして、スケジューリング関連のパラメーターを設定できます。その後、関連するワークフローはパラメーター設定に基づいて定期的に実行され、ジョブは指定されたクラスターに配信されて実行されます。[ワークフロースケジューリング]パネルの[基本属性]、[スケジューリング設定]、[アラート設定]タブで、次の手順を実行してパラメーターを設定します。

  1. [データプラットフォーム]タブに移動します。
    1. Alibaba Cloud アカウントを使用して Alibaba Cloud EMR コンソール にログオンします。
    2. 上部のナビゲーションバーで、クラスターが存在するリージョンを選択し、ビジネス要件に基づいてリソースグループを選択します
    3. [データプラットフォーム] タブをクリックします。
  2. 表示されるページの [プロジェクト] セクションで、プロジェクトを見つけ、[アクション]列の [ワークフロー] をクリックします。
  3. ワークフロー設計ページで、[設定] をクリックします。
  4. 基本属性[ワークフロースケジューリング] パネルの タブで、ワークフローの説明、リソースグループ、ワークフロー内のジョブを実行するために使用されるクラスターをビジネス要件に基づいて変更します。
  5. 基本属性を変更した後、[スケジューリング設定] タブをクリックし、ワークフロースケジューリングに関連するパラメーターを設定します。
    パラメーター説明
    スケジューリングステータス有効な値:
    • [開始]:ワークフロースケジューリングを開始します。[スケジューリングステータス]で[開始]を選択すると、ワークフロー編集キャンバスの右上隅に [スケジューリング] と表示され、ワークフローがスケジュールされていることを示します。
    • [停止]:ワークフロースケジューリングを停止します。
    時間ベースのスケジューリング開始時刻ワークフロースケジューリングの開始時刻。
    終了時刻ワークフロースケジューリングの終了時刻。このパラメーターはオプションです。
    繰り返しワークフロースケジューリングのサイクル。
    CRON 式ワークフロースケジューリングのサイクルを指定するために使用される CRON 式。
    依存関係ベースのスケジューリングプロジェクト現在のワークフローの依存ワークフローが属するプロジェクト。このパラメーターはオプションです。
    依存ワークフロー現在のワークフローの依存ワークフロー。現在のワークフローは、依存ワークフローが終了した後にのみ実行されます。このパラメーターはオプションです。
  6. [アラート設定] タブをクリックし、アラートパラメーターを設定します。
    パラメーター説明
    実行失敗ワークフローが失敗した場合に、アラート連絡先グループまたは DingTalk アラートグループに通知を送信するかどうかを指定します。
    失敗時のアクションワークフロー内のジョブノードの実行に失敗した場合に、アラート連絡先グループまたは DingTalk アラートグループに通知を送信するかどうかを指定します。
    実行済みワークフローが成功した場合に、アラート連絡先グループまたは DingTalk アラートグループに通知を送信するかどうかを指定します。
    起動タイムアウト時のアクションワークフロー内のジョブノードがクラスターに配信されてから 30 分以内に開始されない場合に、アラート連絡先グループまたは DingTalk アラートグループに通知を送信するかどうかを指定します。
    ノードの実行がタイムアウトしましたジョブノードの実行時間がジョブ設定の予想最大実行時間を超えた場合に、アラート連絡先グループまたは DingTalk アラートグループに通知を送信するかどうかを指定します。

ワークフローの実行

ワークフローの業務時間を指定できます。ワークフローのジョブの時間変数は、指定された業務時間を使用して計算されます。業務時間は、特定の期間にワークフローインスタンスを再実行するために使用されます。一度に 1 つのワークフローインスタンスまたは複数のワークフローインスタンスを再実行できます。ジョブに時間変数が設定されていない場合は、[実行]を選択できます。

  1. [データプラットフォーム]タブに移動します。
    1. Alibaba Cloud アカウントを使用して Alibaba Cloud EMR コンソール にログオンします。
    2. 上部のナビゲーションバーで、クラスターが存在するリージョンを選択し、ビジネス要件に基づいてリソースグループを選択します
    3. [データプラットフォーム] タブをクリックします。
  2. 表示されるページの [プロジェクト] セクションで、プロジェクトを見つけ、[アクション]列の [ワークフロー] をクリックします。
  3. ワークフローを実行します。
    1. 表示されるページで、ワークフローを選択し、右上隅にある [実行] をクリックします。
    2. [ワークフローの実行] ダイアログボックスで、ランタイムパラメーターを設定します。
      ビジネス要件に基づいて 実行モード を選択できます。次の表では、サポートされている実行モード([実行][定期的に実行])について説明します。
      モード説明
      [実行]ワークフローをすぐに実行します。[指定時刻] をワークフローの業務時間として使用できます。時間関連の変数は、業務時間に基づいて計算されます。
      [定期的に実行]一度に複数のワークフローを実行します。特定のスケジューリングルールのトリガー時間がワークフローの業務時間として使用され、時間関連の変数は業務時間に基づいて計算されます。一度に最大 100 個の時点がサポートされています。[モード]で[定期的に実行]を選択した場合は、次のパラメーターを設定します。
      • [開始時刻]:ワークフロースケジューリングの開始時刻。
      • [終了時刻]:ワークフロースケジューリングの終了時刻。このパラメーターはオプションです。
      • [繰り返し]:ワークフロースケジューリングのサイクル。
      • [CRON 式]:ワークフロースケジューリングのサイクルを指定するために使用される CRON 式。
      • [成功したノードをスキップ]:成功したワークフローインスタンスをスキップするかどうかを指定します。ビジネス要件に基づいて、このスイッチをオンにするかどうかを決定できます。[成功したノードをスキップ]スイッチをオンにすると、特定の業務時間で実行されるワークフローインスタンスが成功した場合、システムはワークフローインスタンスをスキップし、別の業務時間で失敗したワークフローインスタンスの実行を続けます。
    3. [OK] をクリックします。

ワークフローの実行状況の表示

ワークフローを実行した後、次の手順を実行して、ワークフローの実行状況を表示できます。

  1. [ワークフロー設計] ページの下部にある [レコード] タブをクリックします。
    ワークフローインスタンスのステータスを表示できます。
  2. ワークフローインスタンスを見つけて、[アクション]列の [詳細] をクリックして、[スケジューリングセンター] タブに移動します。

    ワークフローインスタンスの詳細を表示できます。また、ワークフローインスタンスを一時停止、再開、停止、または再実行することもできます。詳細については、「スケジューリングセンター」をご参照ください。

    操作説明
    [詳細]ワークフローインスタンスの詳細とステータスを表示します。
    [ワークフローの停止]ワークフローインスタンスの実行中のすべてのジョブノードを停止します。
    [ワークフローの一時停止]このボタンをクリックすると、実行中のジョブノードは実行を続けますが、ワークフローの後続のジョブノードは開始されません。
    [ワークフローの再開]一時停止されたワークフローインスタンスを再開します。
    [ワークフローインスタンスの再実行]終了したワークフローインスタンスを再実行します。[ワークフローインスタンスの再実行] をクリックした後、失敗したジョブノードを再実行するか、START ノードからすべてのジョブノードを再実行するかを決定できます。

ワークフローで実行できる操作

[ワークフロー] ペインで、ワークフローを右クリックして、次の表に示す操作を実行できます。
操作説明
[ワークフローの複製]同じフォルダーに同じ設計のワークフローを複製します。
説明 元のワークフローのスケジューリングパラメーターの設定は複製できません。
[ワークフローの名前変更]ワークフローの名前を変更します。
[ワークフローの削除]ワークフローを削除します。実行中のワークフローは削除できません。