菜鸟的hadoop的学习笔记--HDFS笔记

来源:互联网 发布:阿里云的解决方案ppt 编辑:程序博客网 时间:2024/06/04 18:05

本人纯属菜鸟,写这个博客目的主要是为了加深理解,高手勿喷!

MapReduce的补充:完整的Map/Reduce的作业过程会把输入的数据分成很多独立的块,Map任务以完全独立的方式来处理他们,Map处理后的中间结果会被排序,然后分组进入到Reduce任务中,作业的输入输出都会放在文件系统中,Map/Reduce框架和HDFS运行在相同的节点,那么计算和存储操作都会在同一个节点上面进行。Master负责把任务指派给Slave,Slave只负责执行Master指派给他的任务。Hadoop上面运行的作业需要指明程序的输入输出的地址,根据指定的接口来完成Map和Reduce任务函数的编写,同时包括这些函数的参数。

进入正题,关于HDFS的笔记。

HDFS主要使用了NameNode、DataNode和Client来进行文件系统的管理。NameNode可以看做是分布式文件系统的管理者,主要负责管理文件系统的命名空间、文件系统的配置信息等,Namenode会将文件系统的metadata存储在内存中,文件系统的metadata包括文件信息、每一个文件的对应的文件块的信息以及文件块在Datanode存储的信息,Datanode中保存了所有的Block的Metadata,周期的将Block信息发送给Namenode,Client就是需要获取HDFS文件的应用程序

(1)文件写入

a、client向Namenode发送文件写入的请求

b、namenode向client返回应答信息,应答信息包括其管理datanode的信息

c、client根据应答信息将大的文件分成对应大小的文件块,然后将这些文件块存储到相应的datanode上(根据DataNode的地址信息,按顺序将文件块放在datanode上面)

(2)文件读取

a、client向namenode发送文件读取的请求

b、namenode返回文件存储 的datanode信息

c、client读取datanode中的文件块信息

(3)文件块的复制

a、NameNode发现部分文件的Block不符合最小复制数这一要求,

b、通知datanode相互复制Block

c、datanode开始相互复制

HDFS的特点

1、文件块的放置,一个文件块有三个备份,一份放在NameNode指定的DataNode上,还有指定的备份的Datanode上面,还有一份放在同一rack(机架)的Datanode

2、心跳机制,用心跳机制监测Datanode健康状况,有点像webservice里面的心跳包机制来维护http连接。

3、数据复制,根据datanode里面的存储利用率,加入存储利用率超过了10%,就把这个Datanode里面的部分Block转移到其他的Datanode上面。

~~~~待续

0 0