关闭

第三章 HDFS

标签: Apache HadoopHadoophadoop教程
206人阅读 评论(0) 收藏 举报
分类:

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) 再次达到触发条件,再次合并。





0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5047次
    • 积分:191
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:7篇
    • 译文:0篇
    • 评论:0条
    文章分类