HDFS总结

Posted 请不要对我说ERROR

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS总结相关的知识,希望对你有一定的参考价值。

了解HDFS首先需要了解什么是dfs,dfs就是把文件分布的保存在计算机集群上,集群中基本上可分为两类节点,一类是master,一类是slave

1.HDFS的设计

HDFS是hadoop的分布式文件系统,他可以用来存储超大规模的数据,并运行于廉价的商业集群上,提供简单的文件模型,以及强大的跨平台性。

hdfs不适用于低延时的数据访问,无法高效的存储小文件,并不支持多用户写入和随机读写。

2.HDFS中的概念

2.1数据块

HDFS文件系统的存储抽象是数据块存储,

1)使用数据块抽象可以使文件的大小超越磁盘的大小,存储在集群的多个磁盘上

2)可以简化子系统的设计是文件元数据与数据分离存储

3)容易做数据备份

2.2 Namenode and DataNode

namenode节点负责保存dfs的的命名空间,包括FsImage与EditLog两个数据结构

FsImage 用于维护用来维护文件系统树中的所有文件及文件夹元数据

FsImage 不记录每个数据块存储的具体节点,而是又名称节点映射保存在内存,当数据节点加入hdfs,数据节点会把保存的数据块信息告诉名称节点。

EditLog记录文件的增删重命名等操作

HDFS总结

名称节点的启动 :

加载FsImage到内存 ->  执行EditLog->合并fsimage,EditLog并建立新的

新的FsImage 和空白EditLog。

解决名称节点运行期间EditLog不断变大的问题:

一直写editlog同样会不断变大会使名称节点重新运行时速度降低,采用第二 名称节点解决

HDFS总结

解决流程:

secondraynamenode定期与namenode通信使name停止写editlog,生成一个neweditlog -> secondraynamenode 获取 namenode上 fsimage和 editlog并进行合并 ->发送回namenode ->namenode用新的fsimage替换旧的并用newedit替换editlog。

dotanode:

根据客户端和namenode进行数据存取和检索

定期向namenode发送自己存储的块的列表

数据保存在自身os的文件系统中

3.hdfs体系结构

HDFS总结

hdfs采用主从结构模型

namenode是中心服务器,负责管理文件系统命名空间及客户端对文件的访问

datanode一般是一个节点运行一个数据节点进程,负责处理文件系统客户端的读/写请求,在名称节点的统一调度下进行数据块的创建、删除和复制等操作

3.1hdfs的命名空间管理

HDFS的命名空间包含目录、文件和块,采用传统的文件文集体系,可以像操作普通文件一样操作hdfs

3.2通信协议

client 和 namenode 采用 tcp/ip通信

namenode 和 datanode采用 数据节点访问协议通信

客户端和datanode采用rpc调用方式

3.3 client

hdfs client 是hdfs一个接口,隐藏hdfs的复杂性 实现对hdfs的简单操作

同时支持javaapi

1.0hdfs体系结构的局限性

(1)命名空间的限制:namenode内存大小决定文件系统大小。

(2)性能的瓶颈

吞吐量受限于单个名称节点的吞吐量:

(3)隔离问题

无法对不同应用程序就行隔离

123 后续的hdfs体系结构采用联邦 namenode解决

(4)集群的可用性

一个namenode出故障整个集群将不可用

后续采用 activate-standby

4HDFS存储原理

4.1 冗余存储

HDFS总结

好处:

加快数据传输;容易检查错误;保障数据可靠

4.2数据存取策略

数据存放:

第一个副本存在上传文件的节点或者磁盘不满,cpu不忙的节点

第二个副本与第一个节点不同机架节点

第3个副本与第一节点相同机架的不同机器

HDFS总结

数据读取:

client读取数据过程: 

从namenode获取数据块副本列表 -> 调用api获取 client与数据节点机架id ->优先读取id相同的数据节点

4.3 数据错误与恢复

  1. 名称节点错误

    secondraynamenode

  2. 数据节点出错

    数据节点定期向名称节点发送心跳  -> namenode未收到心跳会把数据节点标记为宕机 ->当副本数小于冗余因子启动复制生成新的副本

  3. 数据出错

    md5和sha1对数据进行校验

4.4数据读写过程

读:


写:


以上是关于HDFS总结的主要内容,如果未能解决你的问题,请参考以下文章

HDFS知识总结

HDFS 架构学习总结

HDFS知识点总结

HDFS知识点总结

HDFS学习总结

HDFS总结