Amazon EMR
管理指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

无法复制块,只能设法复制到零节点。

错误“无法复制块,只能设法复制到零节点。 ”通常在集群没有足够的 HDFS 存储时发生。当您在集群中生成的数据多于 HDFS 中可以存储的数据时,会发生此错误。只有在集群运行时您才会看到此错误,因为当作业结束时,它会释放所使用的 HDFS 空间。

向集群提供的 HDFS 空间量取决于用作核心节点的 Amazon EC2 实例的数量和类型。任务节点不用于 HDFS 存储。每个 Amazon EC2 实例上的所有磁盘空间(包括连接的 EBS 存储卷)均可供 HDFS 使用。有关每个 EC2 实例类型的本地存储量的详细信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的实例类型和系列

另一个会影响可用 HDFS 空间量的因素是重复因子,即为冗余数据存储在 HDFS 中的每个数据块的副本数量。重复因子会随着集群中的节点数量而增加:对于拥有 10 个或更多节点的集群,每个数据块有 3 个副本;对于拥有 4 个至 9 个节点的集群,每个数据块有 2 个副本;对于拥有 3 个或更少节点的集群,每个数据块有 1 个副本 (无冗余)。用 HDFS 的总可用空间除以重复因子。有些情况下,例如将节点数量从 9 增加到 10 时,重复因子的增大实际上会导致 HDFS 的可用空间量下降。

例如,拥有 10 个 m1.large 类型核心节点的集群会向 HDFS 提供 2833 GB 的空间 ((10 节点 X 每个节点 850 GB) /重复因子 3)。

如果您的集群占用空间超过了为 HDFS 提供的空间,您可以向集群添加额外核心节点;或使用数据压缩创建更多 HDFS 空间。如果您的集群可以停止和重启,您可以考虑使用更大 Amazon EC2 实例类型的核心节点。您还可以考虑调整重复因子。然而,应当注意,减小重复因子会降低 HDFS 数据的冗余程度以及集群从丢失或损坏的 HDFS 数据块中恢复的能力。