ノードタイプ (マスターノード、コアノード、タスクノード) を理解する - Amazon EMR

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

ノードタイプ (マスターノード、コアノード、タスクノード) を理解する

このセクションでは、Amazon EMR がこれらの各ノードタイプの使用方法を説明し、クラスターの容量計画の基礎を提供します。

マスターノード

マスターノードはクラスターを管理し、通常は分散アプリケーションのマスターコンポーネントを実行します。たとえば、マスターノードは、アプリケーションのリソースを管理するために、YARN ResourceManager サービスを実行します。また、HDFS NameNode サービスを実行し、クラスターにサブミットされたジョブのステータスを追跡して、インスタンスグループの正常性を監視します。

クラスターの進行状況をモニタリングしてアプリケーションを直接操作するには、Hadoop ユーザーとして SSH でマスターノードに接続します。詳細については、「SSH を使用してマスターノードConnect する」を参照してください。マスターノードに接続すると、Hadoop ログやファイルなどのディレクトリとファイルに直接アクセスすることができます。詳細については、「 ログファイルを表示する」を参照してください。マスターノードで実行されるウェブサイトとしてアプリケーションで公開しているユーザーインターフェイスを表示することもできます。詳細については、「Amazon EMR クラスターでホストされるウェブインターフェイスの表示」を参照してください。

注記

Amazon EMR 5.23.0 以降では、YARN リソースマネージャー、HDFS 名前ノード、Spark、Hive、Ganglia といったアプリケーションの高可用性をサポートできるように、3 つのマスターノードでクラスターを起動できます。マスターノードは、現在この機能による潜在的な単一障害点ではありません。マスターノードのいずれかに障害が発生した場合、Amazon EMR は自動的にスタンバイマスターノードにフェイルオーバーされ、障害が発生したマスターノードを、同じ設定およびブートストラップアクションを持つ新しいマスターノードに置き換えられます。詳細については、「」を参照してください。マスターノードの計画と設定

コアノード

コアノードは、マスターノードによって管理されます。コアノードはデータノードデーモンを実行して、Hadoop Distributed File System (HDFS)の一部としてデータストレージを調整します。さらにタスクトラッカーデーモンを実行し、インストールされているアプリケーションが要求するデータ上で、その他の並列計算タスクを実行します。たとえば、コアノードは YARN NodeManagerデーモン、Hadoop MapReduce タスク、および Spark 実行プログラムを実行します。

コアインスタンスグループまたはインスタンスフリートは 1 つのクラスターのみですが、インスタンスグループまたはインスタンスフリートで複数の Amazon EC2 インスタンスで実行されている複数のノードがあります。インスタンスグループでは、クラスターの実行中に Amazon EC2 インスタンスを追加または削除できます。また、自動スケーリングを設定して、メトリックスの値に基づいてインスタンスを追加することもできます。インスタンスグループ構成で Amazon EC2 インスタンスを追加または削除する方法の詳細については、「を参照してください。クラスターリソースのスケーリング

インスタンスフリートでは、インスタンスフリートのターゲット容量それに応じて、オンデマンドとスポットを使用します。ターゲット容量の詳細については、「 インスタンスフリートオプション」を参照してください。

警告

実行中のコアノードのHDFSデーモンを停止すること、もしくは実行中のコアノードそのものを停止することは、データ損失のリスクにつながります コアノードにスポットインスタンスを使用する場合は十分に考慮するようにしてください。詳細については、「スポットインスタンスはいつ使用すべきですか?」を参照してください。

タスクノード

タスクノードを使用すると、Hadoop MapReduce タスクや Spark 実行プログラムなど、データに対して並列計算タスクを実行するための能力を追加できます。タスクノードは、データノードデーモン上で実行されることも、HDFS でデータを保存することもありません。コアノードと同様に、Amazon EC2 インスタンスを既存のユニフォームインスタンスグループに追加することにより、クラスターにタスクノードを追加する、またはタスクインスタンスフリートのターゲット容量を変更することができます。

ユニフォームインスタンスグループ設定では、最大で 48 のタスクインスタンスグループを持つことができます。この方法でインスタンスグループを追加できることで、オンデマンドインスタンスとスポットインスタンスなど、Amazon EC2 インスタンスタイプと価格設定オプションを組み合わせることができます。これにより、コスト効率の高い方法でワークロードの要件に対応できる柔軟性が得られます。

インスタンスフリート構成では、インスタンスタイプと購入オプションを組み合わせる能力が組み込まれているため、タスクインスタンスフリートは 1 つだけです。

スポットインスタンスはタスクノードの実行によく使用されるため、Amazon EMR には YARN ジョブをスケジュールするためのデフォルト機能があり、スポットインスタンスで実行中のタスクノードが終了しても実行中のジョブが失敗しないようにしています。Amazon EMR は、アプリケーションマスタープロセスをコアノードでのみ実行できるようにすることで、これを行います。アプリケーションマスタープロセスは、実行中のジョブを制御し、ジョブの有効期間中維持する必要があります。

Amazon EMR リリースバージョン 5.19.0 以降は、組み込みのYARN ノードラベル機能を使用してこれを達成します。(以前のバージョンではコードパッチを使用していました)。のプロパティyarn-siteおよびcapacity-scheduler設定分類は、YARN キャパシティスケジューラおよびフェアスケジューラがノードラベルを利用するようにデフォルトで設定されます。Amazon EMR は、コアノードにCOREラベルを作成し、アプリケーションマスターが CORE ラベルを持つノードでのみスケジュールされるようにプロパティを設定します。yarn-site およびキャパシティスケジューラの構成分類で関連するプロパティを手動で変更するか、関連する XML ファイルで直接変更すると、この機能が中断されたり、この機能が変更される可能性があります。

Amazon EMR 6.x リリースシリーズ以降では、YARN ノードラベル機能はデフォルトで無効になっています。アプリケーションマスタープロセスは、デフォルトでコアノードとタスクノードの両方で実行できます。次のプロパティを設定することで、YARN ノードラベル機能を有効にできます。

  • yarn.node-labels.enabled: true

  • yarn.node-labels.am.default-node-label-expression: 'CORE'

特定のプロパティの詳細については、タスクノードスポットインスタンスの終了によるジョブの失敗を防ぐための Amazon EMR 設定を参照してください。