HDFS数据错误分三种:名称节点错误、数据节点错误、数据块错误
1、数据节点错误
数据节点周期性发送心跳信息给名称节点,报告数据节点的状态信息。
当数据节点发生故障或者网络故障,名称节点无法收到数据节点的心跳信息,标记该数据节点为“宕机”,节点上的所有数据标记为不可读,名称节点不会像该数据节点发送如何I/O请求。
该数据节点上的数据块的副本数量小于冗余因子。名称节点周期检查这种情况,一旦发现某个数据块的副本数量小于冗余因子,启动数据冗余复制,为它生成新的副本。
2、数据块错误
文件被创建时,客户端会对每一个文件块进行信息摘录,并把这些信息写入同一个路径的隐藏文件里面。
当客户端读取文件的时候,会先读取该信息文件,然后利用该信息我呢间对每个读取的数据块进行校验,如果校验出错,客户端就会请求另外一个数据节点读取该文件块,并向名称节点报告该文件块有错误,名称节点会定期检查并重新复制该数据块。
3、名称节点出错
名称节点保存所有元数据信息,核心数据结构是FsImage和EditLog
1、HDFS HA机制