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

文件只能复制到 0 个节点而不是 1 个节点

当将文件写入 HDFS 时,会复制到多个核心节点。当您看到此错误时,就意味着 NameNode 守护程序中没有将数据写入 HDFS 的可用 DataNode 实例。换句话说,没有发生数据块复制。此错误可能是由多种问题导致的:

  • HDFS 文件系统可能已经用尽了空间。这是最有可能的原因。

  • 运行作业时,DataNode 实例可能并不可用。

  • 可能已经阻止 DataNode 实例与主节点进行通信。

  • 核心实例组中的实例可能并不可用。

  • 权限可能会缺失。例如,JobTracker 守护程序可能不具有创建作业跟踪程序信息的权限。

  • DataNode 实例的预留空间设置可能并不足够。通过检查 dfs.datanode.du.reserved 配置设置,确定情况是否如此。

要检查此问题是否是由 HDFS 用尽磁盘空间导致的,请查看 CloudWatch 中的 HDFSUtilization 指标。如果此值过高,您可以将其他核心节点添加到此集群。如果有一个您认为可能会用尽 HDFS 磁盘空间的集群,那么您可以在 CloudWatch 中设置一个警报,以便当 HDFSUtilization 的值超出某一水平时提醒您。有关更多信息,请参阅 手动调整正在运行的集群的大小使用 CloudWatch 监控指标

如果问题不是 HDFS 用尽了空间,请检查 DataNode 日志、NameNode 日志和网络连接,以找出可能阻止 HDFS 复制数据的其他问题。有关更多信息,请参阅 查看日志文件