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

E-MapReduce:ノードグループのスケールイン

最終更新日:Nov 09, 2025

クラスターの負荷が長時間低く、大量のクラスターリソースがアイドル状態の場合は、コアノードグループまたはタスクノードグループをスケールインしてリソースを節約できます。コンソールでは、従量課金制のタスクノードグループをスケールインできます。従量課金制のコアノードグループ、サブスクリプションのタスクノードグループ、サブスクリプションのコアノードグループなど、他のタイプのノードグループについては、このトピックの手順に従ってください。

制限事項

  • データ損失を避けるため、クラスター内のコアノードの数が Hadoop 分散ファイルシステム (HDFS) のレプリカ数と等しい場合は、コアノードグループをスケールインしないでください。

  • クラスターが 2 つのマスターノードを持つ旧バージョンの高可用性 (HA) Hadoop クラスターである場合、emr-worker-1 ノードをスケールインしないでください (旧バージョンの高可用性クラスターでは、Zookeeper は worker-1 にデプロイされています)。

注意事項

  • このトピックの操作はロールバックできません。コンポーネントを非公開にすると、サービスのコンポーネントは回復できません。

  • このトピックでは、スケールイン操作のベストプラクティスについて説明します。ノードグループをスケールインする前にビジネスへの影響を評価し、注意して進めることをお勧めします。これにより、ジョブスケジューリングの失敗やデータセキュリティのリスクを防ぐことができます。

削除するノードの選択方法

ノードグループのスケールインは、主にノードグループからノードを削除することによって実現されます。クラスターのサービス負荷に基づいて、クラスターから削除するノードを選択します。次のいずれかの方法を使用して、クラスターのリソース使用量を表示し、削除するノードを選択できます。

方法 1: EMR コンソール 監視と診断

  1. [メトリック監視] ページで、YARN-Queues ダッシュボードの AvailableVCores メトリックを表示します。AvailableVCores メトリックが一貫して高い場合は、キューで使用可能なコアが多いことを示しており、コアノードグループまたはタスクノードグループのスケールインを検討できます。

  2. [メトリック監視] ページで、YARN-NodeManagers ダッシュボードの AvailableGB メトリックを表示します。ノードの AvailableGB メトリックが長時間にわたって高いレベルで維持されている場合、そのノードには大量の利用可能なメモリがあることを示しており、ノードの解放を検討できます。

説明

ビジネス要件のコンテキストで他のメトリックを評価できます。

方法 2: YARN の Web UI を使用する

  1. クラスターのキューリソース使用量を表示します。キューリソースが頻繁に十分に活用されていない場合は、コアノードグループまたはタスクノードグループのスケールインを検討してください。

    Core_p1

  2. Nodes ページで、Nodes Address でノードをソートし、利用可能なメモリリソースが最も多いノードを特定します。その後、ノードを削除します。

    core_p2

重要

クラスターが旧バージョンの Hadoop クラスターである場合は、次の点に注意してください。

  • クラスターが非高可用性クラスターである場合、emr-worker-1 または emr-worker-2 ノードをクラスターから削除することはできません。

  • クラスターが高可用性クラスターであっても、クラスター内のマスターノードの数が 2 の場合、emr-worker-1 ノードをクラスターから削除することはできません。

ステップ 1: ノード上のコンポーネントを表示する

ノードを削除してコアノードグループまたはタスクノードグループをスケールインする場合、対応するノードリソースを解放する前に、まずそれらのノード上のコンポーネントを非公開にする必要があります。コンソールの [ノード] ページで、各ノードにどのコンポーネントがデプロイされているかを表示できます。

core_p3

ステップ 2: ノードにデプロイされたコンポーネントを非公開にする

削除したいノードに次のコンポーネントがデプロイされている場合、ノードを削除する前にコンポーネントを非公開にする必要があります。コンポーネントを非公開にせずに次のコンポーネントがデプロイされているノードを削除すると、ノードで実行されているジョブが失敗したり、データセキュリティのリスクが発生したりする可能性があります。

YARN サービスの NodeManager コンポーネントを非公開にする

  1. YARN サービスページの [ステータス] タブに移動します。

    1. EMR コンソールにログインします。左側のナビゲーションウィンドウで、[EMR on ECS] をクリックします。

    2. 上部のナビゲーションバーで、必要に応じてリージョンとリソースグループを選択します。

    3. [EMR On ECS] ページで、ターゲットクラスターを見つけ、[アクション] 列の [サービス] をクリックします。

    4. [クラスターサービス] ページで、YARN サービスエリアの [ステータス] をクリックします。

  2. 目的のノードにデプロイされている NodeManager コンポーネントを非公開にします。

    1. [コンポーネント] リストで、NodeManager の [アクション] 列にある core_p0 > [非公開] をクリックします。

    2. 表示されるダイアログボックスで、[実行範囲] > [特定のコンピューター] を選択し、[実行理由] を入力して、[OK] をクリックします。

    3. ポップアップダイアログボックスで、[OK] をクリックします。

  3. 右上の [操作履歴] をクリックして、操作の進行状況を表示します。

