HDFS Architecture架构详解

1、HDFS的三个进程

1.1 NameNode(NN,名称节点)

存储元数据,内容如下:
a.文件名称
b.文件目录结构
c.文件属性(权限,创建时间,副本数)
d.文件–>哪些数据块–>分配到哪些datanaode节点

存储在内存中,由datanode在向namenode通过心跳机制周期性发送,持久化在fsimage文件中。
存放元数据的目录下有fsimage、edits log、VERSION、in_use.lock等诸多文件或目录。
该属性可以指定多个路径,以逗号分隔。一旦一个路径对应的磁盘故障,多个路径可保证HDFS仍能找到文件的元数据,从而避免系统故障。
在这里插入图片描述

fsimage:
记录文件元信息
路径:${HADOOP_HOME}/tmp/dfs/name/current/fsimagexxxxx
每一个fsimage文件就有一个.md5文件与之对应,该.md5文件记录文件的校验和

edits log:
记录操作日志,记录文件的写操作,包括创建、移动、追加文件
edits log文件表征了文件系统的最新状态

fsimage和edits log合并:

发生检查点的时候,合并前切换新的edits log文件,切换时更新seen_txid的值
	检查点: 
		60分钟  
            hdfs-site.xml中dfs.namenode.checkpoint.period属性确定
        当edits log中记录的事务操作一百万条时
            hdfs-site.xml中dfs.namenode.checkpoint.txns属性确定
    事务检查:
        检查edits log文件中的事务条数的时间间隔,默认一分钟
        hdfs-site.xml中dfs.namenode.checkpoint.check.period属性确定

in_use.lock
表明该current目录已经被占用,停止数据节点,则该文件消失。
通过in_use.lock文件,数据节点可以保证独自占用current目录,防止两个数据节点同时操作一个current目录,从而发生混乱。
在某些情况下,hdfs异常关闭,上一个数据节点产生的in_use.lock文件依旧存在,造成下一次数据节点无法访问元数据,或者是集群报错甚至无法启动。此时只需要将该文件删除即可。

1.2 DataNode(DN,数据节点)

存储数据块black和数据块校验和。
与NameNode通信(3秒发送一次心跳,30秒发送一次block信息)。
在这里插入图片描述
数据块默认配置是134217728字节,即128M,block是数据文件的最小单位,每一个块都会产生一个文件,当写满一个128M的数据块后,就会生成一个新的数据块继续,直到把文件写完为止。比如一个200M的文件保存到HDFS系统,那么会产生一个128M和72M的数据块文件。
数据块默认存放副本数3份。
hdfs-site.xml

#数据块大小以及 副本数
<property>
        <name>dfs.blocksize</name>
        <value>134217728</value>
</property>
<property>
        <name>dfs.replication</name>
        <value>3</value>
</property>

1.3 SecondaryNameNode(SNN,第二名称节点)

每隔一小时去nn拿fsimage+editlog文件,checkpoint,合并成新的fsimage.ckpt,再推送给nn。
在这里插入图片描述

2、HDFS架构

先附上官网地址
http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html
在这里插入图片描述
Client:
客户端,发起读写请求。

Namenode:
名称节点,可以看到在右面框里表示它存储的是Metadata元数据,里面包含Name,replicas…文件名和副本数;还举例说明/home/foo/data,3…

Datanode:
数据节点,黄色大框表示的是每个节点,即服务器,里面的绿色小框,表示存放了多少数据块。在Rack机架之间有replication副本数

Rack:机架

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值