加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

HDFS你必然要知道,要考的

发布时间:2018-08-26 04:49:31 所属栏目:教程 来源:千锋大数据开发学院
导读:你必定听过Hadoop,对就是那头飞跃的小象。 Hadoop作为大数据期间代表性的办理方案被各人所熟知,它首要包括两部门内容: HDFS漫衍式文件存储 MapReduce分a布式计较框架 前面我们说明存储方案的成长的时辰有提到漫衍式文件存储的呈现是为了办理存储的三大
副问题[/!--empirenews.page--]

你必定听过Hadoop,对就是那头飞跃的小象。

HDFS你必然要知道,要考的

Hadoop作为大数据期间代表性的办理方案被各人所熟知,它首要包括两部门内容:

  • HDFS漫衍式文件存储
  • MapReduce分a布式计较框架

前面我们说明存储方案的成长的时辰有提到漫衍式文件存储的呈现是为了办理存储的三大题目:可扩展性,高吞吐量,高靠得住性

那么Hadoop的焦点HDFS是怎样办理上面三个题目的呢?

着实计一律个体系我们要思量到它的应用场景,然后对它的成果和特征举办计划,做出弃取。我们也许会存眷这几个题目:

  1. 原始存储名目 or 非凡存储名目,通过什么名目存储才气利便的打点数据,担保数据的迁徙和安详。
  2. 大文件 or 小文件,文件体系得当大文件照旧小文件存储,怎样提供I/O服从。
  3. 数据高可用 or 空间操作率,通过复制副本技能进步数据可用性肯定会低落空间操作率,应该怎样弃取。
  4. 是否有元数据处事,元数据处事是生涯存储数据元数据信息的处事,读写数据都必要毗连元数据处事器担保同等性。存在元数据处事态必会存在单点题目和机能瓶颈题目。

上面这个4个题目划重点,要考的!!!

HDFS它的计划方针就是把超大的数据集存储到多台平凡计较机上,而且可以提供高靠得住性和高吞吐量的处事,支持通过添加节点的方法对集群举办扩容。以是HDFS有着它本身的计划条件:

  1. 对存储大文件支持很好,不合用于存储大量小文件
  2. 通过流式会见数据,担保高吞吐量而不是低延时的用户相应
  3. 简朴同等性,行使场景应为一次写入多次读取,不支持多用户写入,不支持恣意修改文件。
  4. 冗余备份机制,空间换靠得住性(Hadoop3中引入纠删码机制,纠删码需通过计较规复数据,实为通过时代换空间,有乐趣的可以查察RAID的实现)
  5. 移动计较优于移动数据,为支持大数据处理赏罚主张移动计较优于移动数据,提供相干接口。

遵循以上的计划条件和方针最终的制品就是我们一般应用中的HDFS了。HDFS首要由NameNode和DataNode组成,以Master/Slave模式运行。我们来具体相识一下。

HDFS你必然要知道,要考的

数据块

HDFS你必然要知道,要考的

这个就对应前面我们提出的疑问“原始存储名目 or 非凡存储名目”,在HDFS上抽象出了一个数据块的观念。可以以为是HDFS的非凡存储名目,当你存储文件的时辰不是以文件为单元举办数据存储的,而是以数据块为单元举办存储。这样有什么甜头呢?起首,它屏障了文件的观念,假如你存一个超大的文件,文件的巨细大于你任何一个单个磁盘的巨细,在HDFS中会把你的文件切割成多个数据块,存储到差异呆板的差异磁盘中。这样就简化了存储体系的计划,并且也合用于数据的备份、迁徙成果,进步了数据的容错性和可用性。

NameNode

这个对应前面的疑问“是否有元数据处事”,在HDFS中NameNode就起着元数据打点处事的浸染,它打点着整个文件体系的定名空间,维护着文件体系树详情并对其耐久化。

当我们写入可能读取数据时都必要先毗连NameNode,获取可操纵的DataNode节点才气继承操纵。以是NameNode是存在单点题目和机能题目的。Hadoop2中可以设置HA的模式,一个集群拥有两个NameNode一个处于Active状态一个处于Standby状态,个中一个失效后另一个可以自动切换成Active,进而办理了一部门单点题目。(在Hadoop3中支持设置多个NameNode,进一步办理NameNode的单点题目)。NameNode将元数据信息生涯在内存中,内存就是NameNode的机能瓶颈,假如集群中小文件过多会发生大量元数据信息占用NameNode的内存。以是HDFS对大文件的支持更好。NameNode会占用较多的内存和I/O资源,以是运行NameNode的节点不会启动DataNode可能执行MapReduce使命。

DataNode

DataNode就是HDFS的事变节点了,它认真存储数据,为客户端提供数据块的读写处事。在启动时会将它存储的数据块的列表发送给NameNode,按照NameNode的要求对数据块举办建设、删除和备份,还会通过心跳按期向NameNode更新存储数据块信息。

HDFS通过备份副本的方法实现靠得住性,Hadoop2缺省的数据块巨细为128M,复制因子为,默认的备份副本的漫衍位置与机架和节点有关。当DataNode丢失毗连后,NameNode会把失败节点的数据(从其他备份副本节点)复制到其它一个康健的DataNode节点,担保集群内里的数据库始终维持指定的副本数目。

写流程

HDFS你必然要知道,要考的
  1. 起首,HDFS Client和NameNode成立毗连,汇报NameNode要存储一个文件。NameNode维护着DataNode的列表,知道哪些DataNode上面尚有空间可以举办存储。
  2. NameNode通过查察存储的元数据信息,发明DataNode1,2,3上可以举办存储。于是他将此信息返回给HDFS Client。
  3. HDFS Client接管到NameNode的返回的DataNode列表后,Client会与间隔最近DataNode1成立毗连,让其筹备好吸取数据。然后将文件举办分块,将数据块1和NameNode返回的DataNode列表信息一路发送给DataNode1.
  4. DataNode1通过列表信息得知要发送给DataNode2.以是DataNode1将数据与列表信息发送给DataNode2.DataNode2又发送给DataNode3,此时数据块1已经存储完成并备份了三份。
  5. 当DataNode1,2,3都吸取并存储数据块1后,会向NameNode发送信息,奉告已经吸取到了数据块1.并把数据块1相干信息发送给NameNode,NameNode更新元数据信息并 与Client通讯奉告数据块1已经存储完毕。然后Client开始举办数据块2的存储。

这里必要留意的是一个大型的HDFS文件系同一样平常都是必要跨许多机架的,差异机架之间的数据传输必要颠末网关,而且,统一个机架中呆板之间的带宽要大于差异机架呆板之间的带宽。假如把全部的副本都放在差异的机架中,这样既可以防备机架失败导致数据块不行用,又可以在读数据时操作到多个机架的带宽,而且也可以很轻易的实现负载平衡。假如副本数目是3的环境下,HDFS默认把第一个副本放到机架的一个节点上,另一个副本放到统一个机架的另一个节点上,把最后一个节点放到差异的机架上。这种计策镌汰了跨机架副本的个数进步了写的机能,也可以或许应承一个机架失败的环境,算是一个很好的衡量。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读