ImageVerifierCode 换一换
格式:PPTX , 页数:177 ,大小:6.80MB ,
文档编号:3496743      下载积分:29 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-3496743.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(三亚风情)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(大数据平台简介课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

大数据平台简介课件.pptx

1、大数据平台简介2目录目录一Hadoop生态系统二Hadoop主流厂商三HDFS四MapReduce五Hive六Spark3Hadoop生态系统4Hadoop 1.0 V 2.05Hadoop生态系统Ambari(安装部署工具)Zookeeper(分布式协调服务)HBase(分布式协数据库)Oozie(作业流调度系统)HDFS(分布式存储系统)YARN(分布式计算框架)MapReduce(离线计算)Tez(DAG计算)Spark(内存计算)HivePigMahoutSqoop(数据库TEL工具)Flume(日志收集)6HDFSHadoop Distributed File System7Yarn

2、资源管理器8MapReduce分布式并行计算框架“你数一号书架,我数二号书架。我们人数多,数书就更快。这就是map;最后我们到一起,把所有人的统计数加在一起,就是reduce。”9Spark新一代大数据处理计算引擎You can run Spark using its standalone cluster mode,on EC2,on Hadoop YARN,or on Apache Mesos.Access data in HDFS,Cassandra,HBase,Hive,Tachyon,and any Hadoop data source.10HBaseNoSQL数据库11Hivehad

3、oop的数据仓库12Pig大规模数据分析平台Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig为复杂的海量数据并行计算提供了一个简单的操作和编程接口。Apache pig是用来处理大规模数据的高级查询语言,配合Hadoop使用,可以在处理海量数据时达到事半功倍的效果,比使用Java,C+等语言编写大规模数据处理程序的难度要小N倍,实现同样的效果的代码量也小N倍。A=LOAD a.txt AS(col1:chararray,col2:int,col3:

4、int,col4:int,col5:double,col6:double);B=GROUP A BY(col2,col3,col4);C=FOREACH B GENERATE group,AVG(A.col5),AVG(A.col6);DUMP C;13Mahout机器学习算法库Mahout 是 Apache Software Foundation(ASF)旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用 Apache Hadoop 库,Mahout

5、可以有效地扩展到云中。14Zookeeper分布式协调服务15SqoopHadoop与关系数据库间的数据同步工具16Flume分布式日志采集工具17AmariHadoop集群安装部署监控工具18Hadoop主流厂商19大数据领域的三驾马车ClouderaHortonworksMapR20Cloudera Distribution Hadoop(CDH)21Hortonworks Data Platform(HDP)22MapR Converged Data Platform23Hadoop主流厂商比较开源开源管理开源管理架构创新完全开源收取服务费工具不开源收取License费用重构了底层内核收

6、取License费用24云服务云服务集团集团软件软件集团集团浪潮大数据平台产品HDP云海Insight HDIndata HD25HDFS26相关背景资料Hadoop:一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Distributed:分布式计算是利用互联网上的计算机的 CPU 的共同处理能力来解决大型计算问题的一种计算科学。File system:文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。27Hadoop和

7、HDFS的关系Hadoop 是一个以一种可靠、高效、可伸缩的方式进行处理的,能够对大量数据进行分布式处理的系统框架。HDFS是Hadoop兼容最好的标准级文件系统,因为Hadoop是一个综合性的文件系统抽象,所以HDFS不是Hadoop必需的。所以可以理解为hadoop是一个框架,HDFS是hadoop中的一个部件。28HDFS背景介绍随着数据量越来越大,在一个操作系统管辖的范围存不下了,那么就 分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。分布式文件系统:一种允许文件通过网络在多台主机上分享的文件系统,可以让多个机器

8、上的多个用户分享文件和存储空间。29集群通透性:DFS让实际上是通过网络来访问文件的动作,由用户和程序看来,就像访问本地的磁盘一般。分布式文件系统特点RootsplitBlockBlock目录 1目录 2File节点节点节点30HDFS是什么HDFS是Hadoop Distribute File System 的简称,也就是Hadoop的一个分布式文件系统。HDFS被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。HDFS是一个高度容错性的系统,适合部署在廉价的机器上HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用HDFS可以实现流的形式访问(

9、streaming access)文件系统中的数据对外部客户机而言,HDFS 就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。对于用户来说,可以直接看成是一个巨大的硬盘。31HDFS特点 GB、TB、甚至PB级数据;百万规模以上的文件数量;10K+节点规模适合大数据处理 HDFS使应用程序流式地访问它们的数据集。所以它重 视数据吞吐量,而不是数据访问的反应速度。流式文件访问 HDFS被设计成适合进行批量处理,而不是用户交互式 处理;移动计算而非数据;数据位置暴露给计算框架适合批处理 通过多副本提高可靠性;提供了容错和恢复机制可构建廉价机器上 数据自动保存多个副本;副本丢失后

10、,自动恢复高容错性 一次性写入,多次读取;保证数据一致性简化一致性模型 HDFS在设计的时候就考虑到平台的可移植性。这种特 性方便了HDFS作为大规模数据应用平台的推广可移植性32HDFS的局限性 不支持多用户对同一文件进行操作,而且写操作只 能在文件末尾完成,即追加操作。并发写入、文件随机修改 由于HDFS是为高数据吞吐量应用而设计的,必然 以高延迟为代价。不适合低延迟与高吞吐率的数据 访问,比如毫秒级不适合低延迟数据访问 HDFS中元数据(文件的基本信息)存储在 namenode的内存中,而namenode为单点,小文 件数量大到一定程度,namenode内存就吃不消了 ;寻道时间超过读取

11、时间无法高效存储大量小文件33HDFS现在遇到的主要问题分布后的文件系统有个无法回避的问题,因为文件不在一个磁盘导致读取访问操作的延时,这个是HDFS现在遇到的主要问题HDFS 调优是使用时最调优是使用时最应该注意的。应该注意的。现阶段,HDFS的配置是按照高数据吞吐量优化的,可能会以高时间延时为代价。但万幸的是,HDFS是具有很高弹性,可以针对具体应用再优化。34总体架构图HDFS采用master/slave架构。一个HDFS集群是由一个Namenode和一定数目的Datanode组成,他们以管理者-工作者模式工作。35总体架构图-Client切分文件;访问或通过命令行管理HDFS;与Nam

12、eNode交互,获取文件位置信息;与DataNode交互,读取和写入数据。36HDFS的基本结构之 NameNodeNamenode是一个中心服务器,负责管理文件系统的命名空间协调客户端对文件的访问Namenode执行文件系统的命名空间操作,例如打开、关闭、重命名文件和目录记录每个文件数据块在各个Datanode上的位置和副本信息37HDFS元数据持久化NameNode存有HDFS的元数据:主要由FSImage和EditLog组成。FSImage是元数据镜像文件保存整个文件系统的目录树数据块映射关系:文件与数据块映射关系,DataNode与数据块映射关系EditLog是元数据操作日志,记录每次

13、保存fsimage之后到下次保存之间的所有hdfs操作NameNodeFileSystemImageEditLog命名空间操作记录,如打开、关闭、创建、删除、重命名文件和目录38HDFS元数据持久化checkpoint:NameNode启动后,它会从磁盘中读取FsImage及EditLog,应用EditLog中所有的事务到存在于内存中的FsImage文件对象,然后将版本较新的这个FsImage文件写入磁盘,之后EditLog就可以被删除了。一个checkpoint只发生在NameNode启动的时候。Blockreport:当一个DataNode启动时,它会扫描本地文件系统,生成所有HDFS数据

14、块的一个列表,然后向NameNode发送一个报告。39HDFS的基本结构之 DataNodeDatanode一般是一个节点一个,负责所在物理节点的存储管理,是文件系统中真正存储数据的地方一个文件被分成一个或多个数据块,这些块存储在一组Datanode上Datanode负责处理文件系统客户端的读写请求。在Namenode的指挥下进行block的创建、删除和复制周期性的向Namenode汇报其存储的数据块信息40数据组织数据块(block):大文件会被分割成多个block进行存储,block大小默认为128MB。比磁盘块大很多,目的是减少寻址开销。并不是设置块越大越好。每一个block会在多个da

15、tanode上存储多份副本,默认是3份。与其他文件系统不一样,HDFS中每个小于块大小的文件不会占据整个块的空间。HDFS128 MB128 MB128 MB128 MB41数据复制大文件在集群中跨机器存储每个文件存储成一系列的数据块,除了最后一个,所有的数据块都是同样大小的为了容错,文件的所有数据块都会有副本。每个文件的数据块大小和副本系数都是可配置的Namenode全权管理数据块的复制,它周期性地从集群中的每个Datanode接收心跳信号和块状态报告42副本策略HDFS采用机架感知(rack awareness)的副本存放策略来提高数据的可靠性、可用性和网络带宽的利用率。将第一个副本放在本

16、地节点,将第二个副本放到本地机架上的另外一个节点,而将第三个副本放到不同机架上的节点。文件的副本不是均匀地分布在机架当中,这种方式提高了写的性能,并且不影响数据的可靠性和读性能(选择读取最近的副本)Node大数据集群Rack1Rack243DataNodeDataNodeHDFS稳健性故障的类型:NameNode故障,DataNode故障和网络中断数据磁盘故障,心跳及重新复制pDataNode因为故障而不可用p拷贝过程失败pDataNode上的磁盘坏掉p副本数量会被增加NameNode启动block重新复制:NameNodeDataNodeDeadDataNodeDataNodeHeartBe

17、ats44HDFS稳健性数据完整性HDFS客户端应用实现了对文件内容的校验和。HDFS写入的时候计算出校验和,然后每次读的时候再计算校验和。元数据磁盘故障NameNode在HDFS集群中属于单点故障。没有namenode,文件系统会崩溃,文件系统上的所有文件将丢失(无法读出,因为无法定位元数据块的位置)HA高可用架构:NameNode热备45HA架构解决的问题NameNode单点故障HDFS只有一个NameNode节点,当NameNode崩溃后,整个HDFS集群随之崩溃,直到Namenode重启或者其他Namenode接入HDFS HA:为了解决NameNode的单点故障,为NameNode保

18、存一个热备,两个独立的机器作为NameNode:Active Namenode、Standby Namenode。任何时刻,只有一个Namenode处于Active状态,另一个处于standby状态(passive,备份);Active Namenode用于接收Client端请求,Standy节点作为slave保持集群的状态数据以备快速failover.46HA架构图写入读出DataNodeDataNodeDataNode.NameNodeactiveNameNodestandbyQJM/NFSZookeeperFCZookeeperFC监控NN状态管理HA状态监控NN状态管理HA状态Zook

19、eeperHeartbeatHeartbeat47HA架构-快速failoverDatanodes上需要同时配置这两个Namenode的地址,同时和它们都建立心跳链接,并把block位置发送给它们,这样Standby node持有集群中blocks的最新位置当Active NN失效时,StandbyNN切换成Active NNNameNodeactiveDataNodeDataNodeDataNodeDataNodeNameNodestandbyHeartBeats共享数据48两种HA方案对比QJM vs NFS 共同点都是热备方案都是一个active Namenode(NN)和一个stand

20、by NN使用Zookeeper(ZK)quorum和ZKFC来实现自动失效恢复。在失效恢复时都需要配置fencing方法来fence active NN二者共享数据方式不同参与HA的不同角色HDFS with NFSHDFS with QJMNamenodeNamenodeHA NFS(共享数据变更存储)JournalNodeZookeeperZookeeperZKFailoverController processZKFailoverController process49HA方案-NFS实现机制active NN 和 standby NN需要共享一个存储目录。active NN会把数据变

21、更日志保存在该目录内,standby NN则监视更新,并保持数据同步。为了快速切换NN,DataNode(DN)需要知道两个NN的地址,并把块信息和心跳包发送给active和standby这两个NN。此外,为了保证active NN挂了以后不再有新数据写入,Fencing逻辑在确认active NN挂了以后会切断所有与原active NN的连接。HA with NFS 局限性目前只支持一个数据变更共享目录,导致HA能力受限于该目录为了防止共享目录的单点失效,对共享目录有额外的要求,比如冗余的硬盘、网络和电源等。NFS共享目录所在的设备要求是高可靠性。NFS方式部署更为复杂。50HA方案-QJM

22、Standby Node与Active Node保持同步这两个Node都与一组称为JNS的互相独立的进程保持通信(Journal Nodes)。当Active Node上更新了namespace,它将记录修改日志发送给JNS的多数派。Standby noes将会从JNS中读取这些edits,并持续关注它们对日志的变更。Standby Node将日志变更应用在自己的namespace中,即在failover发生之前,Standy持有namespace应该与Active保持完全同步。JournalNodeJournalNodeJournalNodeJournalNodeNameNodeactive

23、NameNodestandby向Journal Nodes写数据从Journal Nodes读数据51HA方案-QJM硬件资源 Namenode机器:两台配置对等的机器,它们分别运行Active和Standby NodeJouralNode机器:运行JouralNodes的机器。JouralNode守护进程相当的轻量级,它们可以和hadoop的其他进程部署在一起,比如Namenodes、jobTracker、ResourceManager等。不过为了形成多数派(majority),至少需要3个JouralNodes,因为edits操作必须在多数派上写入成功。当然JNS的个数可以 3,且通常为奇

24、数(3,5,7),这样可以更好的容错和形成多数派。如果你运行了N个JNS,那么它可以允许(N-1)/2个JNS进程失效并且不影响工作。52HDFS可访问性HDFS支持以文件和目录的形式组织用户数据。它提供了一个命令行接口(FS Shell)让用户与HDFS中的数据进行交互通过原生的 FileSystem Java API接口来访问浏览器的方式访问HDFS中的实例文件http:/nn_host:port/默认的http端口是5007053读文件Client JVMDataNodeDataNodeDataNodeNameNodeHDFSClientDistributedFileSystemFSDa

25、taInputStream1:open2:获取文件数据块所在的DataNode节点位置3:read7:complete6:close4:read5:read54写文件Client JVMDataNodeDataNodeDataNodeNameNodeHDFSClientDistributedFileSystemFSDataInputStream1:creat3:write7:complete6:close5:ack packet2:creat4:write packet454555回收存储空间文件的删除与恢复HDFS会为每一个用户创建一个回收站目录:/user/用户名/.Trash/,每一个被

26、用户通过Shell删除的文件/目录,它会先被重命名到目录/trash下的一个文件.只要被删除的文件还在/trash目录中,用户就可以还原它。目前默认策略是删除/trash中保留时间超过6小时的文件该功能只限于用户在客户端的脚本操作,当用户写程序调用HDFS的API时,NameNode并不会把删除的文件或目录放入回收站Trash中减少副本系数当副本系数被降低时,NameNode会选择删除多余的副本56HDFS常用shellHDFS支持以文件和目录的形式组织用户数据。它在客户端提供了一个命令行接口(FS Shell)让用户与HDFS中的数据进行交互调用文件系统(FS)Shell命令应使用 bin/

27、hadoop fs 的形式。所有的的FS shell命令使用URI路径作为参数。URI格式是scheme:/authority/path。对HDFS文件系统,scheme是hdfs。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。一个HDFS文件或目录比如/parent/child可以表示成hdfs:/namenode:namenodeport/parent/child,或者更简单的/parent/child57ls使用方法:hadoop fs-ls 查看目录下文件lsr使用方法:hadoop fs-lsr 递归查看文件mkdir使用方法

28、:hadoop fs-mkdir-p 创建目录,-p参数是创建各级父目录touchz使用方法:hadoop fs-touchz URI URI 创建一个0字节的空文件。HDFS常用shell58HDFS常用shellput使用方法:hadoop fs-put .上传一个或多个本地文件到文件系统。如果HDFS中已经存在该文件,那么直接上传会报错。如果第二个路径是个文件夹,那么会上传到文件夹中,如果文件不存在,那么会生成一个文件而非新建一个文件夹。copyFromLocal使用方法:hadoop fs-copyFromLocal URI上传一个或多个本地文件到文件系统。命令类似-putget使用方

29、法:hadoop fs-get 下载文件到本地文件系统。copyToLocal使用方法:hadoop fs-copyToLocal URI 下载文件到本地文件系统。命令类似-get59HDFS常用shellappendToFile使用方法:hadoop fs-appendToFile .将本地文件追加到hdfs文件末尾mv使用方法:hadoop fs-mv URI URI 将文件从源路径移动到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。不允许在不同的文件系统间移动文件。text使用方法:hadoop fs-text 将源文件输出为文本格式cat使用方法:hadoop fs-

30、cat URI URI 将路径指定文件的内容输出到stdout60HDFS常用shellrm使用方法:hadoop fs-rm URI URI 删除文件rmdir使用方法:hadoop fs-rmdir URI URI.删除空白文件夹rmr(不建议使用)使用方法:hadoop fs-rmr URI URI.递归删除。建议使用rm r替代该命令cp使用方法:hadoop fs-cp URI URI.将文件从源路径复制到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。61HDFS常用shellchmod使用方法:hadoop fs-chmod-R URI URI 改变文件的权限。使

31、用-R 将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者或者超级用户。chown使用方法:hadoop fs-chown-R OWNER:GROUP URI URI改变文件的拥有者。使用-R 将使改变在目录结构下递归进行。命令的使用者必须是 超级用户。chgrp使用方法:hadoop fs-chgrp-R GROUP URI URI 改变文件所属的组。使用-R 将使改变在目录结构下递归进行。命令的使用者必须是 文件的所有者或者超级用户。62HDFS常用shellexpunge使用方法:hadoop fs-expunge清空回收站setrep使用方法:hadoop fs-setrep

32、-R 改变一个文件的副本系数。-R选项用于递归改变目录下所有文件的副本系数。其他命令,通过hadoop fs-help可以获取所有的命令的详细帮助文件63hdfs fsck命令HDFS支持fsck命令用以检查各种不一致。fsck用以报告各种文件问题,如block丢失或缺少block等。查看文件的块的组成等信息。使用方法:hdfs fsck -files-blocks-locations64MapReduce65来源2004.10Google发布了最初的MapReduce论文MapReduce:大型集群中简化的数据处理66MapReduce是什么MapReduce是一个编程模型,也是一个处理和生

33、成超大数据集的算法模型的相关实现(计算框架),用于简化分布式集群下的大数据计算。67MapReduce计算框架这个框架在运行时只关心:如何分割输入数据在大量计算机组成的集群上的调度集群中计算机的错误处理管理集群中计算机之间必要的通信。采用MapReduce架构可以使那些没有并行计算和分布式处理系统开发经验的程序员有效利用分布式系统的丰富资源。68MapReduce编程模型编程模型:用户首先创建一个Map函数处理一个基于key/value pair的数据集合,输出中间的基于key/value pair的数据集合;然后,再创建一个Reduce函数用来合并所有的具有相同中间key值的中间value值

34、。69MapReduce-纸牌游戏MapReduce方法则是:给在座的所有玩家中分配这摞牌让每个玩家数自己手中的牌有几张是黑桃,然后把这个数目汇报给你你把所有玩家告诉你的数字加起来,得到最后的结论你想数出一摞牌中有多少张黑桃。直观方式是一张一张检查并且数出有多少张是黑桃?MapReduce合并了两种经典函数:映射(Mapping)对集合里的每个目标应用同一个操作。即:分开计算,输出各自结果。化简(Reducing)遍历集合中的元素来返回一个综合的结果。即:合并分开计算的各个结果,得到最终结果。70MapReduce-基本思想如何对付大数据处理:分而治之对相互间不具有计算依赖关系的大数据,实现并

35、行最自然的办法就是采取分而治之的策略71MapReduce-基本思想上升到抽象模型:Mapper与ReducerMapReduce借鉴了Lisp函数式语言中的思想,用Map和Reduce两个函数提供了高层的并行编程抽象模型上升到构架:统一计算框架,为程序员隐藏系统层细节为MapReduce设计并提供了统一的计算框架,为程序员隐藏了绝大多数系统层面的处理细节(存储、划分、分发、结果收集、错误恢复)72MapReduce-工作原理73MapReduce-工作原理1.整个系统主要有三部分构成:user program(客户端)、master(主控程序)、worker(工作单元,部署在各个数据/计算节

36、点上)2.客户端(user program)与master通信,提交mapreduce程序到master,3.Master监控集群中的空闲资源(每个worker向其汇报),收到客户端请求后,为该mapreduce程序分配多个map任务和reduce任务4.一个被分配了map任务的worker读取相关输入文件分片的内容。它从输入数据中分析出key/value对,然后把key/value对传递给用户自定义的map函数。由map函数产生的中间key/value对被缓存在内存中,缓存在内存中的key/value对被周期性的写入到本地磁盘上。5.reduce worker使用远程调用来从map work

37、er的磁盘上读取缓存的数据,然后通过排序使具有相同key的内容聚合在一起,它把key和聚合得value集传递给用户自定义的reduce函数。reduce函数的输出被添加到这个reduce分割的最终的输出文件中。6.当所有的map和reduce任务都完成了,管理者唤醒用户程序。在这个时候,在用户程序里的MapReduce调用返回到用户代码。74MapReduce-适用场景MapReduce 主要面向对大规模数据的处理,适用于离线批处理场景由于每次操作需要遍历所有数据,MapReduce 并不适用于需要实时响应的系统。75MapReduce程序 wordcount76wordcount概述输入:执

38、行程序:输出:$bin/hadoop fs-cat/user/joe/wordcount/input/file01Hello World Bye World$bin/hadoop fs-cat/user/joe/wordcount/input/file02Hello Hadoop Goodbye Hadoop$bin/hadoop jar wc.jar WordCount/user/joe/wordcount/input/user/joe/wordcount/output$bin/hadoop fs-cat/user/joe/wordcount/output/part-r-00000Bye 1

39、Goodbye 1Hadoop 2Hello 2World 277MapReduce工作过程78InputMapper1、读取输入文件,并分片2、按block分片,每片一个map。Wordcount输入文件是2个小文件,默认block大小为64M或128M,所以每个文件就一片,两个文件共2片,2个map任务。3、每个map读取对应分片的文件内容,按行提取文件内容,转换成(key,value)。key是数据分片中字节偏移量,value值是行内容FileInputFormat.addInputPath(job,new Path(args0);public void map(Object key,T

40、ext value,Context context )79Mapper阶段Map-1:Map-2:job.setMapperClass(TokenizerMapper.class);public void map(Object key,Text value,Context context )throws IOException,InterruptedException StringTokenizer itr=new StringTokenizer(value.toString();while(itr.hasMoreTokens()word.set(itr.nextToken();context

41、.write(word,one);80Combine阶段Map-1:Map-2:public void reduce(Text key,Iterable values,Context context )throws IOException,InterruptedException int sum=0;for(IntWritable val:values)sum+=val.get();result.set(sum);context.write(key,result);job.setCombinerClass(IntSumReducer.class);81Reducer阶段public void

42、reduce(Text key,Iterable values,Context context )throws IOException,InterruptedException int sum=0;for(IntWritable val:values)sum+=val.get();result.set(sum);context.write(key,result);job.setReducerClass(IntSumReducer.class);82Hadoop MapReduce工作过程83Yarn84Hadoop MapReduce V1架构85Hadoop MapReduce V1组成1)

43、Client客户端程序,与客户端程序,与JobTracker通信,提交通信,提交mapredce程序包程序包2)JobTrackerJobTracke相当于Google MapReduce中的master,负责统一的资源监控和作业调度。3)TaskTrackerTaskTracker相当于Google MapReduce中的worker,部署在各个数据/计算节点上,向JobTracker发送本节点的资源情况,接收JobTracker的作业调度指令,创建任务或杀死任务4)TaskTask 分为Map Task 和Reduce Task 两种,均由TaskTracker 启动。86Hadoop M

44、apReduce V1问题1.JobTracker 是 Map-reduce 的集中处理点,存在单点故障。2.JobTracker 完成了太多的任务,造成了过多的资源消耗,当 map-reduce job 非常多的时候,会造成很大的内存开销,增加了 JobTracker fail 的风险。3.在 TaskTracker 端,以 map/reduce task 的数目作为资源的表示过于简单,没有考虑到 cpu/内存的占用情况,如果两个大内存消耗的 task 被调度到了一块,很容易出现 OOM。4.在 TaskTracker 端,把资源强制划分为 map task slot 和 reduce ta

45、sk slot,如果当系统中只有 map task 或者只有 reduce task 的时候,会造成资源的浪费。5.源代码层面分析的时候,会发现代码非常的难读,常常因为一个 class 做了太多的事情,代码量达 3000 多行,造成 class 的任务不清晰,增加 bug 修复和版本维护的难度。87Yarn架构原理88Yarn架构原理Yarn框架有两类进程构成:u ResourceManager:负责全局资源的管理和调度分配u NodeManager:是每台机器资源管理的代理端,负责本机资源使用的监控以及为yarn应用分配运行容器(Container)和创建任务Container是YARN中资

46、源的抽象,它封装了某个节点上一定量的资源(CPU和内存两类资源)。每个map或reduce任务需要拥有一定的Container资源以运行。89Yarn架构原理ResourceManager有两种主要组件:Scheduler and ApplicationsManager.u Scheduler:负责纯资源调度,为各个应用分配资源。资源调度策略包括CapacityScheduler、FaireScheduler等。u ApplicationsManager:负责接收应用程序提交请求(通过yarn jar或hadoop jar执行程序),创建应用对应的ApplicationMaster以及当App

47、licationMaster失败时对其重启。AppMstr:ApplicationMaster,每个应用(如提交一个WordCount程序,就是个应用)运行时,ResourceManager都要为该应用先分配container,运行该ApplicationMaster。ApplicationMaster负责与ResourceManager通信,申请该应用实际运行时所需的容器资源,申请到资源后,负责与资源所在的各NodeManager通信,要求它在申请到的资源(container)中启动任务。90Yarn工作流程91Yarn工作流程步骤1用户向YARN中提交应用程序,其中包括Applicatio

48、nMaster程序、启动ApplicationMaster的命令、用户程序等。步骤2ResourceManager为该应用程序分配第一个Container,并与对应的Node-Manager通信,要求它在这个Container中启动应用程序的ApplicationMaster。步骤3ApplicationMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManage查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤47。步骤4ApplicationMaster采用轮询的方式通过RPC协议向ResourceMa

49、nager申请和领取资源。步骤5一旦ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它启动任务。步骤6NodeManager为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。步骤7各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。在应用程序运行过程中,用户可随时通过RPC向ApplicationMaster查询应用程序的当前运行状态。步骤8应用程序运行

50、完成后,ApplicationMaster向ResourceManager注销并关闭自己。92Hive93Hive简介-Hive是什么?Hive是构建在Hadoop之上的数据仓库平台Hive是一个SQL解析引擎,它将SQL语句转译成MapReduce作业并在Hadoop上执行。Hive表是HDFS的一个文件目录,一个表名对应一个目录名,如果有分区表的话,则分区值对应子目录名。94Hive简介-Hive的历史由来Hive是Facebook开发的,构建于Hadoop集群之上的数据仓库应用。2008年Facebook将Hive项目贡献给Apache,成为开源项目。95Hive简介-Hive的历史由来

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|