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

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

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

注記

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

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

警告

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 Graceful Decommission では、ノードが廃止されるまで待機する時間を手動で調整できます。

この時間は、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 ドキュメントの「YARN ノードのグレースフルデコミッション」を参照してください。

タスクノードグループ

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

コアノードグループ

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

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

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

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

  2. Amazon EMR では、dfs.replicationクラスターがコアノードを以下にスケーリングすることはできません。たとえばdfs.replication = 2、コアノードの最小数は 2 です。

  3. Managed Scaling、Auto Scaling を使用する場合や、クラスターのサイズを手動で変更する場合は、2 dfs.replication 以上に設定することをお勧めします。

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

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

注記

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

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

注記

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. クラスターを起動するには、[Create cluster] を選択します。

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

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

  3. ステップ 3: 一般的なクラスター設定」で、希望するスケールダウン動作を選択します。残りの設定を完了し、クラスターを作成します。

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