本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon EMR 集群错误:File could only be replicated to 0 nodes instead of 1
当将文件写入 HDFS 时,会复制到多个核心节点。当你看到这个错误时,这意味着 NameNode 守护程序没有任何可用的 DataNode实例可以在 HDFS 中写入数据。换句话说,没有发生数据块复制。此错误可能是由多种问题导致的:
-
HDFS 文件系统可能已经用尽了空间。这是最有可能的原因。
-
DataNode 作业运行时实例可能不可用。
-
DataNode 实例可能已被阻止与主节点通信。
-
核心实例组中的实例可能并不可用。
-
权限可能会缺失。例如, JobTracker 守护程序可能没有权限创建任务跟踪器信息。
-
DataNode 实例的预留空间设置可能不足。通过检查 dfs.datanode.du.reserved 配置设置,确定情况是否如此。
要检查此问题是否由 HDFS 磁盘空间耗尽所致,请查看中的HDFSUtilization CloudWatch指标。如果此值过高,您可以将其它核心节点添加到此集群。如果您认为集群可能耗尽 HDFS 磁盘空间,则可以设置警报,在 CloudWatch 的HDFSUtilization值超过一定水平时提醒您。有关更多信息,请参阅手动调整正在运行的 Amazon EMR 集群的大小和使用监控 Amazon EMR 指标 CloudWatch。
如果问题不是 HDFS 空间不足,请检查 DataNode 日志、 NameNode日志和网络连接是否存在其他可能阻止 HDFS 复制数据的问题。有关更多信息,请参阅 查看 Amazon EMR 日志文件。