在CGFT大数据中,数据错误与恢复是需要重点掌握的。具体有什么内容,下文作详细介绍!
HDFS具有较高的容错性,可以兼容廉价的硬件,它把硬件出错看成一种常态,而不是异常,并设计了相应的机制检测数据错误和进行自行恢复,主要包括以下几种情形。
1、名称节点出错
名称节点保存了所有的元数据信息,其中,核心的两大数据结构是fslmage和editlog。如果这两个文件发生损坏,那么整个HDFS实例将失效。因此,HDFS设置了备份机制,把这些核心文件同步复制到备份服务器secondarynamenode上,备份服务器本身不会处理任何请求,只扮演备份机的角色,虽然这样会增加名称节点服务器的负担,但是,可以有效保 证数据的可靠新和系统可用性。
2、数据节点出错
每个数据节点会定期向名称节点发送“心跳”信息,向名称节点报告自己的状态。当数据节点发生故障,或者网络发生断网时,名称节点就无法收到来自一些数据节点的心跳信息,这时,这些数据节点就会被标记为“宕机”,节点上面的所有数据就会被标记为“不可读”,名称节点不会再给它们发送任何I/O请求。
3、数据出错
网络传输和磁盘错误等因素,都会造成数据错误。客户端在读取到数据后,会采用md5和shal对数据块进行校验,以确定读取到正确的数据。
在文件被创建时,客户端就会对每一个文件块进行信息摘录,并把这些信息写入同一个路径的隐藏文件里面。
当客户端读取文件的时候,会先读取该信息文件,然后,利用该信息文件对每个读取的数据块进行校验,如果校验出错,客户端就会请求到另外一个数据节点读取该文件块,并且向名称节点报告这个文件块有错误,名称节点会定期检查并且重新复制这个块。
