クラスターのスケールダウン - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

クラスターのスケールダウン

注記

スケールダウン動作オプションは、Amazon EMR リリース 5.10.0 以降でサポートされなくなりました。Amazon EC2 に秒単位の請求が導入されたため、Amazon EMR クラスターのデフォルトのスケールダウン動作は、タスクの完了時に終了するようになりました。

Amazon EMR リリース 5.1.0 から 5.9.1 のスケールダウン動作には、Amazon EC2 請求のインスタンス時間の境界での終了と、タスク完了時の終了の 2 つのオプションがあります。Amazon EMR リリース 5.10.0 以降では、Amazon EC2 に秒単位の請求が導入されたため、インスタンス時間の境界での終了の設定は廃止されています。このオプションが使用できないバージョンでは、インスタンス時間の境界での終了を指定することはお勧めされていません。

警告

を使用して modify-instance-groupsで AWS CLI を発行する場合EC2InstanceIdsToTerminate、これらのインスタンスは、これらの設定を考慮せずに、実行中のアプリケーションのステータスに関係なく、すぐに終了します。この方法でインスタンスを削除すると、データ損失や、予測不可能なクラスター動作が発生する可能性があります。

タスク完了時の終了を指定すると、Amazon EMR は、Amazon EC2 インスタンスを削除する前にタスクを拒否リストに登録し、ノードから削除します。いずれの動作を指定しても、HDFS の破損につながる可能性があれば、Amazon EMR はコアインスタンスグループの Amazon EC2 インスタンスを削除しません。

タスクの完了時に終了

Amazon EMR では、ワークロードに影響を与えずにクラスターをスケールダウンできます。Amazon EMR は、データを失ったりジョブを中断したりすることなく、サイズ縮小処理中にコアノードとタスクノードの YARN、HDFS、およびその他のデーモンを適切に停止します。Amazon EMR は、グループに割り当てられた作業が完了し、アイドル状態の場合にのみインスタンスグループのサイズを縮小します。YARN NodeManager Graceful Decommission では、ノードが廃止を待機する時間を手動で調整できます。

この時間は、YARN-site 設定分類のプロパティを使用して設定します。5.12.0 以降 Amazon EMR リリースを使用する場合、YARN.resourcemanager.nodemanager-graceful-decommission-timeout-secs プロパティを指定します。以前の Amazon EMR リリースを使用する場合、YARN.resourcemanager.decommissioning.timeout プロパティを指定します。

停止時間がタイムアウトした時点で実行中のコンテナーまたは YARN アプリケーションがあった場合、そのノードは強制的に停止され、実行中のコンテナーは YARN によって他のノードで再スケジュールされます。デフォルト値は 3,600 秒 (1 時間) です。このタイムアウトを任意の高い値に設定することで、グレースフルな縮小を強制的に行い、長い時間待機させることができます。詳細については、Apache Hadoop ドキュメントの「Graceful Decommission of YARN Nodes」を参照してください。

タスクノードグループ

Amazon EMR は、ステップやアプリケーションに対して実行されているタスクがないインスタンスをインテリジェントに選択し、それらのインスタンスを最初にクラスターから削除します。クラスター内のすべてのインスタンスが使用されている場合、Amazon EMR はインスタンスのタスクが完了するの待ってからクラスターから削除します。デフォルトの待機時間は 1 時間です。この値は YARN.resourcemanager.decommissioning.timeout 設定で変更できます。Amazon EMR では、この新しい設定が動的に使用されます。この値を任意の大きな数に設定することで、Amazon EMR がタスクを終了することなく、クラスターのサイズを縮小できます。

コアノードグループ

コアノードでは、インスタンスグループを減らすために、YARN デーモン NodeManager と HDFS DataNode デーモンの両方を廃止する必要があります。YARN では、グレースフルなサイズ縮小により、停止の対象となるノードは、保留中や未完了のコンテナまたはアプリケーションがない場合にのみ DECOMMISSIONED 状態に移行します。停止作業開始時においてノードでコンテナーが実行されていない場合、停止作業は即終了します。

