Hadoop深入浅出之HDFS分析 第一讲:基本概念
来源:互联网 发布:c语言short占几个字节 编辑:程序博客网 时间:2024/04/28 04:59
第一讲:基本概念
1.1数据块(block)
默认基本存储单位块大小为:64M。JDW采用128M作为块大小;
和普通文件系统相同的是,HDFS中的文件是被分成64M一块进行数据块存储的。
不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不会占用整个数据块的存储空间.
blk_<id>保存的是HDFS的数据块,其中保存了具体的二进制数据。
blk_<id>.meta保存的是数据块的属性信息:版本信息,类型信息和checknum
当一个目录中的数据块达到一定数量的时候,则会创建子文件夹来保存数据块及数据块属性信息。
1.2元数据节点文件夹结构
VERSION文件是java properties文件,保存了HDFS的版本号。
namespaceID=788590977cTime=0
storageType=NAME_NODE
layoutVersion=-32layoutVersion是一个负整数,保存了HDFS的持续化在硬盘上的数据结构的格式版本号。当HDFS的持久化数据结构发生了变化,如增加了一些其他的操作或者字段信息,则版本号会在原来的基础上减1;Hadoop1.2.1版本中,layoutVersion的值是-41,它与Hadoop的发型版本号是两回事;layoutVersion主要在fsimage和edit日志文件、数据存储文件中使用。
namespaceID是文件系统的唯一标识符,是在文件系统初次格式化时生成的。在HDFS集群启动以后,使用namespaceID来识别集群中的Datanode节点,也就是说,在HDFS集群启动的时候,各个Datanode会自动向Namenode注册获取到namespaceID的值,然后将该值存储到Datanode节点的VERSION文件中。
cTime:表示Namenode存储对象(即Fsimage对象)创建的时间,但是在初始化时它的值是0。如果由于layoutVersion发生变化触发了一次升级过程,则会更新该时间字段的值。
storageType表示此文件夹中保存的是元数据节点的数据结构。
1.3文件系统命名空间映像文件及修改日志
当文件系统客户端(Client)进行写操作时,首先把它记录在修改日志中(edit log)
元数据节点(Namenode)在内存中保存了文件系统的元数据信息。在记录了修改日志(edit log)后,元数据节点(Namenode)则修改内存中的数据结构。
每次的写操作成功之前,修改日志都会同步(sync)到文件系统。
fsimage文件,也即命名空间映像文件,是内存中的元数据在硬盘上的checkpoint,它是一种序列化的格式,并不能够在硬盘上直接修改。
同数据的机制相似,当元数据节点(Namenode)失败时,最新的checkpoint的元数据信息会从fsimage加载到内存中,然后逐一重新执行修改日志中的操作。
从元数据节点(Secondary Namenode)就是用来帮助元数据节点(Namenode)将内存中的元数据信息checkpoint到硬盘上的。
- Hadoop深入浅出之HDFS分析 第一讲:基本概念
- Hadoop之HDFS基本概念
- hadoop起步之HDFS基本概念
- hadoop系列教程第一讲:基本概念
- 第一讲 基本概念
- 第一讲 基本概念
- HDFS原理分析:基本概念
- HDFS原理分析:基本概念
- hadoop源码解析之hdfs内部结构分析
- Hadoop第一讲
- JobSchedule之源码分析-第一讲
- 陈越《数据结构》第一讲 基本概念
- (笔记)数据结构第一讲-基本概念
- 大数据学习篇:hadoop深入浅出系列之HDFS(二)——HDFS体系结构
- Hadoop源代码分析 - HDFS
- Hadoop源码分析-HDFS
- Hadoop: HDFS数据流分析
- hadoop架构分析之启动脚本分析(hdfs部分)
- 多少妹纸在平安夜被骗出去说吃苹果
- 深入java--线程
- Java的类类型和类的动态加载
- TCP/UDP Socket编程步骤
- iOS 之UIViewController的生命周期
- Hadoop深入浅出之HDFS分析 第一讲:基本概念
- C# HexEdit
- javascript变量声明提升
- 剑指offer 面试题21 实现带有min函数的栈
- UIButton类型属性简单归纳以及自定义按钮的设置
- 还是写点东西吧!
- 如何让背景半透明
- fatal: the remote end hung up unexpectedly
- Could not load the FreeMarker template named 'select'