HDFS 核心原理

HDFS(Hadoop Distribute File System)是一个分布式文件系统 文件系统是操作系统提供的磁盘空间管理服务,只需要我们指定把文件放到哪儿,从哪个路径读取文件句可以了,不用关心文件在磁盘上是如何存放的 当文件所需空间大于本机磁盘空间时,如何处理呢? 一是加磁盘,但加到一定程度就有限制了 二是加机器,用远程共享目录的方式提供网络化的存储,这种方式可以理解为分布式文件系统的雏形,可以把不同文件放入不同的机器中,空间不足了可以继续加机器,突破了存储空间的限制 但这个方式有多个问题 (1)单机负载可能极高 例如某个文件是热门,很多用户经常读取这个文件,就使此文件所在机器的访问压力极高 (2)数据不安全 如果某个文件所在的机器出现故障,这个文件就不能访问了,可靠性很差 (3)文件整理困难 例如想把一些文件的存储位置进行调整,就需要看目标机器的空间是否够用,并且需要自己维护文件位置,如果机器非常多,操作就极为复杂 HDFS的解决思路

HDFS是个抽象层,底层依赖很多独立的服务器,对外提供统一的文件管理功能,对于用户来讲,感觉就想在操作一台机器,感受不到HDFS下面的多台服务器

例如用户访问HDFS中的 /a/b/c.mpg 这个文件,HDFS负责从底层相应服务器中读取,然后返回给用户,这样用户只需和HDFS打交道,不关心这个文件是怎么存储的

写文件示例

例如用户需要保存一个文件 /a/b/xxx.avi HDFS首先会把这个文件进行分割,例如分为4块,然后分别放到不同服务器上

这样做有个好处,不怕文件太大,并且读文件的压力不会全都集中在一台服务器上 但如果某台服务器坏了,文件就读不全了 HDFS为保证文件可靠性,会把每个文件块进行多个备份 块1 : A B C 块2 : A B D 块3 : B C D

块4 : A C D

这样文件的可靠性就大大增强了,即使某个服务器坏了,也可以完整读取文件 同时还带来一个很大的好处,就是增加了文件的并发访问能力,比如多个用户读取这个文件时,都要读块1,HDFS可以根据服务器的繁忙程度,选择从哪台服务器读块1 元数据的管理 HDFS中存了哪些文件?

文件被分成了哪些块?

每个块被放在哪台服务器上?

…… 这些都叫做元数据,这些元数据被抽象为一个目录树,记录了这些复杂的对应关系 这些元数据由一个单独的模块进行管理,这个模块叫做 NameNode 存放文件块的真实服务器叫做 DataNode 所以用户访问HDFS的过程可以理解为: 用户 -> HDFS -> NameNode -> DataNode HDFS 优点 (1)容量可以线性扩展 (2)有副本机制,存储可靠性高,吞吐量增大 (3)有了NameNode后,用户访问文件只需指定HDFS上的路径

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2016-01-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我是攻城师

Spark Streaming如何使用checkpoint容错

62270
来自专栏恰童鞋骚年

Hadoop学习笔记—22.Hadoop2.x环境搭建与配置

自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我...

26310
来自专栏PPV课数据科学社区

Spark的三种集群deploy模式对比

Spark有三种集群部署模式,或者叫做集群管理模式。分别是standalone,YARN和Mesos。这三种模式其实都是master/slave模式。 那么在...

42360
来自专栏鸿的学习笔记

YARN--大数据的资源管理器

最初,Hadoop主要限于范例MapReduce,其中资源管理由JobTracker和TaskTacker完成。JobTracker将MapReduce任务传播...

19020
来自专栏搜云库

Hadoop-2.7.4 集群快速搭建

Hadoop简介 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力...

33570
来自专栏牛肉圆粉不加葱

ResourceManager剖析

10420
来自专栏Hadoop实操

如何使用HiBench进行基准测试

1.2K30
来自专栏企鹅号快讯

大数据干货系列(二)-HDFS1.0

本文共计876字,预计阅读时长五分钟 一、本质 HDFS(Hadoop Distributed File System)是一种适合运行在通用硬件上的分布式文件系...

27370
来自专栏Hadoop实操

如何在CDH集群中加入异构设备

在部署CDH集群或者扩容时,会遇到服务器配置不同(CPU、Memory、DISK等)的情况,那我们应该如何加入异构设备,并进行差异化的配置呢?本篇文章主要讲述如...

52790
来自专栏cloudskyme

Hadoop使用(二)

前提和设计目标 硬件错误 硬件错误是常态而不是异常。HDFS可能由成百上千的服务器所构成,每个服务器上存储着文件系统的部分数据。我们面对的现实是构成系统的组件...

374100

扫码关注云+社区

领取腾讯云代金券