赞
踩
目录
3.3.NameNode维护文件:fsimage与editlog
图2-1 Hadoop集群架构
NameNode和DataNode为存储节点(HDFS) JobTracker和TaskTracker为计算节点(MapReduce)
NameNode存储元数据,管理文件系统的命名空间(包括文件目录组织、属性维护、访问控制信息、文件操作日志记录、文件到块的映射信息、块当前所在的位置等),DataNode存储实际的数据。
JobTracker将任务拆分为多个小的任务,TaskTracker完成分配到的小任务。
图3-1 HDFS的结构
图3-2 名称节点和数据节点
NameNode存在内存中,当断电后就丢失,因此也要进行持久化存储。
fsimage就是在某一时刻,整个HDFS的快照,就是这个时刻HDFS上:所有的文件块和目录,分别的状态,位于哪些个DataNode ,各自的权限,各自的副本个数。
Editlog记录客户端对HDFS所有的更新操作,比如说移动数据,或者删除数据。
NameSpace镜像文件(fsimage),操作日志文件(edit log)这些信息被Cache在RAM内存中,这两个文件也会被持久化存储在本地硬盘。
比如,在1:00:00时刻记录了一个快照fsimage,那么从1:00:00到1:59:59期间的所有对HDFS更新的操作都会记录在editlog中。当NameNode发生故障时,重启服务器,Fsimage加上Editlog的数据就会恢复元数据。
每个DataNode会周期性的向Namenode发送心跳消息,报告自己所在DataNode的使用状态和block信息。
两种策略类型:轮询(round-robin)和可用空间(available space ):
表3-1 HDFS 1.0和HDFS 2.0架构对比
因此,引入一个新的节点SecondaryNamenode,专门用于FsImage和editlog的合并。
图3-3 SecondaryNamenode工作流程
图4-2 HDFS联邦架构
图5-1 HDFS写入数据流程
而读取文件的时候,NN尽量让client读取离它最近的DataNode上的副本,降低带宽消耗和读取时延。
图5-2 HDFS读取数据流程
图5-3 当副本系数是3时的HDFS数据副本放置情况
Hadoop 从 2.4 后开始支持异构存储:
图5-4 HDFS的LAZY_PERSIST内存存储
这样做的好处是,满足我们大部分情况是新数据更容易被读取使用。
配置好Hadoop集群之后,可以通过浏览器登录“http://[NameNodeIP]:50070”访问HDFS文件系统。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。