Amazon EMR クラスターエラー: File could only be replicated to 0 nodes instead of 1
ファイルが HDFS に書き込まれるとき、複数のコアノードに複製されます。このエラーが表示されるとき、HDFS にデータを書き込むための DataNode インスタンスが NameNode デーモンにないことを意味します。言い換えれば、ブロックレプリケーションが行われていません。このエラーは次のようなさまざまな問題から発生する場合があります。
-
HDFS ファイルシステムに容量不足が発生している可能性があります。これが最も一般的な原因です。
-
ジョブの実行時に DataNode インスタンスを利用できなかった可能性があります。
-
DataNode インスタンスとマスターノードとの通信がブロックされた可能性があります。
-
コアインスタンスグループのインスタンスが利用できない可能性があります。
-
権限が不足している可能性があります。たとえば、JobTracker デーモンにジョブトラッカー情報を作成する権限がなかった可能性があります。
-
DataNode インスタンスの予約容量設定が十分でない可能性があります。これに該当するかどうかは、dfs.datanode.du.reserved 設定で確認します。
この問題が HDFS のディスク容量不足により引き起こされているかどうかを確認するには、CloudWatch の HDFSUtilization
メトリクスを調べます。この値が高すぎる場合、クラスターにコアノードを追加できます。HDFS ディスク容量が不足していると考えられるクラスターがある場合、HDFSUtilization
の値が一定のレベルを超えたときにアラートを通知するように CloudWatch にアラームを設定できます。詳細については、実行中の Amazon EMR クラスターのサイズを手動で変更するおよびCloudWatch で Amazon EMR のメトリクスをモニタリングするを参照してください。
HDFS の容量不足が原因ではない場合、DataNode ログ、NameNode ログ、ネットワーク接続をチェックし、HDFS のデータ複製を阻害している問題が他にないか確認します。詳細については、「Amazon EMR ログファイルを表示する」を参照してください。