大数据培训新三板挂牌机构 股票代码:837906 | EN CN
异常解决方案—NameNode 宕机读写测试
异常解决方案—NameNode 宕机切换实验
异常解决方案—Data Node 配置
异常解决方案—Backup Node配置
异常解决方案—NameNode配置
异常解决方案—6.5.1异常情况分析
安装及配置
5NameNode安装及配置以及6BackupNode安装及配置
6.4.4虚拟机集群架设
6.4.3安装JDK
3.配置操作系统
2.创建虚拟机与安装操作系统
6.4构建实验环境
实验方案说明
故障切换机制
日志池(journal spool)机制
元数据操作情景分——BackupNode更新磁盘上的日志文件
元数据操作情景分——NameNode通过日志输出流......
元数据操作情景分——NameNode将日志写入日志文件
元数据操作情景分——NameNode更新内存镜像
元数据操作情景分——客户端执行命令流程
元数据操作情景分
Hadoop的Backup Node方案——运行机制分析(5)
Hadoop的Backup Node方案——运行机制分析(4)
Hadoop的Backup Node方案——运行机制分析(3)
Hadoop的Backup Node方案——运行机制分析(2)
Hadoop的Backup Node方案——运行机制分析(1)
Hadoop的Backup Node方案——系统架构
Hadoop的Backup Node方案—Backup Node 概述
元数据可靠性机制以及使用说明
Checkpoint 过程情景分析
元数据更新及日志写入情景分析
NameNode启动加载元数据情景分析
Hadoop的元数据备份机制的进行分析
元数据应用场景分析
Format情景分析
磁盘元数据文件
HDFS之代码分析——元数据结构
HDFS之内存元数据结构
什么是HDFS的元数据
Hadoop中DRDB方案和AvatarNode方案
Hadoop中常用各方案的对比
Hadoop的BackupNode方案
Hadoop的CheckpointNode方案
Hadoop的SecondaryNameNode方案
Hadoop的元数据备份方案
影响HDFS可用性的几个因素
什么是高可用性? 详细解析
HDFS系统架构简介
如何安装和配置Hadoop集群
如何在Windows下安装Hadoop
在MacOSX上安装与配置Hadoop
Linux下安装Hadoop的步骤
Hadoop的集群安全策略介绍
Hive的数据管理介绍
HBase的数据管理介绍
HDFS的数据管理介绍
Hadoop计算模型之 MapReduce 简介
Hadoop于分布式开发
Hadoop体系结构介绍
Hadoop的项目结构详解
一文读懂Hadoop

HDFS的数据管理介绍

于2018-01-10由小牛君创建

分享到:


HDFS是分布式计算的存储基石,Hadoop分布式文件系统和其他分布式文件系统有很多类似的特性:

对于整个集群有单一的命名空间;

具有数据一致性,都适合一次写入多次读取的模型,客户端在文件没有被成功创建之前是无法看到文件存在的;

文件会被分割成多个文件块,每个文件块被分配存储到数据节点上,而且会根据配置由复制文件块来保证数据的安全性。

通过前面的介绍和图1-3可以看出,HDFS通过三个重要的角色来进行文件系统的管理:NameNodeDataNodeClientNameNode可以看做是分布式文件系统中的管理者,主要负责管理文件系统的命名空间、集群配置信息和存储块的复制等。NameNode会将文件系统的Metadata存储在内存中,这些信息主要包括文件信息、每一个文件对应的文件块的信息和每一个文件块在DataNode中的信息等。DataNode是文件存储的基本单元,它将文件块(Block)存储在本地文件系统中,保存了所有BlockMetadata,同时周期性地将所有存在的Block信息发送给NameNodeClient就是需要获取分布式文件系统文件的应用程序。

1)文件写入

1ClientNameNode发起文件写入的请求。

2NameNode根据文件大小和文件块配置情况,返回给Client所管理的DataNode的信息。

3Client将文件划分为多个Block,根据DataNode的地址信息,按顺序将其写入到每一个DataNode块中。

2)文件读取

1ClientNameNode发起文件读取的请求。

2NameNode返回文件存储的DataNode信息。

3Client读取文件信息。

3)文件块(Block)复制

1NameNode发现部分文件的Block不符合最小复制数这一要求或部分DataNode失效。

2)通知DataNode相互复制Block

3DataNode开始直接相互复制。作为分布式文件系统,HDFS在数据管理方面还有值得借鉴的几个功能:

文件块(Block)的放置:一个Block会有三份备份,一份放在NameNode指定的DataNode上,另一份放在与指定DataNode不在同一台机器上的DataNode上,最后一份放在与指定DataNode同一RackDataNode上。备份的目的是为了数据安全,采用这种配置方式主要是考虑同一Rack失败的情况,以及不同Rack之间进行数据复制会带来的性能问题。

心跳检测:用心跳检测DataNode的健康状况,如果发现问题就采取数据备份的方式来保证数据的安全性。

数据复制(场景为DataNode失败、需要平衡DataNode的存储利用率和平衡DataNode数据交互压力等情况):使用Hadoop时可以用HDFSbalancer命令配置Threshold来平衡每一个DataNode的磁盘利用率。假设设置了Threshold10%,那么执行balancer命令时,首先会统计所有DataNode的磁盘利用率的平均值,然后判断如果某一个DataNode的磁盘利用率超过这个平均值,那么将会把这个DataNodeBlock转移到磁盘利用率低的DataNode上,这对于新节点的加入十分有用。

数据校验:采用CRC32做数据校验。在写入文件块的时候,除了会写入数据外还会写入校验信息,在读取的时候则需要先校验后读入。

单个NameNode:如果单个NameNode失败,任务处理信息将会记录在本地文件系统和远端的文件系统中。

数据管道性的写入:当客户端要写入文件到DataNode上时,首先会读取一个Block,然后将其写到第一个DataNode上,接着由第一个DataNode将其传递到备份的DataNode上,直到所有需要写入这个BlockDataNode都成功写入后,客户端才会开始写下一个Block

安全模式:分布式文件系统启动时会进入安全模式(系统运行期间也可以通过命令进入安全模式),当分布式文件系统处于安全模式时,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了在系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略进行必要的复制或删除部分数据块。在实际操作过程中,如果在系统启动时修改和删除文件会出现安全模式不允许修改的错误提示,只需要等待一会儿即可。