美文网首页
大数据 Hadoop 学习笔记 02

大数据 Hadoop 学习笔记 02

作者: ProudLin | 来源:发表于2019-12-06 19:40 被阅读0次

简介:

今天来聊聊 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

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

相关文章

  • hadoop学习笔记

    这篇为学习hadoop的笔记,书籍来自《Hadoop构建数据仓库实战》 hadoop简介   hadoop是一个由...

  • 大数据 Hadoop 学习笔记 02

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

  • 大数据入门 | 二、初识hadoop

    网易云课堂《大数据技术原理与应用》课程Chapter 2学习笔记 01 Hadoop是什么? Hadoop是Apa...

  • 无标题文章

    Hive 学习笔记 学习笔记 Hive 简介 Hive 是建立在 Hadoop 上的数据仓库基础构架,可以用来进行...

  • Hadoop入门

    慕课网《Hadoop大数据平台架构与实践--基础篇》学习笔记 1. 初识Hadoop 历史 Google三驾马车:...

  • Hadoop入门—基本原理简介

    现在打算学习一些关于分布式,大数据,和hadoop的知识,创建一个笔记本,作为入门的笔记。 1. 安装hadoop...

  • 大数据学习笔记Hadoop之HDFS

    科多大数据老师根据同学们最近的问题总结了Hadoop之HDFS的学习笔记,现在分享给大家,希望这个学习笔记可以帮助...

  • Hadoop学习笔记—Yarn

    Hadoop学习笔记—Yarn @(Hadoop)[hadoop, yarn] [TOC] 上一份工作主要负责大数...

  • 大数据Hadoop学习笔记

    hadoop生态系统MapReduce分布式计算框架①Yarm集群资源管理和调度③HDFS分布式文件系统②Hive...

  • 成都0基础学习hadoop怎么学?怎么进行大数据入门学习

    学hadoop需要什么基础?没有基础怎么学习hadoop?怎么学习大数据?Hadoop作为大数据工业中的主引擎,H...

网友评论

      本文标题:大数据 Hadoop 学习笔记 02

      本文链接:https://www.haomeiwen.com/subject/umoegctx.html