HDFS数据存储是由DataNode程序负责的。DataNode是Hadoop分布式文件系统(HDFS)中的一个关键组件,负责实际存储数据文件的块(block)。当客户端需要读取或写入数据时,DataNode会与NameNode通信,以确定数据块的位置并进行相应的读写操作。
NameNode:作为HDFS的管理者,负责管理和维护文件系统的命名空间(namespace),并跟踪数据块的位置。它不直接存储数据,而是保存了文件到数据块之间的映射关系。
DataNode:负责实际存储数据文件的块,并执行数据块的读写操作。DataNode定期向NameNode报告存储的块信息。
Secondary NameNode:不是NameNode的热备份,而是用于定期合并NameNode的编辑日志(edits log)和文件系统镜像(fsimage),以减轻NameNode的内存压力。
ResourceManager:负责资源管理和调度,协调各个NodeManager的工作,但不直接负责数据存储。
因此,正确答案是 C. DataNode。