HDFS では、グレースフルなサイズ縮小により、HDFS のターゲット容量にすべての既存ブロックが収まるよう十分な大きさが確保されます。ターゲット容量の大きさが十分でない場合、残りのノードが HDFS にある現在のデータを処理できるように、一部のコアインスタンスのみが停止されます。ノードが完全に停止されるよう、HDFS に十分な容量があるよう確認してください。また、インスタンスグループの削減を試みる前に、書き込み I/O を最小限に抑えるようにしてください。書き込み I/O が多すぎると、サイズ変更操作の完了が遅れる可能性があります。

もう 1 つの制限は、デフォルトのレプリケーション係数です。dfs.replication内部/etc/hadoop/conf/hdfs-site。Amazon EMR では、クラスターの作成時に、クラスター内のインスタンス数に基づいて値が設定されます。インスタンス数が 1~3 の場合は 1、4~9 の場合は 2、10 以上の場合は 3 となります。

警告
  1. ノードが 4 つ未満のクラスターで dfs.replication を 1 に設定すると、単一ノードがダウンした場合に HDFS データが失われる可能性があります。本番環境のワークロードには、少なくとも 4 つのコアノードを持つクラスターを使用することをお勧めします。

  2. Amazon EMR では、クラスターはコアノードを dfs.replication 未満にスケールすることはできません。例えば、dfs.replication = 2 の場合、コアノードの最小数は 2 です。

  3. マネージドスケーリングや自動スケーリングを使用する場合や、クラスターのサイズを手動で変更する場合は、dfs.replication を 2 以上に設定することをお勧めします。

グレースフルな縮小では、コアノードを HDFS のレプリケーション係数未満に減らすことはできません。これは、レプリカが不十分な場合に HDFS がファイルを閉じることができるようにするためです。この制限を回避するには、レプリケーション係数を下げてNameNode デーモンを再起動します。

Amazon EMR のスケールダウン動作を設定します。

注記

インスタンス時間で終了するスケールダウン動作オプションは、Amazon EMR リリース 5.10.0 以降でサポートされなくなりました。次のスケールダウン動作オプションは、リリース 5.1.0 から 5.9.1 の Amazon EMR コンソールにのみ表示されます。

AWS Management Console、、または Amazon EMR API を使用して AWS CLI、クラスターの作成時にスケールダウン動作を設定できます。

注記

Amazon EMR コンソールは、再設計され、使いやすくなりました。古いコンソールと新しいコンソールエクスペリエンスの違いについては、「Amazon EMR コンソール」を参照してください。

New console
新しいコンソールを使用してスケールダウン動作を設定するには
  1. にサインインし AWS Management Console、https://console.aws.amazon.com/emr で Amazon EMR コンソールを開きます。

  2. 左側のナビゲーションペインの [EMR on EC2] で、[クラスター] を選択し、[クラスターの作成] を選択します

  3. [クラスターのスケーリングとプロビジョニングのオプション] セクションで [クラスターの終了] を見つけ、クラスターを手動で終了するか、指定したアイドル時間が経過した後に Amazon EMR にクラスターを終了させるかを選択します。オプションで、バグやエラーに対する終了保護を有効にします。

  4. クラスターに適用するその他のオプションを選択します。

  5. クラスターを起動するには、[クラスターの作成] を選択します。

Old console
古いコンソールを使用してスケールダウン動作を設定するには
  1. https://console.aws.amazon.com/elasticmapreduce で Amazon EMR コンソールを開きます。

  2. [クラスターを作成] を選択します。[詳細オプション] に移動し、[ステップ 1: ソフトウェアおよびステップ][ステップ 2: ハードウェア] で構成設定を選択します。

  3. [ステップ 3: クラスター全般設定] で、スケールダウン動作を選択します。残りの設定を完了し、クラスターを作成します。

AWS CLI
を使用してスケールダウン動作を設定するには AWS CLI
  • --scale-down-behavior オプションを使用して、TERMINATE_AT_INSTANCE_HOUR または TERMINATE_AT_TASK_COMPLETION のいずれかを指定します。