

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

# NO\$1SLAVE\$1LEFT で Amazon EMR クラスターが終了し、FAILED\$1BY\$1MASTER でコアノードが終了する
<a name="emr-cluster-NO_SLAVE_LEFT-FAILED_BY_MASTER"></a>

このエラーは通常、削除保護が無効になっており、すべてのコアノードが `yarn-site.xml` ファイルに対応する `yarn-site` 設定分類の最大使用率しきい値で指定したディスクストレージ容量を超過したことが原因で発生します。この値のデフォルト値は 90% です。コアノードのディスク使用率が使用率のしきい値を超えると、YARN NodeManager のヘルスサービスにより、ノードが `UNHEALTHY` として報告されます。この状態になっていると、Amazon EMR はノードを拒否リストに追加し、YARN コンテナを割り当てません。ノードの異常が 45 分間続いた場合、Amazon EMR は関連付けられている Amazon EC2 インスタンスを終了するために `FAILED_BY_MASTER` のマークを付けます。コアノードに関連付けられているすべての Amazon EC2 インスタンスに終了のマークが付けられると、ジョブを実行するリソースがなくなるため、クラスターはステータス `NO_SLAVE_LEFT` で終了します。

1 つのコアノードのディスク使用率がしきい値を超えると、連鎖反応が起きる可能性があります。HDFS が原因で 1 つのノードのディスク使用率がしきい値を超えた場合、他のノードのディスク使用率もしきい値に近づいていると考えられます。最初のノードのディスク使用率がしきい値を超えると、Amazon EMR はそのノードを拒否リストに追加します。これにより、拒否リストに追加されたノードで失った HDFS データを残りのノードがそれぞれの間でレプリケートし始めるため、ノードのディスク使用率が上昇します。その後、各ノードも同じように `UNHEALTHY` の状態になり、最終的にはクラスターが終了します。

## ベストプラクティスとレコメンデーション
<a name="w2aac36c21c13b7b7"></a>

### クラスターハードウェアに十分なストレージを設定する
<a name="w2aac36c21c13b7b7b3"></a>

クラスターを作成するときに、十分な数のコアノードがあること、および各ノードに HDFS 用の十分なインスタンスストアと EBS ストレージボリュームがあることを確認します。詳細については、「[クラスターの必要な HDFS 容量の計算](emr-plan-instances-guidelines.md#emr-plan-instances-hdfs)」を参照してください。手動で、または Auto Scaling を使用して既存のインスタンスグループにコアインスタンスを追加することもできます。新しいインスタンスのストレージ設定は、インスタンスグループ内の他のインスタンスと同じになります。詳細については、「[Amazon EMR クラスタースケーリングを使用してワークロードの変化に適応する](emr-scale-on-demand.md)」を参照してください。

### 終了保護を有効化する
<a name="w2aac36c21c13b7b7b5"></a>

削除保護を有効にします。このようにすると、コアノードが拒否リストに追加された場合に、SSH を使用して関連付けられている Amazon EC2 インスタンスに接続し、トラブルシューティングを行ってデータを復旧できます。終了保護を有効にすると、Amazon EMR が Amazon EC2 インスタンスを新しいインスタンスに置き換えなくなる点に注意してください。詳細については、「[Amazon EMR クラスターを誤ったシャットダウンから保護するための終了保護の使用](UsingEMR_TerminationProtection.md)」を参照してください。

### MRUnhealthyNodes CloudWatch メトリクスのアラームを作成する
<a name="w2aac36c21c13b7b7b7"></a>

このメトリクスは、ステータスが `UNHEALTHY` のノードの数を報告します。これは、YARN メトリクス `mapred.resourcemanager.NoOfUnhealthyNodes` と同等です。このアラームの通知を設定すれば、45 分のタイムアウトに達する前に異常が発生したノードに関する警告を受け取ることができます。詳細については、「[CloudWatch で Amazon EMR のメトリクスをモニタリングする](UsingEMR_ViewingMetrics.md)」を参照してください。

### yarn-site を使用して設定を微調整する
<a name="w2aac36c21c13b7b7b9"></a>

以下の設定は、アプリケーションの要件に合わせて調整できます。たとえば、`yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage` の値を増やすことにより、ノードが `UNHEALTHY` と報告するディスク使用率のしきい値を上げることができます。

これらの値は、`yarn-site` 設定分類を使用してクラスターを作成するときに設定できます。詳細については、「*Amazon EMR リリースガイド*の」「[アプリケーションの設定](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html)」を参照してください。SSH を使用してコアノードに関連付けられている Amazon EC2 インスタンスに接続し、テキストエディターを使用して `/etc/hadoop/conf.empty/yarn-site.xml` に値を追加することもできます。変更を加えたら、以下のように hadoop-yarn-nodemanager を再起動する必要があります。

**重要**  
クラスターの作成時に `yarn-site` 設定分類を使用して `yarn.nodemanager.recovery.enabled` を `true` に設定していなければ、NodeManager サービスを再起動するときにアクティブな YARN コンテナが強制終了されます。そのため、`yarn.nodemanager.recovery.dir` プロパティを使用して、コンテナの状態を保存するディレクトリも指定する必要があります。

```
sudo /sbin/stop hadoop-yarn-nodemanager
sudo /sbin/start hadoop-yarn-nodemanager
```

最新の `yarn-site` プロパティとデフォルト値の詳細については、Apache Hadoop ドキュメントの「[YARN のデフォルト設定](http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-common/yarn-default.xml)」を参照してください。


| プロパティ | デフォルトの値 | 説明 | 
| --- | --- | --- | 
|  yarn.nodemanager.disk-health-checker.interval-ms  |  120000  |  ディスクのヘルスチェッカーを実行する頻度 (秒)。  | 
|  yarn.nodemanager.disk-health-checker.min-healthy-disks  |  0.25  |  NodeManager で新しいコンテナを起動するために正常でなければならないディスク数の最小比率。これは、yarn.nodemanager.local-dirs (デフォルトでは、Amazon EMR の `/mnt/yarn`) と yarn.nodemanager.log-dirs (デフォルトでは `/var/log/hadoop-yarn/containers` で、Amazon EMR の `mnt/var/log/hadoop-yarn/containers` に対してシンボリックリンクされています) の両方に対応しています。  | 
|  `yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage`  |  90.0  |  ディスクが異常であるとマークされてから許容されるディス容量使用率の最大パーセンテージ。値の範囲は 0.0～100.0 です。この値が 100 以上になると、NodeManager によってディスク全体のチェックが行われます。これは、`yarn-nodemanager.local-dirs` と `yarn.nodemanager.log-dirs` に適用されます。  | 
|  `yarn.nodemanager.disk-health-checker.min-free-space-per-disk-mb`  |  0  |  使用するために最低限確保しておく必要があるディスク容量。これは、`yarn-nodemanager.local-dirs` と `yarn.nodemanager.log-dirs` に適用されます。  | 