您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > Hadoop YARN 基本架构和发展趋势
hadoop123.comHadoopYARN基本架构和发展趋势董西成email:dongxicheng@yahoo.com微信号:hadoop-123[口号:做微信上最好的hadoop技术传播者]dongxicheng.orgdongxicheng.org主要内容hadoop123.comHadoopYARN产生背景1HadoopYARN基本架构2运行在YARN上的计算框架3YARN发展趋势4dongxicheng.orghadoop123.comHadoopYARN产生背景1HadoopYARN基本架构2运行在YARN上的计算框架3YARN发展趋势4主要内容dongxicheng.orgHadoopYARN产生背景hadoop123.com直接源于MRv1在几个方面的缺陷扩展性受限单点故障难以支持MR之外的计算多计算框架各自为战,数据共享困难MR:离线计算框架Storm:实时计算框架Spark:内存计算框架dongxicheng.orgHadoop1.0和2.0hadoop123.comHadoop2.0由HDFS、MapReduce和YARN三个分支构成;HDFS:NNFederation、HA;MapReduce:运行在YARN上的MR;YARN:资源管理系统dongxicheng.org主要内容hadoop123.comHadoopYARN产生背景1HadoopYARN基本架构2运行在YARN上的计算框架3YARN发展趋势4dongxicheng.orgHadoopYARN基本架构hadoop123.comdongxicheng.orgHadoopYARN各模块组成ResourceManager处理客户端请求启动/监控ApplicationMaster监控NodeManager资源分配与调度NodeManager单个节点上的资源管理处理来自ResourceManager的命令处理来自ApplicationMaster的命令ApplicationMaster数据切分为应用程序申请资源,并分配给内部任务任务监控与容错hadoop123.comdongxicheng.orgHadoopYARN运行流程分析hadoop123.comNodeManagerNodeManagerNodeManagerResourceManagerApplicationMasterClientClientClient①②③④⑤⑤⑤⑥⑥TaskContainerContainerTaskTaskContainerdongxicheng.orgHadoopYARN容错ResourceManager存在单点故障;正在基于ZooKeeper实现HA。NodeManager失败后,RM将失败任务告诉对应的AM;AM决定如何处理失败的任务。ApplicationMaster失败后,由RM负责重启;AM需处理内部任务的容错问题;RMAppMaster会保存已经运行完成的Task,重启后无需重新运行。hadoop123.comdongxicheng.orgHadoopYARN调度框架双层调度框架RM将资源分配给AMAM将资源进一步分配给各个Task基于资源预留的调度策略资源不够时,会为Task预留,直到资源充足与“allornothing”策略不同(ApacheMesos)hadoop123.comYARNCluster(resourcepool)YARNCluster(resourcepool)Job1(MRAppcationMaster)Job2(MRAppcationMaster)Job3(MRAppcationMaster)freecontainerstasksJobTracker(job1,job2,job3)TaskTrackerTaskTrackerTaskTrackerTaskTrackerresourcescontainerstolaunch(tasks)freecontainerscontainerstolaunch(tasks)freeContainers(tasks)containerstolaunchMRv1MRv2dongxicheng.orgHadoopYARN资源调度器多类型资源调度采用DRF算法(论文:“DominantResourceFairness:FairAllocationofMultipleResourceTypes”)目前支持CPU和内存两种资源提供多种资源调度器FIFOFairSchedulerCapacityScheduler多租户资源调度器支持资源按比例分配支持层级队列划分方式支持资源抢占hadoop123.comdongxicheng.orgHadoopYARN资源隔离方案支持内存和CPU两种资源隔离内存是一种“决定生死”的资源CPU是一种“影响快慢”的资源内存隔离基于线程监控的方案基于Cgroups的方案CPU隔离默认不对CPU资源进行隔离基于Cgroups的方案hadoop123.comdongxicheng.orgHadoopYARN资源调度语义支持的语义请求某个特定节点/机架上的特定资源量将某些节点加入(或移除)黑名单,不再为自己分配这些节点上的资源请求归还某些资源不支持的语义请求任意节点/机架上的特定资源量请求一组或几组符合某种特质的资源超细粒度资源动态调整Container资源hadoop123.comdongxicheng.org主要内容hadoop123.comHadoopYARN产生背景1HadoopYARN基本架构2运行在YARN上的计算框架3YARN发展趋势4dongxicheng.org应用程序的运行模型hadoop123.comMapinputoutputMapinputReduceoutputStage1inputoutputStage2Stage3Stage4Stage1inputoutputStage2Stage3StageNdongxicheng.orgYARN应用程序类型长应用程序和短应用程序长应用程序Service、HTTPServer等短应用程序MRjob、SparkJob等hadoop123.comdongxicheng.org以YARN为核心的生态系统hadoop123.comdongxicheng.org运行在YARN上的计算框架离线计算框架:MapReduceDAG计算框架:Tez流式计算框架:Storm内存计算框架:Spark图计算框架:Giraph、GraphLibhadoop123.comdongxicheng.org离线计算框架MapReduce将计算过程分为两个阶段,Map和ReduceMap阶段并行处理输入数据Reduce阶段对Map结果进行汇总Shuffle连接Map和Reduce两个阶段MapTask将数据写到本地磁盘ReduceTask从每个MapTask上读取一份数据仅适合离线批处理具有很好的容错性和扩展性适合简单的批处理任务缺点明显启动开销大、过多使用磁盘导致效率低下等hadoop123.comdongxicheng.orgMapReduceOnYARNhadoop123.comMRAppMstrMRAppMstrNodeManagerMapTaskMapTaskNodeManagerReduceTaskReduceTaskClientClient1Container2245MapTaskMapTask7775ResourceSchedulerApplicationsManagerContainerContainerContainerResourceManager3,8666dongxicheng.orgDAG计算框架Tez多个作业之间存在数据依赖关系,并形成一个依赖关系有向图(DirectedAcyclicGraph),该图的计算称为“DAG计算”ApacheTez:基于YARN的DAG计算框架运行在YARN之上,充分利用YARN的资源管理和容错等功能;提供了丰富的数据流(dataflow)API;扩展性良好的“Input-Processor-Output”运行时模型;动态生成物理数据流关系。hadoop123.comPhase1Phase2Phase3Phase4Phase5MapReduceMapReduceReducedongxicheng.orgDAG计算框架Tezhadoop123.comHDFSMap1Reduce1HDFSHDFSMap2Reduce2HDFSWordCountTopKHDFSMap1Reduce12HDFSWordCount+TopKReduce2Job1Job2DAGJobUsingTezJob1Job2Job3Job4SingleJobUsingTezdongxicheng.orgTezOnYARNhadoop123.comDAGAppMstrDAGAppMstrNodeManagerVertex-ATaskVertex-ATaskNodeManagerVertex-ATaskVertex-ATaskClientClient1Container2245Vertex-ATaskVertex-ATask7775ResourceSchedulerApplicationsManagerContainerContainerContainerResourceManager3,866dongxicheng.orgTez优化技术ApplicationMaster缓冲池作业提交到AMPoolServer服务上预启动若干个ApplicationMaster,形成一个ApplicationMaster缓冲池预先启动ContainerApplicationMaster启动时可以预先启动若干个ContainerContainer重用任务运行完成后,ApplicationMaster不会马上注销它使用的Container,而是将它重新分配给其他未运行的任务hadoop123.comdongxicheng.orgTez应用场景直接编写应用程序Tez提供了一套通用编程接口适合编写有依赖关系的作业优化Pig、Hive等引擎下一代Hive:Stinger好处1:避免查询语句转换成过多的MapReduce作业后产生大量不必要的网络和磁盘IO好处2:更加智能的任务处理引擎hadoop123.comdongxicheng.org流式计算Storm流式(Streaming)计算,是指被处理的数据像流水一样不断流入系统,而系统需要针对每条数据进行实时处理和计算,并永不停止(直到用户显式杀死进程);传统做法:由消息队列和消息处理者组成的实时处理网络进行实时计算;缺乏自动化缺乏健壮性伸缩性差Storm出现。hadoop123.com引自:2013中国大数据技术大会肖康:“Storm在实时网络攻击检测和分析的应用与改进”,PPT:流式计算框架Stormhadoop123.comNimbusSupervisorZookeeperExecutorExecutorWorkerExecutorExecutorWorkerSpoutTasks,topology1Blot-ATasks,topology1SupervisorExecutorExecutorWorkerExecutorExecutorWorkerSupervisorExecutorExecutorWorkerExecutorExecutorWorkerSpoutTasks,topology1Blot-BTasks,topology1SpoutTasks,top
本文标题:Hadoop YARN 基本架构和发展趋势
链接地址:https://www.777doc.com/doc-4853899 .html