1、Hadoop2.0架构设计与原理数据中心-Alan1主要内容Hadoop介绍1Hadoop原理2Hadoop YARN产生的背景 34Hadoop YARN基本架构5运行在YARN上的计算框架6YARN 发展趋势2主要内容Hadoop介绍1Hadoop原理2Hadoop YARN产生的背景 34Hadoop YARN基本架构5运行在YARN上的基本框架6YARN 发展趋势3Hadoop概述n Hadoop是一个开源的、可靠的、可扩展的分布式并行计算框架n主要组成:分布式文件系统HDFS和MapReduce算法执行n作者:Doug Cuttingn语言:Java,支持多种编程语言,如:Pytho
2、n、C+4Hadoop的起源lHadoop是Google的集群系统的开源实现Google集群系统:GFS(Google File System)、MapReduce、BigTableHadoop主要由HDFS(Hadoop Distributed File System Hadoop分布式文件系统)、MapReducelHadoop的初衷是为解决 Nutch 的海量数据爬取和存储的需要lHadoop于2005年秋天作为 Lucene的子项目Nutch的一部分正式引入Apache基金会。l名称起源:Doug Cutting儿子的黄色大象玩具的名字l目前最新稳定版本2.6.05什么是大数据 数据集
3、主要特点 Volume:数量量从TB到PB级别 Variety:数据类型复杂,超过80%的数据是非结构化的 Velocity:数据量在持续增加(两位数的年增长率)Value:巨大的数据价值 其他特征 数据来自大量源,需要做相关性分析 需要实时或者准实时的流式采集,有些应用90%写vs.10%读 数据需要长时间存储,非热点数据也会被随机访问6什么是大数据什么是大数据某比萨店的电话铃响了,客服人员拿起电话。客服:XXX比萨店。您好,请问有什么需要我为您服务?顾客:你好,我想要一份客服:先生,烦请先把您的会员卡号告诉我。顾客:16846146*。客服:陈先生,您好!您是住在泉州路一号12楼120 x
4、室,请问您想要点什么?顾客:我想要一个海鲜比萨 客服:陈先生,海鲜比萨不适合您。顾客:为什么?客服:根据您的医疗记录,你的血压和胆固醇都偏高。顾客:那你们有什么可以推荐的?客服:您可以试试我们的低脂健康比萨。顾客:你怎么知道我会喜欢吃这种的?客服:您上星期一在中央图书馆借了一本低脂健康食谱。顾客:好。那我要一个家庭特大号比萨,要付多少钱?客服:99元,这个足够您一家六口吃了。但您母亲应该少吃,她上个月刚刚做了心脏搭桥手术,还处在恢复期。顾客:那可以刷卡吗?客服:陈先生,对不起。请您付现款,因为您的信用卡已经刷爆了,您现在还欠银行4807元,而且还不包括房贷利息。顾客:那我先去附近的提款机提款。
5、客服:陈先生,根据您的记录,您已经超过今日提款限额。顾客:算了,你们直接把比萨送我家吧,家里有现金。你们多久会送到?客服:大约30分钟。如果您不想等,可以自己骑车来。顾客:为什么?客服:根据我们全球定位系统的车辆行驶自动跟踪系统记录。您登记有一辆车号为SB-748的摩托车,而目前您正在解放路东段华联商场右侧骑着这辆摩托车。顾客当即晕倒7大数据VS传统数据8大数据处理流程101010010101010101111010100101010101011101011010100101010101011101011010100101010101011110101001010101010111非结构化数据
6、结构化数据实时流数据其它数据 APITextBig Data Store and AnalyticsETL01011010100101010101011101011010100101010101011110101001010101010111010110101001010101010111010110101001010101010111101010010101010101119Hadoop生态圈10主要内容Hadoop介绍1Hadoop原理2Hadoop YARN产生的背景 34Hadoop YARN基本架构5运行在YARN上的基本框架6YARN 发展趋势11HDFS-分布式文件系统u设计目标
7、错误检测和快速自动恢复硬件故障是常态而非异常为流式数据访问优化针对支持大数据集单个文件大小有数GB或者TB可提供高聚合带宽访问 可能够扩展至数千个节点简化“一致性”模型一次写入、多次读,写入过程可能并发移动“计算”比移动“数据”更便宜u主要特点使用低成本存储和服务器构建存放PB级别的海量数据高可扩展性,实际生产环境扩展至4000个节点高可靠性和容错性,数据自动复制,可自我修复高带宽,高并发访问,对于延迟不敏感数据分布与复制12u数据块:文件被划分为固定大小的数据块进行存储数据块缺省为64M,远大于一般文件系统数据块大小减少元数据的量有利于顺序读写(在磁盘上顺序存放)可靠性:数据通过副本的方式保
8、存在多个数据节点上默认3个副本副本选择会考虑机架信息以防止整个机架同时掉电u系统设计优化:用单个管理节点来保存文件系统元数据和管理/协调数据缓存:DataNode没有数据缓存由于文件的访问是扫描式的,不具有局部性访问方式读、写、文件改名、删除等文件内容不允许覆盖更新提供一个特殊的访问接口:追加appendHDFS基本设计13HDFS体系结构中心目录服务器(NameNode)管理大量数据服务器(DataNode)NameNode 管理元数据(文件目录树,文件-块映射,块-数据服务器映射表,etc.)DataNode 负责存储数据、以及响应数据读写请求客户端与NameNode交互进行文件创建/删除
9、/寻址等操作,之后直接与DataNodes交互进行文件I/O14HDFS写文件流程15HDFS读文件流程16什么是MapReduce编程模型?l Map(映射):对一些独立元素组成的列表的每一个元素进行指定的操作,可以高度并行。l Reduce(化简):对一个列表的元素进行合并。l 一个简单的MapReduce程序只需要指定map()、reduce()、输入和输出,剩下的事由框架帮你搞定。17MapReduce计算框架为离线数据分析而设计,基本上是个利用数据并行性进行分布运算而后汇总结果的计算框架分析问题能够被并行化,且输入数据集可以被切分一个Map函数,在第一阶段计算对 一个Reduce函数
10、,在第二阶段用于汇总Map函数的结果18MapReduce运行机制19MapReduceMapReduce原理原理20MapReduceMapReduce实例分析实例分析21主要内容Hadoop介绍1Hadoop原理2Hadoop YARN产生的背景 34Hadoop YARN基本架构5运行在YARN上的基本框架6YARN 发展趋势22Hadoop YARN产生背景 直接源于直接源于MRv1在几个方面在几个方面的的缺陷缺陷 扩展扩展性性受限受限 单点故障单点故障 难以支难以支持持MR之之外的计算外的计算 多计算框架各自为多计算框架各自为战战,数据共享困难,数据共享困难 MR:离线离线计计算算框
11、架框架 Storm:实实时时计计算框架算框架 Spark:内存:内存计计算算框架框架23Hadoop 1.0和和2.0 Hadoop 2.0由由HDFS、MapReduce和和YARN三个分支构三个分支构成成;HDFS:NN Federation、HA;MapReduce:运行运行在在YARN上上的的MR;YARN:资源管理系统:资源管理系统24主要内容Hadoop介绍1Hadoop原理2Hadoop YARN产生的背景 34Hadoop YARN基本架构5运行在YARN上的基本框架6YARN 发展趋势25Hadoop YARN基本架构26Hadoop YARN各模块组成 ResourceMa
12、nager 处理客户端请求处理客户端请求 启启动动/监监控控ApplicationMaster 监控监控NodeManager 资源分配与调度资源分配与调度 NodeManager 单个节点上的资源管理单个节点上的资源管理 处理来处理来自自ResourceManager的命令的命令 处理来处理来自自ApplicationMaster的命令的命令 ApplicationMaster 数据切分数据切分 为为应用程序申请资应用程序申请资源源,并分配给内部任务,并分配给内部任务 任务监控与容错任务监控与容错27Hadoop YARN运行流程分析Node ManagerNode ManagerNodeM
13、anagerResourceManagerApplication MasterClientClientClientTaskContainerContainerTaskTaskContainer28Hadoop YARN容错 ResourceManager 基基于于ZooKeeper实现实现HA。NodeManager 失败失败后后,RM将失败任务告诉对应将失败任务告诉对应的的AM;AM决定如何处理失败的任决定如何处理失败的任务务。ApplicationMaster 失败失败后后,由由RM负责重负责重启启;AM需处理内部任务的容错问需处理内部任务的容错问题题;RMAppMaster会保存已经运行
14、完成会保存已经运行完成的的Task,重启后无需重新运重启后无需重新运行行。29Hadoop YARN调度框架 双层调度框架双层调度框架 RM将资源分配给将资源分配给AM AM将资源进一步分配给各将资源进一步分配给各个个Task 基于资源预留的基于资源预留的调调度度策策略略 资源不够资源不够时时,会,会为为Task预预留留,直到资源充足,直到资源充足与与“all or nothing”策略不策略不同同(Apache Mesos)30Hadoop YARN资源调度器 多类型资源调度多类型资源调度 采用采用DRF算法(论文:算法(论文:“Dominant Resource Fairness:Fair
15、Allocation of Multiple Resource Types”)目前支持目前支持CPU和内存两种资源和内存两种资源 提供多种资源调提供多种资源调度器度器 FIFO Fair Scheduler Capacity Scheduler 多租户资源调度器多租户资源调度器 支持资源按比例分配支持资源按比例分配 支持层级队列划分方式支持层级队列划分方式 支持资源抢占支持资源抢占31Hadoop YARN资源隔离方案 支持内存支持内存和和CPU两种资源隔离两种资源隔离 内存是一内存是一种种“决定生死决定生死”的资源的资源 CPU是一是一种种“影响快影响快慢慢”的资源的资源 内存隔离内存隔离
16、基于线程监控的方案基于线程监控的方案 基基于于Cgroups的方案的方案 CPU隔离隔离 默认不默认不对对CPU资源进行隔离资源进行隔离 基于基于Cgroups的方案的方案32Hadoop YARN资源调度语义 支持的语义支持的语义 请求某个特请求某个特定定节点节点/机架上的特定资源量机架上的特定资源量 将某些节点加入(或移除)黑名单,不再为自己分配这将某些节点加入(或移除)黑名单,不再为自己分配这些些节点上节点上的资源的资源 请求归还某请求归还某些些资源资源 不支持的语义不支持的语义 请求任请求任意意节节点点/机机架架上的特定资上的特定资源源量量 请求一组或几组符合某种特质请求一组或几组符合
17、某种特质的的资源资源 超细粒超细粒度度资源资源 动态调动态调整整Container资源资源33主要内容Hadoop介绍1Hadoop原理2Hadoop YARN产生的背景 34Hadoop YARN基本架构5运行在YARN上的基本框架6YARN 发展趋势34应用程序的运行模型MapinputoutputMapinputReduceoutputStage1inputoutputStage2Stage3Stage4Stage 1inputoutputStage2Stage3StageN35YARN应用程序类型 长应用程长应用程序和短序和短应应用程序用程序 长应用程序长应用程序Service、HTT
18、P Server等 短应用程序短应用程序MR job、Spark Job等36以YARN为核心的生态系统37运行在YARN上的计算框架离线计算框架离线计算框架:MapReduceDAG计算框架计算框架:Tez流式计算框架流式计算框架:Storm内存计算框架内存计算框架:Spark图计算框架图计算框架:Giraph、GraphLib38离线计算框架MapReduce 将计算过程分为将计算过程分为两两个个阶阶段段,Map和和Reduce Map 阶段并行处理输入数据Reduce阶段对Map结果进行汇总 Shuffle连连接接Map和和Reduce两个阶段两个阶段 Map Task将数据写到本地磁盘
19、Reduce Task从每个Map Task上读取一份数据 仅适合离线批处理仅适合离线批处理 具有很好的容错性和扩展性 适合简单的批处理任务 缺点明显缺点明显 启动开销大、过多使用磁盘导致效率低下等39MapReduce On YARN25MR App MstrNode ManagerMap TaskNode Manager66Reduce TaskClient1Container245Map Task777ContainerContainerContainerResourceManager3,86Applications ManagerResource Scheduler40DAG计算框架T
20、ez 多个作业之间存多个作业之间存在在数数据据依依赖赖关关系系,并并形形成成一一个个依依赖赖关系关系有有 向图向图(Directed Acyclic Graph),该图的计算称为),该图的计算称为 “DAG计算计算”Apache Tez:基:基于于YARN的的DAG计算框架计算框架 运运行行在在YARN之上之上,充分利充分利用用YARN的资源管理和容错等功的资源管理和容错等功能能;提供了丰富的数据提供了丰富的数据流流(dataflow)API;扩展性良好扩展性良好的的“Input-Processor-Output”运行时模型运行时模型;动态生成物理数据流关动态生成物理数据流关系系。Phase
21、1Phase 2Phase 3Phase 4Phase 5MapReduceMapReduceReduce41DAG计算框架TezHDFSMap1Reduce1HDFSHDFSMap2Reduce2HDFSWordCountTop KHDFSMap1Reduce12HDFSWordCount+Top KReduce2Job1Job2DAG JobUsing TezJob1Job2Job4Single JobUsing42Tez On YARNDAG App MstrNodeManager25Vertex-A TaskNode ManagerVertex-A TaskClient1Contain
22、er245Vertex-A Task777ContainerContainerContainerResourceManager3,866Applications ManagerResource Scheduler43Tez优化技术 ApplicationMaster缓冲池缓冲池作业提交到AMPoolServer服务上预启动若干个ApplicationMaster,形成一个ApplicationMaster缓冲池 预先启动预先启动ContainerApplicationMaster启动时可以预先启动若干个Container Container重用重用任务运行完成后,ApplicationMast
23、er不会马上注销它使用的Container,而是将它重新分配给其他未运行的任务44Tez应用场景 直接编直接编写写应用程序应用程序 Tez提供了一套通用编程接口 适合编写有依赖关系的作业 优优化化Pig、Hive等引擎等引擎下一代Hive:Stinger 好处1:避免查询语句转换成过多的MapReduce作业后 产生大量不必要的网络和磁盘IO 好处2:更加智能的任务处理引擎45流式计算Storm 流式(流式(Streaming)计算计算,是是指被处指被处理理的的数据数据 像流水一像流水一样不断样不断流流入系统,而入系统,而系系统需要针统需要针对对每条每条 数据进行数据进行实时处实时处理理和计算
24、和计算,并并永永不停止不停止(直直到用到用 户显式杀户显式杀死进死进程程);传统做法:传统做法:由消由消息息队列和消息队列和消息处处理者组成理者组成的的实时实时行实行实时时计算计算;化 性现。现。处理网络处理网络进进缺乏自动缺乏健壮伸缩性差Storm出出引引自自:2013中国大数据技术大会中国大数据技术大会 肖肖康康:“Storm在实在实时网络时网络攻击检测和分析的应用攻击检测和分析的应用与与改进改进”,PPT:http:/ Tasks,topology 1Blot-A Tasks,topology1SupervisorExecutorExecutorWorkerExecutorExecuto
25、rWorkerSupervisorExecutorExecutorWorkerExecutorExecutorWorkerSpout Tasks,topology 1Blot-B Tasks,topology1Spout Tasks,topology 2Blot-1 Tasks,topology 2Blot-C Tasks,topology1Blot-B Tasks,topology1Blot-2 Tasks,topology 2Blot-1 Tasks,topology 2Blot-2 Tasks,topology 2Blot-2 Tasks,topology 247流式计算框架StormT
26、askTaskTaskTaskTaskTaskTaskTaskTaskSpoutBlot-ABlot-BBlot-CStream GroupingStream GroupingTopologyHadoop MapReduce(MRv1)Storm系统系统服务服务JobTrackerNimbusTaskTrackerSupervisorChildWorker应用应用程序名称程序名称JobTopology编程编程模型模型Map/ReduceSpout/BlotShuffleStream Grouping48Storm On YARNResource ManagerNode ManagerNode
27、ManagerStorm SupervisiorNode ManagerYARN-Storm ClientYARN-MPIClientYARN-MapReducee ClientStorm SubmissionResource RequestStorm Application Master Storm SupervisiorZookeeperNode ManagerMR AppMstrContainerMap TaskContainerStorm ClientStorm ClientNimbusWeb UI49内存计算框架Spark 克服克服MapReduce在迭代在迭代式式计算和计算和交交互
28、互式计算方式计算方面面的的不足不足;引入引入RDD(Resilient Distributed Datasets)数据表)数据表示示模模型型;RDD是是集合集合,一一个个有有容错机制容错机制,可以被并可以被并能能够被缓够被缓存存到到内存或内存或磁磁盘盘上上行行操作的数据操作的数据。引自引自:“基于基于Spark on Yarn的淘宝数据的淘宝数据挖掘平挖掘平台台”,PPT:http:/ On YARNResource ManagerNode ManagerNode ManagerStandaloneExecutorBackenddNode ManagerYARN-Spark ClientYAR
29、N-MPIClientYARN-MapReducee ClientSpark SubmissionResource RequestClusterSchedulerSpark Application MasterStandaloneExecutorBackendNode ManagerMR App MstrContainerMap TaskContainerWeb UI52Spark生态系统53主要内容Hadoop介绍1Hadoop原理2Hadoop YARN产生的背景 34Hadoop YARN基本架构5运行在YARN上的基本框架6YARN 发展趋势54资源管理系统带来的好处 提高集群资提高集
30、群资源源利用率利用率 服务自动服务自动化化部署部署YARN(资源管理系统)HDFS2(分布式存储系统)zookeeperzookeeperzookeepersoftwarecodebaseInstallerApp Masterbin/hadoop install hbase-version 0.95.0-slaves 10Storm|0.7.0|0.92.0|0.8.0|0.94.0 MYSQL|0.95.0|5.5.25|5.6.12HBase55资源管理系统发展趋势Scheduling logicScheduling logicScheduling logicScheduling logi
31、csubsetfull stateCluster MachinesNo concurrencypessimistic concurrency(offers)optimistic concurrency(transactions)集中式调度双层调度共享状态调度引自:Google论文“Omega:flexible,scalable schedulers for large compute clusters”Scheduling logic56YARN自身的完善 调度框架调度框架的完的完善善:YARN-896支持更多的资源类型(网络、磁盘等)支持更多的调度语义 长长作业的作业的在线升级在线升级Storm在线升级等Container资源动态调整:YARN-1197 容错机制容错机制ResourceManager自身容错NodeManager宕掉,任务不受影响ApplicationMaster个性化容错57以YARN为核心的生态系统YARN使得使得Hadoop生态生态系系统更加统更加强强大大吸纳其他开源计算框架,如Storm、Spark等变为集群管理者YARN(资源管理系统)MapReduceTezHBaseStormGiraphSparkOpenMPIHDFS2(分布式存储系统)58QA59