目录
一:HDFS主要组件及其功能
包括NameNode, SecondaryNmaeNode , DataNode.
其中,名称节点(NameNode)负责管理分布式文件系统的命名空间,保存了两个核心的数据结构,FsImage和EditLog。
FsImage:用于维护文件系统树以及文件树中的所有的文件和文件夹的元数据。
操作系统日志EditLog: 记录了所有针对文件的创建,删除,重命名等操作。
名称节点记录了各个块所在的数据节点的位置信息。
FsImage文件包含文件系统中
的所有目录和文件inode的序列化形式。每个inode是一个文件或者目录的元数据的内部访问。
二:SecondaryNameNode工作情况
1)SecondaryNameNode会定期和NameNode通信,请求其停止使用EditLog文件,暂时将新的写操作写到一个新的文件上来。
2)SecondaryNameNode通过http get方式从NameNode上获取FsImage和EditLog文件,并下载到本地的相应目录下。
3)SecondaryNameNode将下载下 来的FsImage载入到内存,然后一条一条地 执行EditLog文件中的各项更新操作,
使得 内存中的FsImage保持最新;这个过程就是 EditLog和FsImage文件合并
4)SecondaryNameNode执行完(3 )操作之后,会通过post方式将新的 FsImage文件发送到NameNode节点上
5)NameNode将从SecondaryNameNode接受到新的FsImage替换旧的EditLog文件,这个过程EditLog就变小了。
secondaryNameNode作用:
名称节点保存了所有的元数据信息,其中最核心的两大数据结构是FsImage和EditLog.如果这两个文件发生损坏,
那么整个HDFS实例将失效。因此HDFS设置了备份机制,把这些核心文件同步复制到备份服务器SecondaryNameNode上。
当名称节点出错时候,就可以根据备份服务器SecondaryNameNode上的FsImage和EditLog数据进行恢复。
专门用于FsImage和Edits的合并
三:HDFS的数据存储原理
3.1 冗余数据保存
HDFS作为一个分布式文件系统,为了保证系统的容错性和可用性,HDFS采用了多副本方式对数据进
行冗余存储,通常一个数据块的多个副本会被分布到不同的数据节点上。
这种多副本保存方式优点:
- 加快数据传输速度
- 容易检查数据错误
- 保证数据可靠性
3.2 数据存取策略
数据存放: