第03讲-分布式文件系统HDFS_第1页
第03讲-分布式文件系统HDFS_第2页
第03讲-分布式文件系统HDFS_第3页
第03讲-分布式文件系统HDFS_第4页
第03讲-分布式文件系统HDFS_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第二篇大数据存储第03章

分布式文件系统HDFS

HDFS概述

HDFS系统架构分析数据存储

文件操作过程

理解Yarn23《大数据技术》1.1HadoopHadoop是一个由Apache基金会所开发的分布式系统基础架构。Hadoop架构的核心组成有两个部分:一是分布式文件系统HDFS,二是并行计算框架MapReduce。HDFS为海量数据提供存储服务,而MapReduce则为海量数据提供计算引擎。1.HDFS概述4Hadoop大数据生态系统《大数据技术》5Hadoop是一个虚构的名字。该项目的创建者,DougCutting解释了Hadoop的得名。他的孩子有一个黄色大象玩具,称为Hadoop。DougCutting觉得这个名称简短、容易发音和拼写,所以就采用了这个名字,没有更多意义,不会被用于别处。他说小孩子往往是取名的高手。1.HDFS概述《大数据技术》6DougCutting,Hadoop创建人,毕业于美国斯坦福大学,最初学习物理、地理学,后对IT感兴趣。先后在Xerox、Architext、Cloudera、雅虎工作。2004年受谷歌GFS启发,开始研究Hadoop,2008年Hadoop成为Apache顶级项目。1.HDFS概述7《大数据技术》1.HDFS概述Hadoop生态圈各组件的描述组件描述HDFS分布式文件系统MapReduce分布式并行计算框架YARN分布式资源管理框架Zookeeper分布式协调服务Flume数据采集工具Sqoop数据传输工具HBase分布式数据库Hive数据仓库工具Spark基于内存的分布式并行计算框架8《大数据技术》1.2HDFS的设计目标存储超大文件:集群可扩展性高流式数据访问:满足批处理而非交互式处理需求容错性高:完善的冗余备份机制采用简单一致性模型:一次写入多次读取移动计算优于移动数据:读取和计算采取就近原则兼容各种硬件和软件平台1.HDFS概述9《大数据技术》文件系统经历了传统阶段、雏形阶段和成熟阶段1.HDFS概述10《大数据技术》HDFS不适合的场景:大量小文件:文件的元数据都存储在NameNode内存中,大量小文件意味着元数据的增加,占用大量内存低延迟数据访问:专门针对高数据吞吐量而设计多用户写入:会导致一致性维护的困难1.HDFS概述11《大数据技术》2.1系统架构概览

2.HDFS系统架构分析

《大数据技术》12《大数据技术》1314《大数据技术》2.2组件功能分析

2.HDFS系统架构分析

《大数据技术》15《大数据技术》1617《大数据技术》3.1数据分块数据块的大小磁盘数据块是磁盘读写的基本单位,与普通文件系统类似,HDFS也把文件分块来存储。HDFS默认数据块大小为128MB。块增大可以减少寻址时间与文件传输时间的比例,若寻址时间为10ms,磁盘传输速率为100MB/s,那么寻址与传输比仅为1%。磁盘块太大也不好,因为一个MapReduce通常以一个块作为输入,块过大会导致整体任务数量过小,降低作业处理速度。3.数据存储18《大数据技术》按块存储的好处文件可以任意大,也不用担心单个节点磁盘容量小于文件的情况简化了文件子系统的设计,子系统只存储文件块数据,而文件元数据则交由其他系统(NameNode)管理有利于备份和提高系统可用性,这得益于以块为单位进行备份的设计,HDFS默认备份数量为3有利于负载均衡3.数据存储19《大数据技术》3.2机架感知Hadoop组件具有机架感知功能。Hadoop主守护进程通过调用配置文件指定的外部脚本或java类来获取集群工作者(worker)的机架ID。3.数据存储20《大数据技术》为什么需要机架感知?负载均衡:机架上的服务器磁盘配置不同,通过感知机架,方便系统管理员手动操作,从而实现负载均衡副本策略:通过机架感知,实现副本策略,可以保证有效存储的同时最大化安全需要3.数据存储《大数据技术》2122《大数据技术》3.3存储策略HDFS的放置策略是:如果写入程序位于数据节点上,则将一个副本放置在本地计算机上,否则放置在与写入程序相同的机架中的随机数据节点上;另一个副本放在不同(远程)机架中的节点上,最后一个副本则放置在相同远程机架中的不同节点上。3.数据存储23《大数据技术》NameNode的作用

NameNode负责管理文件系统的命名空间,维护文件目录和文件名。NameNode也负责所有这些文件或目录的打开、关闭、移动、重命名等操作。实际文件数据的存储与读写操作,则由DataNode负责。客户端请求数据时,它仅从NameNode获取文件的元数据,而具体的数据传输不需要经过NameNode,由客户端直接与相应的DataNode进行交互。3.数据存储《大数据技术》2425《大数据技术》SecondaryNameNode的作用NameNode启动时,它首先会加载fsimage到内存中;HDFS运行期间,所有操作的元数据也都保存在内存中。为了防止数据丢失,这些操作数据又会不断被持久化到本地edits文件中。NameNode在更新内存中的元信息之前,将操作数据写入edits文件,然后更新内存并应答Client。系统运行中,edits文件和fsimage文件要周期性合并;NameNode重启时,系统也需要将edits与fsimage合并到一起。合并操作代价大,影响NameNode的运行,包括影响Hadoop重启的速度,SecondaryNameNode为了解决这个问题而诞生了。3.数据存储《大数据技术》2627《大数据技术》3.数据存储28《大数据技术》4.1读文件4.文件操作过程HDFS读文件过程《大数据技术》291.初始化FileSystem(由分布式系统实现),然后client用FileSystem的open()函数打开文件。2.DFSInputStream远程调用名称节点,得到文件开始部分的数据块信息,对于每一个数据块,元数据节点返回保存数据块的数据节点的地址。3.系统利用DFSInputStream实例化FSDataInputStream,返还给客户端用来读取数据。客户端调用read()函数开始读取数据。4.FSDataInputStream连接保存距离此文件第一个数据块的最近的数据节点,数据从数据节点读到客户端(client)。5.当此数据块读取完毕时,FSDataInputStream关闭和此数据节点的连接,然后连接此文件下一个数据块的最近的数据节点。6.当客户端读取完毕数据的时候,调用FSDataInputStream的close函数关闭输入流。7.在读取数据的过程中,如果客户端在与数据节点通信出现错误,则尝试连接包含此数据块的下一个数据节点。30《大数据技术》4.2写文件4.文件操作过程HDFS写文件过程《大数据技术》311.初始化FileSystem,客户端调用create()来创建文件。2.DistributedFileSystem用RPC调用名称节点,在文件系统的命名空间中创建一个新的文件,名称节点首先确定文件原来不存在,并且客户端有创建文件的权限,然后创建新文件。3.DistribuitedFileSystem利用DFSOutputStream实例化FSDataOutputSystem,返还给客户端,客户端开始调用write()函数写入数据。4.FSDataOutputSystem将数据分成块,被放入DFSOutputStream对象的内部队列。FSDataOutputSystem通知名称节点分配数据节点,用来存储数据块(每块默认复制3块)。分配的数据节点形成一个数据流管道。队列中的分包被打成数据包发送至数据流管道中的第一个数据节点。第一个数据节点将数据包发送给第二个数据节点。第二个数据节点将数据包发送给第三个数据节点。5.DFSOutputStream为保证发出的数据包都是准确的而设置了确认包,等待数据流管道中的数据节点告知数据已经写入成功。6.当客户端结束写入数据,则调用close()函数关闭输入流。此操作将所有的数据块写入数据流管道中的数据节点,并等待确认包返回成功。最后通知名称节点写入完毕。《大数据技术》5.1Yarn基本架构5.理解YarnResourceManagerSchedulerApplicationsManager调度器仅根据各应用程序的资源需求进行资源分配(分配单位用一个抽象概念Container表示,是内存、CPU、磁盘、网络等资源的封装)32《大数据技术》5.理解YarnYarn的另一个重要概念就是ApplicationMaster(Appmaster)。每一个应用都有自己的AppMaster实例。

AppMaster负责与ResourceManager协商资源,并与之协同工作来监控Container。《大数据技术》5.理解YarnNodeManager是每个节点的Yarn框架代理。它负责启动应用的Container,监控Container的资源使用(包括CPU、内存、硬盘和网络带宽等),并把这些信息汇报给调度器。ResourceManager得到轻量化,调度器仅根据各应用程序的资源需求进行资源分配,而监测Job的任务(tasks)状态的程序分布式化了,所以整体上系统更有效。

在Yarn中,ApplicationsMaster是一个可变更的部分,用户可以对不同的编程模型写自己的ApplicationsMaster,让更多类型的编程模型在Hadoop集群中运行。旧框架中,JobTracker

很大的负担是监控job的tasks的运行状况,现在,这个部分由ApplicationsMaster负责,而ResourceManager中有一个模块叫做ApplicationsManager,它监测ApplicationsMaster的运行状况。Container是Yarn为了将来作资源隔离提出的一个框架。之前的mapslot/reduceslot分开,容易造成集群资源闲置。35《大数据技术》5.2工作流程5.理解Yarn《大数据技术》YARN有四大核心交互流程。

客户端向ResourceManager提交MapReduce作业。

MRApplicationMaster向ResourceManager申请资源。Map任务或Reduce任务向MRApplicationMaster汇报MapReduce作业状态。NodeManager向ResourceManager汇报节点的状态。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论