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

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

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

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

警告

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

タスク完了時の終了を指定した場合、Amazon EMR では、Amazon EC2 インスタンスを終了する前にタスクをブラックリストに追加してノードから削除します。指定されている動作にかかわらず、HDFS の破損につながる可能性があれば、Amazon EMR はコアインスタンスグループの Amazon EC2 インスタンスを終了しません。

タスクの完了時に終了

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

この時間は、yarn-site 設定分類のプロパティを使用して設定します。Amazon EMR リリースバージョン 5.12.0 以降を使用して、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 では、新しい設定が動的に使用されます。クラスターのサイズ縮小中にタスクが中断されないよう、この値を任意的に大きく設定することができます。

コアノードグループ

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

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

別の制限として、dfs.replication 内の /etc/hadoop/conf/hdfs-site というデフォルトのレプリケーション係数があります。Amazon EMR は、クラスター内のインスタンス数に基づいて値を設定します。1 と 1~3 インスタンス、4~9 インスタンスのクラスターの場合は 2、10 以上のインスタンスのクラスターの場合は 3。平滑なサイズ縮小では、HDFS レプリケーション要素以下のコアノードの縮小は行われません。これは、HDFS によって不十分なレプリカが原因でファイルが閉じれなくなる問題を防ぐためです。この制限を回避するには、レプリケーション要素を低くして NameNode デーモンを再起動する必要があります。

Amazon EMR スケールダウン動作を設定する

注記

この設定機能は Amazon EMR リリース 5.1.0 以降でのみ使用可能です。

クラスターを作成するときに、AWS マネジメントコンソール、AWS CLI、または Amazon EMR API を使用してスケールダウン動作を設定できます。を使用したスケールダウンの設定は、「AWS マネジメントコンソールステップ 3:」で行います。[Advanced options (詳細オプション)] を使用してクラスターを作成するときの [General Cluster Settings (クラスターの全般設定)] 画面。


					インスタンスを終了するためのスケールダウン設定。Amazon EMR

AWS CLI を使用してクラスターを作成する場合、--scale-down-behavior オプションを使用して TERMINATE_AT_INSTANCE_HOUR または TERMINATE_AT_TASK_COMPLETION を指定します。