HDFS サービスの DataNode コンポーネントを非公開にする

  1. SSH モードでクラスターのマスターノードにログインします。詳細については、「クラスターへのログイン」をご参照ください。

  2. hdfs ユーザーに切り替えて、NameNode の数を表示します。

    sudo su - hdfs
    hdfs haadmin -getAllServiceState
  3. SSH モードで NameNode がデプロイされているノードにログインし、非公開にしたい DataNode コンポーネントのノードを dfs.exclude ファイルに追加します。一度に 1 つのノードのみを追加することをお勧めします。

    • Hadoop クラスター

      touch /etc/ecm/hadoop-conf/dfs.exclude
      vim /etc/ecm/hadoop-conf/dfs.exclude

      vim で o を押して新しい行を開始し、非公開にしたい DataNode のホスト名を入力します。

      emr-worker-3.cluster-xxxxx
      emr-worker-4.cluster-xxxxx
    • 非レガシー Hadoop クラスター

      touch /etc/taihao-apps/hdfs-conf/dfs.exclude
      vim /etc/taihao-apps/hdfs-conf/dfs.exclude

      o を入力して新しい行を挿入し、非公開にしたい DataNode のホスト名を入力します。

      core-1-3.c-0894dxxxxxxxxx
      core-1-4.c-0894dxxxxxxxxx
  4. NameNode がデプロイされているノードで hdfs ユーザーに切り替えて、次のコマンドを実行します。その後、HDFS は自動的に DataNode コンポーネントの非公開を開始します。

    sudo su - hdfs
    hdfs dfsadmin -refreshNodes
  5. 結果を確認します。

    次のコマンドを実行して、オフラインプロセスが完了したかどうかを判断します。

    hadoop dfsadmin -report

    ステータスが Decommissioned の場合、DataNode コンポーネントのデータは他のノードに移行され、DataNode コンポーネントは非公開になります。

StarRocks サービスのバックエンドコンポーネントを非公開にする

  1. クラスターにログインし、クライアントを使用してアクセスします。詳細については、「クイックスタート」をご参照ください。

  2. 次のコマンドを実行して、DECOMMISSION メソッドを使用して BE ノードを非公開にします。

    ALTER SYSTEM DECOMMISSION backend "be_ip:be_heartbeat_service_port";

    必要に応じて、次のパラメーターを置き換えます。

    • be_ip: スケールインしたい BE ノードの内部 IP アドレスです。[ノード] ページで IP アドレスを確認できます。

    • be_heartbeat_service_port: デフォルト値は 9050 です。show backends コマンドを実行してポートを表示できます。

    Decommission が遅い場合は、DROP メソッドを使用して BE を強制的に非公開にすることができます。

    重要

    DROP メソッドを使用して BE ノードを非公開にする場合は、システムに 3 つの完全なレプリカがあることを確認してください。

    ALTER SYSTEM DROP backend "be_ip:be_heartbeat_service_port";
  3. 次のコマンドを実行して、BE ノードのステータスを確認します。

    show backends;

    Starrocks1

    SystemDecommissioned 列の値が true の場合、BE ノードは削除中です。TabletNum 列の値が 0 の場合、システムはメタデータをクリーンアップします。

    前の図に BE ノードが表示されていない場合、ノードは正常に削除されています。

HBase サービスの HRegionServer コンポーネントを非公開にする

  1. HBase サービスページの [ステータス] タブに移動します。

    1. EMR コンソールにログインします。左側のナビゲーションウィンドウで、[EMR on ECS] をクリックします。

    2. 上部のメニューバーで、必要に応じてリージョンとリソースグループを選択します。

    3. [EMR On ECS] ページで、目的のクラスターを見つけ、[アクション] 列の [サービス] をクリックします。

    4. [クラスターサービス] ページで、HBase サービスエリアの [ステータス] をクリックします。

  2. 目的のノードにデプロイされている HRegionServer コンポーネントを非公開にします。

    1. [コンポーネント] セクションで、HRegionServer の [アクション] 列にある [停止] をクリックします。

    2. ダイアログボックスで、[実行範囲] > [特定のコンピューター] を選択し、[実行理由] を入力して、[OK] をクリックします。

    3. ダイアログボックスで、[OK] をクリックします。

  3. 右上の [操作履歴] をクリックして、操作の進行状況を表示します。

