首页 > 其他 > 详细

管理hadoop

时间:2016-01-18 12:21:48      阅读:208      评论:0      收藏:0      [点我收藏+]

一、HDFS

  1. 永久性数据结构

 1.1 namde的目录结构

[root@datanode1 name]# cd /data0/hadoop/dfs/name/current/
[root@datanode1 current]# ls
edits  edits.new  fsimage  fstime  VERSION
[root@datanode1 current]# ls -l
总用量 56
-rw-rw-r--. 1 hadoop hadoop     789 1月  15 16:59 edits
-rw-rw-r--. 1 hadoop hadoop 1049088 1月  15 18:00 edits.new
-rw-rw-r--. 1 hadoop hadoop   14557 1月  14 18:47 fsimage
-rw-rw-r--. 1 hadoop hadoop       8 1月  14 18:47 fstime
-rw-rw-r--. 1 hadoop hadoop     100 1月  14 18:47 VERSION

 1.1.2 VERSION文件是一个JAVA属性,包含正在运行的HDFS的版本信息

[root@datanode1 current]# cat VERSION 
#Thu Jan 14 18:47:15 CST 2016
namespaceID=688384215
cTime=0
storageType=NAME_NODE
layoutVersion=-32

layoutVersion是一个负整数,描述HDFS持久数据结构(也称布局)的版本,但该版本号与hadoop发布包的版本号无关。只要布局变更,版本号便会递增(如,版本号-18之后是-19),此时,HDFS也需升级。否则,磁盘仍然使用旧版本布局,新版本的namenode或datanode无法正常工作。

namespaceIT:是文件系统唯一标识符,是在文件系统首次格式化时设置的。

cTime:标记了namenode存储系统的创建时间。对于刚刚格式化的存储系统,这个属性值为0

storageType:说明该存储目录包含有namenode的数据结构


 1.1.3 文件系统映像和编辑日志

  文件系统客户端执行写操作时(如创建和移动文件),这些操作,首先被记录到编辑日志中。namenode在内存中维护文件系统的元数据;当编辑日志被修改时,相关元数据信息也需要更新。内存中元数支技客户端的读请求。

  每次执行写操作后,且向客户端发送成功代码之前,编辑日志需要更新和同步。当namenode向多个目录 写数时,只有在所有写操作均执行完毕之后方可返回代码,以确保任何操作不都不会因为机器故障而丢失。


  fsimage:是文件系统元数据一个永久检查点。如果namenode发生故障,可以先把fsimage文件载入到内存重构新近的元数据,再执行编辑日志 记录各项操作

  fsimage包含文件系统中所有目录和文件inode的序列化信息。每个inode是一个文件或目录的元数据的内存部描述方式。对于文件来说,包含信息有“复本级别”(replication level),修改时间和访问时间,访问许可,块大小,组成一个文件块等;对于目录来说,包含有修改时间,访问许可和配额元数据等信息。

  数据块存储在datanode中,但fsimage文件不描述datanode,取而代之的是,namenode将这种块映射关系放在内存中。当datanode加入集群时,namenode向datanode索取块列表以建立映射关系;namnode还将定期征询datanode以确保它拥有最新的块映射。

  运行辅助namenode,为主namenode内存中的文件系统元数创建检查点

(1)辅助namenode请求主namenode停止使用edits文件,暂时将新的写操作记录到一个新文件中。

(2)辅助namenode从主namenode获取fsimage和edits文件(采用HTTP GET)

(3)辅助namenode将fsimage文件载入内存,逐一执行edits文件中操作,创建新fsimages文件。

(4)辅助namenode将新fsimage文件发送回主namenode(使用HTTP POST)

(5)主namenode用从辅助namenode接收的fsimage文件替换旧的fsimage文件;用步聚1所产生的edits文件替换旧edits文件。同时,还更新ftime文件来记录检查点执行时间。

 

  创建检查点的触发条件接爱两个配置参数控制。

 (1)辅助namenode每隔一小时(由fs.checkpoint.period属性设置 ,以秒为单位)

 (2)当编辑日志大小时到达64MB(由fs.checkpoint.size属性设置,以字节为单位)时,即使未到一小时也会创建检查点。系统每隔5分钟检查一次编辑日志大小。


本文出自 “散人” 博客,请务必保留此出处http://zouqingyun.blog.51cto.com/782246/1736088

管理hadoop

原文:http://zouqingyun.blog.51cto.com/782246/1736088

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!