Hadoop2.2.0伪分布式中HDFS简述

一、元数据概念:

matdata:元数据信息, 放在内存中元数据信息就是数据的记录信息。
即一条元数据中保存的当前文件名(例如: /test/a.log
该文件被保存副本的数量(默认为 3),
该文件被分为几份;
每份保存在哪个节点;

二、关于NameNode作用:

1)、是系统的管理节点,维护者整个文件系统的文件目录树,
2)、维护文件/目录的数据信息和每个文件对应的数据块列表,
3)、接收用户客户端的操作请求(上传,下载,删除,块的复制等)


NameNode工作特点:

1)、NameNode始终在内存中保存metadata,用于快速的处理读请求。当刚启动时会加载磁盘中的 fsimage文件进内存,作为metadata。
当有写请求时,首先客户端需要向NameNode交流,nameNode将元数据信息给客户端,告诉客户端当前要上传的数据应该写到那个块中(数据写不是并发的),客户端向磁盘中写数据,在写数据的同时NameNode会向edits文件中保存客户端的操作日志,记录哪个客户端向哪写块写入了数据,是否成功。且只有当写入成功后,会在内存中加入一条元数据信息,记录之前的写入操作。最后向客户端返回相关信息。
2)、Hadoop会维护一个叫做fsimage的文件(即NameNode中元数据MetaData在磁盘的镜像,在hadoop启动时会加载fsimage  进入内存作为MetaData),但在hadoop1.0以及2.0的伪分布式中fsimage不会与内存中的元数据metaData保持实时一致。此外倘若二者数据不同步会产生问题,故而为了保证二者数据的一致,SecondaryNameNode每隔一段时间(或当edits文件达到一定大小),将磁盘中的edits与fsimage合并产生一个新的fsimage文件来更新NameNode内存中的MetaData,且若在合并的同时仍有客户端向hdfs进行写操作,此时的日志记录在一个新的edits文件中,一旦合并且更新成功,则将之前的edits废弃,使用新的内容为空的edits记录此后的新的客户端操作。(相当于每合并一次,fsimage便得到更新,同时清空一次edits文件,实现fsimage与edits同时更新,以此达到每隔一段时间更新磁盘fsimage文件并利用该文件更新内存中MetaData数据

在Hadoop安装目录下的/tmp/dfs/目录下,有三个文件:(tmp目录是格式化NameNode时生成的)

data:保存DataNodes保存数据相关的
name:nameNode相关的元数据
namesseconddayr:帮助NameNode同步数据

故在/Hadoop/hadoop-2.2.0/tmp/dfs/name/current/目录下可以看到以下文件:包含edits和fsimage文件。(/Hadoop/hadoop-2.2.0/为我的Hadoop的安装目录

fsimage:备份内存当中matdata元数据信息序列化到磁盘,启动时会将磁盘内容读取到内存
注:hadoop1.0和2.0的伪分布式中fsimage与内存当中的元数据信息不是实时同步的,而仅仅是保存一段时间内的内存中元数据的信息,真正的集群分布式才是实时同步的。
edits:操作日志文件。


SecondaryNameNode的作用:

详细请参考:http://www.cnblogs.com/likehua/p/4023777.html

在hadoop1.x中:nameNode和SecondaryNameNode默认在一起即一个节点,但是不安全 ,故通常将二者分开部署。而 在hadoop2.0集群中根本就没有SecondaryNameNode,只有在伪分布式中才有。

详细工作流程(以hadoop1.x为例):
1、secondarynameNode通知namenode 切换edits文件,防止在合并fsimage和edits时有客户端向磁盘写入数据的情况,此时客户端的操作日志将记录到新的edits文件中。
2、 secondarynameNode从NameNode下载获得fsimage和edits(通过http),secondarynameNode与nameNode为安全起见,通常会部署在不同的节点。
3、secondarynameNode将fsimage和edits载入本地内存,然后开始合并 ,生成新的fsimage文件。即先反序列化进入内存以合并两个文件生成新的fsimage,之后再将新生成的文件序列化到本地磁盘。
4、secondarynameNode将新的fsimage发给namenode节点
5、 namenode用新的fsimage替换旧的fsimage
  
至于SecondaryNameNode何时从NameNode节点下载fsimage与edits文件进行合并即CheckPoint?有以下两种机制:
1、fs.checkpoint.period 指定两次checkpoint的最大时间间隔,默认3600秒。
2、 fs.checkpoint.size 规定edits文件的最大值,一旦超过这个值则强制checkpoint,不管是否到达最大时间间隔。默认大小是64M

三、关于DataNodes

提供真实文件数据的存储服务,以文件块的方式存储数据,hadoop1.x默认块的大小为64M。hadoop2.x默认块的大小为128M.且不同于普通的文件系统,HDFS中如果一个文件小于默认数据块的大小,并不会占用整个数据块的存储空间。每一个块在HDFS文件系统中都有一个对应的.meta 后缀的记录描述信息的文件
从linux中上传到HDFS的文件子系统中的文件会被HDFS存放到以下目录中: /Hadoop/hadoop-2.2.0/是我的Hadoop的安装目录
/Hadoop/hadoop-2.2.0/tmp/dfs/data/current/BP-21602553-192.168.8.88-1461151211522/current/finalized
Replication多副本,默认是3个,即对每个块存三个副本。配置文件hdfs-site.xml的dfs.repliaction属性,
注:DataNodes通过心跳机制向管理者NameNode汇报情况,如果NameNode很长时间没有收到某个DataNodes传来的信息,表明该DataNode当掉了,如果检测到有一份失效,NameNode会给一些存储同样备份数据的机器发送指令,使其再复制一份副本保存到其他机器上,保证对于每个块随时都有三个副本可用。

四、文章参考

http://www.cnblogs.com/likehua/p/4023777.html
Hadoop权威指南(第三版),Tom white ,清华大学出版社
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值