HDFS设计原理、核心概念以及上传原理
每个文件都是由一个一个的Block组成(Block默认大小128M),例如一个300M的文件会被保存成3个Block,而一个3K的文件也统一会占用一个Block,只不过这个Block只会占用3K
DataNode使用Block存放的原因:
鉴于DataNode的保存机制,在使用hdfs 的时候需要注意什么
整个HDFS采用两类节点管理,即一个NameNode和多个DataNode。
管理整个文件系统的目录树以及所有的文件、目录和元数据。元数据持久化为两种形式:
fsimage、edit log会在首次hdfs系统formate的时候创建,再以后的 formate 会对fsimage、editlog进行删除后重建,不会对整个系统文件产生影响。重启集群后DataNode会重新想NameNode发送Block信息,NameNode重新获得整个集群的数据
数据节点负责存储和提取Block,读写请求可能来自namenode,也可能直接来自客户端。数据节点周期性向Namenode汇报自己节点上所存储的Block相关信息。
产生原因:
由于在一个庞大集群当中会有很多操作,而将所有操作都记录到同一个节点的NameNode的editlog上时,可能存在内存不够用的情况。
解决办法:
HDFS Federation是一种横向拓展的方式,在HDFS Federation中,每个NameNode都只记录一个命名空间。例如:/usr,可以只交给一个NameNnode管理
在Namenode的上传保存一个文件时,是以Block的形式保存,默认会保存三份。
备份机制
产生原因:
当NameNode出现某些异常宕机时,整个系统将变得无法访问
解决办法:
HDFS HA(High Availability),通过启动两个NameNode,分别处于Active-Standby。当Active节点失效时,Standby会顶替上,在处理的过程中也没有任何中断的迹象
High Availability实现共享的方式有两种