文档章节

HDFS【2.5.1】系列1:HDFS的核心数据结构---元数据

强子1985
 强子1985
发布于 2014/11/15 13:36
字数 661
阅读 227
收藏 2

我们都知道Hadoop的底层是HDFS-Hadoop Distributed File System.也就是Hadoop分布式文件系统。

所有的运算都是基于HDFS文件的,它的核心关键词有:主从NameNode VS DataNode.

-----------其中NameNode上存储的就是元数据---描述数据文件的meta信息。

存在形式有:内存信息+硬盘文件信息。

这段时间,就让我们一起来了解HDFS的元数据以及HDFS文件系统的要义吧。

-------------------------------------------------------------------------------------------------

试想,如果让我们自己设计一个文件系统,我们需要元数据存储哪些信息?

其实这取决于信息得到哪些功能?

个人认为功能包括:

1)namenode和所有datanode的IP,端口,文件夹,容量等信息。这相当于一个总体的文件系统框架描述。

2)每个datanode的文件的层次描述,文件目录关系。这个比1就更细致了。

3)对于某个文件,知道拆分了几块,每块的大小,备份情况,分别分布在哪些datanode上的哪些路径上。

从1我们可以得到分布式文件系统框架的骨架,从2我们可以得到分布式文件系统的血肉,从3我们可以得到具体的访问一个文件的方式。

有了以上3个,实际上就是namenode的元数据信息的组成部分,一切从应用的需求出发才可以得到设计图。

-------------------------------------------------------------------------------------------------

启动时,元数据从硬盘里被FSImage读取到内存中。

在持久化时,元数据被FSImage持久化到硬盘中。

同时硬盘中也会存放操作日志edits.我目前的理解是:把操作日志的行为累加起来---》最终的元数据

这个也就像是redis里干的一样了。很多数据库也是这么操作的,这个没啥好说的,很简答!

-------------------------------------------------------------------------------------------------

HDFS也引入了INode,这实际上跟linux中的文件系统中的INode是一样的,其次就是由于是分布式文件系统

所以每个文件的分片在hdfs中就成了Block。块。

这里必须要强调:块是按照物理大小分的,而不是分局逻辑大小,这样会引入什么问题?

就是一个逻辑记录可能会分到2个块中,而这2个块可能还是跨机器的。

这些hadoop都会解决。以后再讨论。

-------------------------------------------------------------------------------------------------

理论讲得再多,也不及代码来得实在而痛快。

下面就讲一讲HDFS的format究竟做了哪些事情!

 

 

© 著作权归作者所有

共有 人打赏支持
强子1985

强子1985

粉丝 864
博文 992
码字总数 675251
作品 8
南京
架构师
Hadoop系列学习笔记(一)HDFS架构

前言 本篇文章翻译了Hadoop系列下的HDFS Architecture,原文最初经过笔者翻译后大概有6000字,之后笔者对内容进行了精简化压缩,从而使笔者自己和其他读者们阅读本文时能够更加高效快速的完成...

time刺痛你的眼
2017/12/28
0
0
HDFS入门笔记------架构以及应用介绍

引言—HDFS的重要性: Hadoop的定义:适合大数据的分布式存储与计算的一个平台,其中大数据的分布式存储就是由HDFS来完成的,因此掌握好HDFS的相关概念与应用非常重要! 本篇博客将从以下几个...

a2011480169
2016/06/14
0
0
Hadoop学习笔记之HDFS

hadoop是一个适合大数据处理的分布式的存储以及计算平台,我个人感觉称他为平台是 非常贴切的,因为不管是hive、hbase等这类产品都是需要依赖hadoop的两个核心hdfs和mapreduce。hdfs和mapre...

ivan-Zhao
2015/11/06
0
0
Eclipse连接Hadoop分析的三种方式

Hadoop一般都部署在linux平台上,想让Hadoop执行我们写好的程序,首先需要在本地写好程序打包,然后上传到liunx,最后通过指定命令执行打包好的程序;一次两次还可以,如果进行频繁的调试是很...

ksfzhaohui
2016/10/27
1K
0
Hadoop集群(第8期)_HDFS初探之旅

1、HDFS简介   HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价...

Carl_
2015/06/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MySQL 到底支不支持事务嵌套?

最近开发中遇到了使用MySQL,多次开启事务,出现了数据错乱问题,伪代码如下: begin; # 操作1 begin; # 操作2 rollback; 执行完后出现了操作1的数据真正写入,只有操作2的数据回滚...

宇润
43分钟前
5
0
fastDfs应用(安装过程待写)

1.效果 2.安装 2.1 导入已经安装好fastDFS的镜像 2.1.1 导入镜像 2.1.2 更改系统兼容性 2.1.3 开机 2.1.4 修改 一下内容 2.1.4.1 修改系统的ip 原来系统ip...

Lucky_Me
47分钟前
5
0
5. Python3源码—字符串(str)对象

5.1. 字符串对象 字符串对象是“变长对象”。 5.1.1. Python中的创建 Python中字符串(strs)对象最重要的创建方法为PyUnicode_DecodeUTF8Stateful,如下Python语句最终会调用到PyUnicode_D...

Mr_zebra
今天
4
0
第十章:路由网关(Zuul)进阶:过滤器、异常处理

第十章:路由网关(Zuul)进阶:过滤器、异常处理 简单介绍了关于Zuul的一些简单使用以及一些路由规则的简单说明。而对于一个统一网关而言,需要处理各种各类的请求,对不同的url进行拦截,或者...

DemonsI
今天
4
0
nginx屏蔽指定接口(URL)

Step1:需求 web平台上线后,需要屏蔽某个服务接口,但又不想重新上线,可以采用nginx屏蔽指定平台接口的办法 Step2:具体操作 location /dist/views/landing/UNIQUE_BEACON_URL { re...

Linux_Anna
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部