Cannot replicate block, only managed to replicate to zero nodes. (ブロックをレプリケートできません。ゼロノードにのみレプリケートできます。) - Amazon EMR

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

Cannot replicate block, only managed to replicate to zero nodes. (ブロックをレプリケートできません。ゼロノードにのみレプリケートできます。)

「Cannot replicate block, only managed to replicate to zero nodes.」というエラーは、通常、クラスターに十分な HDFS ストレージがない場合に発生します。このエラーは、HDFS の容量を超えるデータが含まれるクラスターを作成したときに発生します。このエラーはクラスターの実行中にのみ発生します。これは、ジョブが終了するとき、使用していた HDFS 容量を解放するためです。

クラスターが使用できる HDFS 容量は、コアノードとして使用される Amazon EC2 インスタンスの数とタイプによって異なります。タスクノードは HDFS ストレージに使用されません。アタッチされている EBS ストレージボリュームを含め、各 Amazon EC2 インスタンスのすべてのディスク容量を HDFS に使用できます。各 EC2 インスタンスタイプのローカルストレージの容量については、「Amazon EC2 Linux インスタンス用ユーザーガイド」の「インスタンスタイプとファミリー」を参照してください。

」の「インスタンスのファミリーとタイプ」を参照してください。レプリケーション係数が、使用できる HDFS 容量に影響を及ぼすこともあります。レプリケーション係数は、冗長性を確保するために HDFS に格納された各データブロックのコピー数です。レプリケーション係数は、クラスター内のノード数に応じて大きくなります。これは、クラスターに 10 個以上のノードがある場合は、データブロックごとに 3 つのコピー、4~9 個のノードがある場合は各ブロックの 2 つのコピー、ノードが 3 つ以下のクラスターの場合は 1 つのコピー(冗長性なし)が格納されているからです。ジョブフローが使用できる容量を算出するには、使用できる HDFS 容量の合計をレプリケーション係数で割ります。ノードの数が 9 個から 10 個に増えた場合など、レプリケーション係数が増加することで、使用できる HDFS 容量が実質的には減ることがあります。

たとえば、10 個のコアノードを持つタイプ m1.large のクラスターでは、2833 GB の容量を HDFS で使用できます(10 ノード X ノードあたりの容量 850 GB)÷レプリケーション係数 3)。

HDFS で使用できる容量をクラスターが超えた場合は、コアノードをクラスターに追加するか、データを圧縮すると、HDFS 容量を生成できます。クラスターを停止して再起動できる場合は、さらに大きな Amazon EC2 インスタンスタイプのコアノードの使用を検討してください。また、レプリケーション係数を調整して対応することもできます。ただし、レプリケーション係数を小さくすると、HDFS データの冗長性と、紛失または破損した HDFS ブロックからクラスターを回復する機能が低下します。