大数据 Hadoop 学习笔记 02

简介:


今天来聊聊 HDFS,它是 Hadoop 分布式文件系统(HDFS)是一种旨在在商品硬件上运行的分布式文件系统。

具有高度的容错能力,旨在部署在低成本硬件上。HDFS 提供对应用程序数据的高吞吐量访问,并且适用于具有大数据集的应用程序。

hadoop.png

从 Hadoop 的架构中看出,HDFS 是最底层存储集群中所有存储节点文件的文件系统,犹如一座大厦的地基。


01-HDFS 架构

HDFS 总体上采用了 master/slave 架构:

  • NameNode (以下称为 NN)
  • DataNode (以下称为DN)
  • Secondary NameNode (以下称为 SN)

hdfs.png
02-成员介绍

1、Client(客户端,亦或是用户)

  • 与 NN 和 DN交互访问 HDFS 中 的文件。
  • 提供了一个类似 POSIX 的文件系统接口供用户调用。

2、NN( master,类似管理者)

  • 管理文件系统的名字空间(namespace)
  • 处理客户端对文件的访问
  • 确定数据块(Block)到具体 Datanode 节点的映射
  • 配置副本策略(复制/存放/选择)

3、DN(Slave,NN 的小弟们)

  • 存储实际的数据块。
  • 负责处理文件系统客户端的读/写请求。

4、SN(NN 的助手,只能分担 NN 的工作量,不能顶替):

  • 定期合并 fsimage 和 fsedits,并推送给NN。
  • 在紧急情况下,可辅助恢复 NN。


03-写文件的工作流程

1、NN 里面维护着一份元数据,若客户端要存储一个文件,它可以检测该文件是否已经存储了,以及存在哪。

2 、对客户端来说,存储一次就够了,避免网络不稳定导致副本出错。所以 DN 会帮客户端存储的数据进行副本复制。默认三份保存。

3、HDFS被设计成支持大文件,适用那些需要处理大规模的数据集的应用。

这些应用都是只写入数据一次,但却读取一次或多次,并且读取速度应能满足流式读取的需要。

HDFS支持文件的“一次写入多次读取”语义。一个大文件会被拆分成一个个的块(block),然后存储于不同的DataNode上。如果一个文件小于一个 block 的大小,那么实际占用的空间为其文件的大小。

另外块(block)也有限制大小,HDFS 默认Block大小是128 MB,如果存储文件太小会占用太多的 NN 空间,造成浪费。所以 HDSF 不适合存储大量的小文件。

PS:Block 大小 从 2.7.3版本开始,官方关于 Data Blocks 的说明中,block size由 64 MB变成了128 MB的。


04-故事翻译

NN 就像一个存储仓库的“主管”,手里有一本物资清单,记录着仓库里面的商品名称和商品的位置。

如果外面的客户要存储一个商品,NN“主管”翻开清单查阅,看看该商品是否已经在仓库存储过了,以及放在哪里?

对客户来说,我就存一次,但为了防止商品存放损坏或者丢失,DN 这群小弟拿出了哆啦 A 梦的拷贝镜子,按规矩多复制了两份,加上原来的一份总共三份,因为事不过三嘛。

NN “主管” 的 管理 HDFS “仓库”地方够大,非常适合大型商品存储,只需进货一次,N 次取出,取货的速度比顺丰还快。业绩蒸蒸日上。

同行派人暗中调查,发现原来客户存放一次大商品,都会被拆卸分成一个个块(妇科圣手啊,什么都能切)记上标记,然后给分配给一下空闲的 DN 小弟,小弟在仓库里都有自己负责的货架。

每次拆卸大商品都是有规矩的,不能拆分太大或太小,默认是 128 MB。


05-写文件图解流程

hdfswirte.png

图中所示客户端请求存储一个 test.txt 文件的流程

1 )步骤 1 表示:客户端找到 NN ,申请上传文件;

2)步骤 2 表示:NN 查询自己的元数据,是否已经存过,若没有,则返回分配的 DN 给客户端,允许存储;

3)步骤3.1-3.3 表示:把一个文件切分从块(block)存储到不同的 DN 中,客户端在写入第一个block 后,DN 会自己另外复制两个副本;

4)步骤4.1-4.2 表示:block 的复制过程,若复制的过程失败了,最终会反馈给 NN ,让 NN 随机通知一个 DN 继续复制到另一个 DN 上。

所以这就保证了,客户端只需要写入一次就够了,剩下的副本复制 HDFS 会处理。


06-资源提供:

去「鸠摩搜书」搜索 HADOOP权威指南 的电子书,按需查看资料即可。或者直接看官方文档。


参考文献:

https://www.cnblogs.com/codeOfLife/p/5375120.html

http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_design.html

微信搜索公众号「一起学大数据呀」,里面有更多学习资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值