HBase-HDFS サービスの DataNode コンポーネントを非公開にする

  1. SSH モードでクラスターのマスターノードにログインします。詳細については、「クラスターへのログイン」をご参照ください。

  2. 次のコマンドを実行して hdfs ユーザーに切り替え、環境変数を設定します。

    sudo su - hdfs
    export HADOOP_CONF_DIR=/etc/taihao-apps/hdfs-conf/namenode
  3. 次のコマンドを実行して、NameNode に関する情報を表示します。

    hdfs dfsadmin -report
  4. SSH モードで NameNode がデプロイされているノードにログインし、DataNode コンポーネントを非公開にしたいノードを dfs.exclude ファイルに追加します。一度に 1 つのノードのみを追加することをお勧めします。

    touch /etc/taihao-apps/hdfs-conf/dfs.exclude
    vim /etc/taihao-apps/hdfs-conf/dfs.exclude

    vim で o を押して新しい行を開始し、非公開にしたい DataNode のホスト名を入力します。

    core-1-3.c-0894dxxxxxxxxx
    core-1-4.c-0894dxxxxxxxxx
  5. NameNode がデプロイされているノードで hdfs ユーザーに切り替えて、次のコマンドを実行します。その後、HDFS は自動的に DataNode コンポーネントの非公開を開始します。

    sudo su - hdfs
    export HADOOP_CONF_DIR=/etc/taihao-apps/hdfs-conf/namenode
    hdfs dfsadmin -refreshNodes
  6. 結果を確認します。

    次のコマンドを実行して、DataNode コンポーネントが非公開になっているかどうかを確認します。

    hadoop dfsadmin -report

    ステータスが Decommissioned の場合、DataNode コンポーネントのデータは他のノードに移行され、DataNode コンポーネントは非公開になります。

    SmartData サービスの JindoStorageService コンポーネントを非公開にする (Hadoop クラスター)

    1. SmartData サービスページの [ステータス] タブに移動します。

      1. EMR コンソールにログインします。左側のナビゲーションウィンドウで、[EMR on ECS] をクリックします。

      2. 上部のメニューバーで、必要に応じてリージョンとリソースグループを選択します。

      3. [EMR On ECS] ページで、ターゲットクラスターの [アクション] 列にある [サービス] をクリックします。

      4. [クラスターサービス] ページで、SmartData サービスエリアの [ステータス] をクリックします。

    2. 目的のノードにデプロイされている JindoStorageService コンポーネントを非公開にします。

      1. [コンポーネントリスト] で、JindoStorageService の [アクション] 列にある core_p0 > [非公開] をクリックします。

      2. 表示されるダイアログボックスで、[実行範囲] > [特定のコンピューター] を選択し、[実行理由] を入力して、[OK] をクリックします。

      3. ポップアップダイアログボックスで、[OK] をクリックします。

    3. 右上の [操作履歴] をクリックして、操作の進行状況を表示します。

ステップ 3: ノードを解放する

重要

EMR クラスターのノードグループ内のノードを削除するには、ECS コンソールに移動して、ノードに対応する ECS インスタンスを解放する必要があります。この操作を RAM ユーザーとして実行する場合は、必要な ECS 権限が必要です。RAM ユーザーに AliyunECSFullAccess ポリシーをアタッチすることをお勧めします。

  1. [ノード] タブに移動します。

    1. EMR コンソールにログインします。左側のナビゲーションウィンドウで、[EMR on ECS] をクリックします。

    2. 上部のナビゲーションバーで、必要に応じてリージョンとリソースグループを選択します。

    3. [EMR On ECS] ページで、目的のクラスターを見つけ、[アクション] 列の [ノード] をクリックします。

  2. [ノード] ページで、解放したいノードの ECS ID をクリックします。

    Elasitc Compute Service (ECS) コンソールに移動します。

  3. ECS コンソールでインスタンスを解放します。詳細については、「インスタンスの解放」をご参照ください。

参考資料

  • 従量課金またはプリエンプティブルインスタンスを含むタスクノードグループをスケールインする方法の詳細については、「クラスターのスケールイン」をご参照ください。

  • クラスターの計算リソースが不足している場合は、コアノードグループとタスクノードグループをスケールアウトできます。詳細については、「クラスターのスケールアウト」をご参照ください。

  • 必要に応じてクラスターの計算リソースを自動的に調整したい場合は、ノードグループにマネージド自動スケーリングまたはカスタム自動スケーリングルールを設定できます。詳細については、「Auto Scaling」をご参照ください。