第三章 HDFS

本文介绍了Hadoop的分布式文件系统HDFS,包括其设计理念、优点和缺点。HDFS由NameNode、DataNode和SecondNameNode组成,用于存储大数据并保证高容错性。数据块默认为64MB,NameNode管理元数据,DataNode存储Block,副本策略确保数据安全。SecondNameNode则帮助NameNode合并元数据,提高系统效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.  HDFS有三部分组成分别是NameNode, DataNode,SecondNameNode。

1.1 其设计理念:存储大数据(GB,TB,PB级别的)

1)  优点:

高容错性:数据有多个副本;副本丢失,自动恢复。

适合批量处理:移动计算而非数据。

适合大数据处理

流式文件访问:一次写入,多次读取;保证数据的一致性。

可在廉价的机器上部署。

2)  缺点:

低延迟:即是离线计算

小文件存取:占用太多的NameNode的内存;磁盘碎片多

不支持并发修改文件。

1.2  HDFS架构图:

 

客户端访问HDFS;首先与NameNode交互,获取文件元数据信息;通过元数据找到对应的DataNode,然后客户端直接访问DataNode读取和写入数据。

1.3 HDFS基本概念

1.      数据块(Block):大文件会被分割成多个block进行存储,Block大小默认为64MB。每一个block会在多个Datanode上存储多份副本,默认是3份。

2.      Namenode:Namenode负责管理文件元数据(文件目录、文件和block的对应关系以及block和Datanode的对应关系)当然还有副本的个数。

3.      Datanode就负责存储Block,当然大部分容错机制都是在Datanode上实现的。同时,每个DataNode会向NameNode发送心跳保持与其联系(3秒一次),如果 NameNode10分钟没有收到DataNode的心跳,会认为该DataNode已经丢失,并从其它节点拷贝dataNode的Block到其它的存活的DataNode上。

4.      Block的副本存放策略

1.   第一个副本,会根据资源使用不忙(磁盘不太满,cpu使用率不高),随机找到一个节点存放。

2.  第二个副本,放在与第一个副本不同机架的节点上。

3.  第三个副本,放在与第二个副本相同的机架的节点上。

4.  如果有更多副本,随机放置。

5. SecondaryNameNode:

  1.作用:帮助NameNode合并edits和fsimage(即日志文件),减少NameNode的启动时间。

     2.合并时机:

1.根据配置文件设置的时间间隔fs.checkpoint.period默认3600秒

                2.根据这是edits log大小fs.checkpoint.size规定edits文件的最大容量。默认64MB

3.SecondaryNameNode合并edits和fsimage流程

                        

1) 当时间间隔大于你所配置的值时,或者edits大于你所配置的大小时,SecondaryNameNode 开始合并。

2) 合并时,NodeName首先生成一个新的edits继续记录日志。

3) SecondaryNameNode通过网络拷贝后,合并成fsimage.ckpt,并传输到NameNode.

4) NameNode将fsimage.ckpt替换fsimage

5) 再次达到触发条件,再次合并。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值