hadoop实战随笔_0718

来源:互联网 发布:海康网络摄像机维修 编辑:程序博客网 时间:2024/06/02 07:06

HDFS中块的大小固定,这样它就简化了存储系统的管理,特别是元数据信息可以和文件块内容分开存储。

块更有利于分布式文件系统中复制容错的实现。


HDFS体系结构中有两类节点,一类是NameNode,另一类是DataNode,这两类节点分别承担MasterWorker的任务。NameNode就是Master管理集群中的执行调度,DataNode就是Worker具体任务的执行节点。

NameNode管理文件系统的命名空间,维护整个文件系统的文件目录树及这些文件的索引目录。这些信息以两种形式存储在本地文件系统中个,一种是命名空间镜像,一种是编辑日志。从NameNode中你可以获得每个每个文件的每个块所在的DataNode,这些信息不是永久保存的,NameNode会在系统每次启动动态创建这些信息。

任务运行时,客服端通过NameNode获取元数据信息,和DataNode进行交互以访问整个文件系统。系统会提供一个类似于POSIX的文件接口,这样用户在编程时无需考虑NameNodeDataNode的具体功能。

DataNode是文件系统Worker的节点,用来执行具体的任务:存储文件块,被客户端和NameNode调用。同时它会通过心跳定时向NameNode发送所存储的文件块信息。


HDFS体系结构

HDFS采用master/slave架构对文件系统进行管理。一个HDFS集群是由一个NameNode和一定数目的DataNode组成的。

NameNode是一个中心服务器,负责管理文件系统的名字空间及对客户端文件的访问。

集群中DataNode一般是一个节点运行一个dataNode进程,负责管理它所在节点上的存储。HDFS展示了文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,一个文件其实被分成了一个或多个数据块,这些块存储在一组DataNode上。NameNode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录。它也负责数据块到具体DataNode节点的映射。DataNode负责处理文件系统客服端的读/写请求。在NameNode的统一调度下进行数据块的创建、删除和复制。


副本存放与读取策略:


安全模式:NameNode启动后会进入一个称为安全模式的特殊状态。处于安全模式的NameNode是不会进行数据块的复制的。NameNode从所有的DataNode上接受心跳信号和块状态报告。

块状态报告包括了某个DataNode所有的数据块列表。每个数据块都有一个指定的最小副本数。

NameNode检测确认某个数据块的副本数目达到最小值时,那么该数据亏啊就会被认为是副本安全的,在一定百分比(这个参数可配置)的数据块被NameNode检测确认安全后(再等待30秒),NameNode将退出安全模式状态。接下来他会确定还有哪些数据块的副本没有达到注定数目,并将这些数据块复制到其他DataNode上。


Hadoop采用那种极致来确保NameNode的安全:

1、备份NameNode上持久化存储的元数据文件,然后将其转储到其他文件系统中,这种转储是同步的、原子的操作。通常的实现方法是,将NameNode中的元数据转储到远程的NFS文件系统中。

2、系统中同步运行一个Secondary NameNode(二级NameNode),这个节点的主要作用就是周期性的合并编辑日志中的而命名空间镜像,以避免编辑日志过大。

Secondary NameNode的运行通常需要大量的CPU和内存去做合并操作,这就要求其运行在一台单独的机器上。

原创粉丝点击