第二章 HDFS

2.1 开源的GFS

设计目标:

1、硬件错误时常态而不是异常

2、流式数据访问

3、大规模数据集

4、简单一致性模型

5、移动计算比移动数据更划算

保障HDFS可靠性措施

1、冗余备份

HDFS将每个文件存储为一个数据块,默认为64MB,每个数据块都会存在多个副本。HDFS针对一个数据块写操作时只能有一个用户,DataNode使用本地文件系统存储HDFS数据。

BlockReport:当DataNode启动时,它会遍历本地文件系统,会产生一份HDFS本地数据块和本地文件对应的关系列表,并把它发送给NodeNode。

2、副本存放

副本书数为3时,本地机架不同节点存书两个副本,另一个机架存书一个副本。


 3、心跳检测

 HeartBeat:DataNode周期性的想NodeNode发送HeartBeat,NN收到说明DN工作正常。NN会记录没有HeartBeat的DN为宕机,将不会发给它们任何I/O请求。DN宕机会造成副本书下降,并低于制定的阀值,NN会不断检测这些数据块,在低于指定阀值时进行复制。

引发数据块重新复制有多种原因:DN不可用、数据副本损坏、DN磁盘错误、复制因子数增大

4、安全模式

系统启动时NameNode会进入一个安全模式,此时不会出现数据块的写操作。NN会收到所有DN用有的数据块列表信息,NN由此获得所有数据块信息,数据块达到最小副本数时,该数据块就被认为是安全的。在一定比例的数据块被NN检测为安全状态后,在等若干时间(书上就说若干),NN会退出这个模式。如果副本书不足,就进行复制

5、数据完整性检测

HDFS客户端负责checksum,在HDFS文件创建时,会计算每个数据块的校验和,并作为一个单独的隐藏文件保存。当客户端获取数据后进行校验和,与隐藏文件中的值进行比较,如果不相同将从其它DN获取该数据块的副本。

6、空间回收站

文件删除后并不会马上从HDFS中移除,删除后的文件会被保存在/trash目录里。默认为6个小时后自动删除。

空间释放延迟:删除的文件被转移到了/trash目录里,6小时后才会被删除,所以空间释放会有延迟。

7、元数据磁盘失效

镜像文件和事物日志是HDFS的核心数据结构。NN可以配置支持维护镜像文件和事物日志的多个副本,任何对镜像文件和事物日志的修改都会同步到副本上。副本会减低NN处理数据的速度,代价是可以接受的,HDFS是数据密集,非元数据密集。

8、快照

有思想,没实现

猜你喜欢

转载自mvplee.iteye.com/blog/2225825