目录
一,HDFS简介
①HDFS概念:Hadoop Distributed File System,是Hadoop项⽬的核⼼⼦项⽬,是分布式计算中数据存储管理的基础。⽀持海量数据的存储,允许⽤户将成百上千的计算机组成存储集群,HDFS 可以运⾏在低成本的硬件上,提供⾼吞吐量、⾼容错性的数据访问,⾮常适合⼤规模数据集上的应⽤。
②HDFS优缺点:
HDFS优点:高容错性(多个副本且副本丢失可快速恢复);处理大数据;高扩展性(动态扩展集群节点);低成本运行;
HDFS缺点:不适合低延时的数据访问;不适合存储大量小文件;不支持并发写入(也就是一次只能运行一个进程);支持文件追加不支持文件随机修改;
二、HDFS架构
①NN(NameNode)是HDFS的管理者,负责管理和维护 HDFS 的命名空间,配置副本策略(根据机架感知与副本冗余存储策略选择节点。⼀个文件分割为若干个数据块,这些数据块并不⼀定存储在相同的数据节点上),管理数据块映射信息,处理客户端读写请求。
②DataNode:NN下达命令,DN(DataNode)执行实际的操作:DN存储实际的数据块(block),数据块副本默认为 3,数据块的⼤⼩默认为 128 M,执⾏数据块的读/写操作。
③2NN(secondary NameNode):并⾮NN的热备,当NN挂掉的时候,并不能马上替换NN并提供服务,2NN是辅助NN,分担其工作量,比如定期合并fsimage和edits,并推送给NN 。
④Client:就是客户端。文件上传给HDFS时进行文件切分,与NN交互,获取⽂件的位置信息。
与 DN交互,读取或者写入数据。Client 提供⼀些命令来管理 HDFS。也可以通过⼀些命令来访问 HDFS。
三、HDFS的工作机制
了解每部分的工作机制之前,我们要知道的是,fsimage是命名空间镜像⽂件。edits是操作⽇志⽂件。元数据是存放在内存中的,但是如果元数据只存在在内存中的话,一旦断电数据就全部会消失,所以提出了fsimage文件,该文件在磁盘中备份元数据,但是当数据在内存中更新之后,又跑到fsimage里面更新数据就会非常麻烦,效率也很低,所以又拿出一个文件edits,用这个文件存储更新后的数据,然后引入2NN,让2NN对两个文件进行合并,实现元数据更新的效果,看到这里NN与2NN的关系和工作机制就已经很明了了。
①NN,2NN工作机制:NN管理维护fsimage和edits,首先NN启动,创建fsimage和edits,如果已经创建好了就直接加载到内存,client对文件进行增删改操作,NN记录日志并且更改内存中的数据。引⼊⼀个新的节点2NN,专门用于fsimage和edits的合并,2NN询问是否需要checkpoint,然后请求checkpoint,NN滚动正在写的日志文件并将日志文件拷贝到2NN,2NN把日志和镜像在内存中合并,生成新的镜像文件,并拷贝到NN,NN再把这个文件重新命名为fsimage。
DN的工作机制:DN启动后向NN注册,注册成功后,每六个小时上报所有块信息,心跳三秒一次,每次心跳带有NN的操作命令,超过10min+30s没有收到心跳就认为该节点不可用。