ノードタイプ (プライマリノード、コアノード、タスクノード) について理解する - Amazon EMR

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

ノードタイプ (プライマリノード、コアノード、タスクノード) について理解する

このセクションでは、Amazon がこれらの各ノードタイプと をクラスター容量計画の基盤としてどのようにEMR使用しているかを理解します。

プライマリノード

プライマリノードはクラスターを管理し、通常は分散アプリケーションのプライマリコンポーネントを実行します。例えば、プライマリノードは YARNResourceManager サービスを実行してアプリケーションのリソースを管理します。また、HDFSNameNode サービスを実行し、クラスターに送信されたジョブのステータスを追跡し、インスタンスグループのヘルスをモニタリングします。

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

注記

Amazon 5EMR.23.0 以降では、3 つのプライマリノードを持つクラスターを起動して、YARNResource Manager、、SparkHDFS NameNode、Hive、Ganglia などのアプリケーションの高可用性をサポートできます。プライマリノードは、現在この機能による潜在的な単一障害点ではありません。プライマリノードの 1 つに障害が発生した場合、Amazon EMRは自動的にスタンバイプライマリノードにフェイルオーバーし、障害が発生したプライマリノードを同じ設定とブートストラップアクションを持つ新しいノードに置き換えます。詳細については、「プライマリノードの計画と設定」を参照してください。

コアノード

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

クラスターごとにコアインスタンスグループまたはインスタンスフリートは 1 つだけですが、インスタンスグループまたはインスタンスフリート内の複数の Amazon EC2 インスタンスで実行されているノードが複数存在する可能性があります。インスタンスグループを使用すると、クラスターの実行中に Amazon EC2インスタンスを追加および削除できます。また、オートスケーリングを設定して、メトリクスの値に基づいてインスタンスを追加することもできます。EC2 インスタンスグループ設定で Amazon インスタンスを追加および削除する方法の詳細については、「」を参照してくださいクラスターのスケーリングを使用する

インスタンスフリートの場合、オンデマンドとスポットで、インスタンスフリートのターゲット容量を変更することにより、事実上インスタンスを追加および変更できます。ターゲット容量の詳細については、「 インスタンスフリートオプション」を参照してください。

警告

実行中HDFSのコアノードからデーモンを削除するか、コアノードを終了すると、データが失われるリスクがあります。コアノードにスポットインスタンスを使用する場合は十分に考慮するようにしてください。詳細については、「スポットインスタンスを使用すべき場合」を参照してください。

タスクノード

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

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

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

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

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

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

  • yarn.node-labels.enabled: true

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

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