Hadoop技术与应用 课件 项目5 部署YARN的HA集群_第1页
Hadoop技术与应用 课件 项目5 部署YARN的HA集群_第2页
Hadoop技术与应用 课件 项目5 部署YARN的HA集群_第3页
Hadoop技术与应用 课件 项目5 部署YARN的HA集群_第4页
Hadoop技术与应用 课件 项目5 部署YARN的HA集群_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

部署YARN的HA集群点击添加文本点击添加文本点击添加文本点击添加文本在Hadoop中,组件YARN作为通用资源管理系统为上层应用提供统一的资源管理和调度。在集群中,YARN采用主从架构,主节点ResourceManager依然存在单点故障,为提高服务质量,需要进一步在集群中实现YARN的HA机制。项目概述点击添加文本点击添加文本点击添加文本点击添加文本了解YARN产生的背景,在Hadoop集群中部署YARN的优点,分析YARN的组成结构及其各部分功能,掌握YARN的工作流程。为解决主节点ResourceManager单点故障,可以借助ZooKeeper部署YARN的HA集群。项目背景点击添加文本点击添加文本点击添加文本点击添加文本部署YARN集群,查看相关进程;部署YARN的HA集群,提高服务质量。项目演示点击添加文本点击添加文本点击添加文本点击添加文本思维导图点击添加文本点击添加文本点击添加文本点击添加文本思政聚焦目前,通过HDFS、YARN等组件的使用,我们为开源软件强大功能而震撼,开源软件体现了软件从业者挑战自我以及对团队精神的追求。“开源中国社区”的成立将有助于在国内建立一套以社区为中心的开源开发机制,通过国内联合与国际合作,实现与国际接轨,培养出我们自己的软件大师,开发具有竞争力的国际性的开源项目。点击添加文本点击添加文本点击添加文本点击添加文本本项目主要介绍YARN产生的背景;YARN的组成结构;YARN的工作流程;YARN的HA机制。点击添加文本点击添加文本点击添加文本点击添加文本目录任务1部署YARN集群任务2部署YARN的HA集群点击添加文本点击添加文本点击添加文本点击添加文本在Hadoop1.x的框架中,对数据的处理、资源调度主要依赖MapReduce组件来完成,MapReduce架构如图5-1所示。1.YARN产生背景任务1部署YARN集群图5-1MapReduce架构点击添加文本点击添加文本点击添加文本点击添加文本在Hadoop2.x版本中,运行的应用不只是MapReduce了,还有可能是其他应用,如图5-2所示。1.YARN产生背景任务1部署YARN集群图5-2Hadoop1.0与Hadoop2.0点击添加文本点击添加文本点击添加文本点击添加文本(1)目前可以支持多种计算框架运行在YARN上面比如MapReduce、Storm、Spark、Flink等,由于将现有框架移植到YARN之上需要一定的工作量,当前YARN仅可运行MapReduce这种离线计算框架。(2)YARN具有向后兼容性,用户在MR1上运行的作业,无需任何修改即可运行在YARN之上。(3)框架升级容易,在YARN中,各种计算框架不再是作为一个服务部署到集群的各个节点上(比如MapReduce框架,不再需要部署JobTracker、TaskTracker等服务),而是被封装成一个用户程序库(lib)存放在客户端,当需要对计算框架进行升级时,只需升级用户程序库即可。2.YARN的优点任务1部署YARN集群点击添加文本点击添加文本点击添加文本点击添加文本3.YARN的组成及架构YARN的架构图5-3所示,YARN主要由以下几个组件组成:1)Container2)ResourceManager(RM)3)NodeManager(NM)4)ApplicationMaster(AM)图5-3YARN的架构图任务1部署YARN集群点击添加文本点击添加文本点击添加文本点击添加文本4.YARN工作流程任务1部署YARN集群点击添加文本点击添加文本点击添加文本点击添加文本(1)Client向YARN中提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。(2)ResourceManager为该应用程序分配第一个Container,并与对应的NodeManager通信,要求它在这个Container中启动应用程序的ApplicationMaster。(3)ApplicationMaster首先向ResourceManager注册自己,这样用户就可以直接通过ResourceManager查看应用程序的运行状态。然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束。(4)ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。4.YARN工作流程任务1部署YARN集群点击添加文本点击添加文本点击添加文本点击添加文本(5)ResourceManager返回ApplicationMaster的申请的Containers信息。申请成功的Container,由ApplicationMaster进行初始化。Container的启动信息初始化后,ApplicationMaster与对应的NodeManager通信,要求NodeManager启动Container。AM与NM保持心跳,从而对NM上运行的任务进行监控和管理。(6)Container运行期间,ApplicationMaster对Container进行监控。Container通过RPC协议向对应的AM汇报自己的进度和状态等信息。以让AM随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。(7)应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己。4.YARN工作流程任务1部署YARN集群点击添加文本点击添加文本点击添加文本点击添加文本ResourceManager:存在单点故障,基于ZooKeeper实现HA避免单点故障。NodeManager:失败后,RM将失败任务告诉对应的AM,AM决定如何处理失败的任务。ApplicationMaster:失败后,由RM负责重启,AM需要处理内部任务的容错问题,AM会保存已经运行完成的Task,重启后无需重新运行。5.YARN容错性任务1部署YARN集群点击添加文本点击添加文本点击添加文本点击添加文本任务实施部署YARN集群Hadoop集群节点规划如表5-1所示。HadoopSlave1为YARN集群的主节点,HadoopMaster和HadoopSlave为YARN集群的从节点。任务1部署YARN集群点击添加文本点击添加文本点击添加文本点击添加文本任务实施部署YARN集群1.修改Hadoop配置文件与YARN有关的配置文件有yarn-site.xml和mapred-site.xml。(1)设置YARN资源系统yarn-site.xml。[hadoop@hadoopmasterhadoop]$viyarn-site.xml<configuration><!--设置资源管理器的主机。--><property><name>yarn.resourcemanager.hostname</name><value>hadoopslave1</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>任务1部署YARN集群点击添加文本点击添加文本点击添加文本点击添加文本任务实施部署YARN集群1.修改Hadoop配置文件与YARN有关的配置文件有yarn-site.xml和mapred-site.xml。(2)设置计算框架mapred-site.xml。[hadoop@hadoopmasterhadoop]$cpmapred-site.xml.templatemapred-site.xml[hadoop@hadoopmasterhadoop]$vimapred-site.xml<configuration><property><name></name><value>yarn</value></property></configuration>任务1部署YARN集群点击添加文本点击添加文本点击添加文本点击添加文本任务实施部署YARN集群3.通过WebUI查看集群信息查看集群中节点,应用程序的相关信息,如图5-5所示。任务1部署YARN集群图5-5YARN界面点击添加文本点击添加文本点击添加文本点击添加文本任务实施部署YARN集群4.停止YARN相关的进程​[hadoop@hadoopslave1~]$stop-yarn.sh任务1部署YARN集群点击添加文本点击添加文本点击添加文本点击添加文本任务2部署YARN的HA集群YARN的HA架构如图5-6所示,ResourceManager由一对分别处于Active和Standby状态的ResourceManager组成,它使用基于Zookeeper的选举算法来决定ResourceManager的状态,如当Active节点无法正常工作(如机器宕机或重启)时,处于Standby的就会通过竞争选举产生新的Active节点。1.YARNHA机制图5-6YARN的HA架构图点击添加文本点击添加文本点击添加文本点击添加文本RM状态信息存储方式一般有三种:MemoryRMStateStore:状态信息保存在内存中,一般是用于日常开发测试。FileSystemRMStateStore:状态信息保存在HDFS文件系统同,这个是做了持久化了。ZKRMStateStore:状态信息保存在ZooKeeper中。由于这些状态信息的数据量都不是很大,因此Hadoop官方建议基于ZooKeeper来实现状态信息的存储。2.RM的状态存储

任务2部署YARN的HA集群点击添加文本点击添加文本点击添加文本点击添加文本在前面ZooKeeper集群的基础上,部署YARN的HA集群,集群中各节点角色规划如表5-2所示。任务实施部署YARN的HA集群任务2部署YARN的HA集群表5-2HDFS的HA集群规划点击添加文本点击添加文本点击添加文本点击添加文本1.修改主机名分别修改三台主机名为master、master0、slave。(1)主机master:[hadoop@zookeeper1~]$hostnamectlset-hostnamemaster[hadoop@zookeeper1~]$bash[hadoop@master~]$(2)主机master0:[hadoop@zookeeper2~]$hostnamectlset-hostnamemaster0[hadoop@zookeeper2~]$bash[hadoop@master0~]$(3)主机slave:[hadoop@zookeeper3~]$hostnamectlset-hostnameslave[hadoop@zookeeper3~]$bash[hadoop@slave~]$任务实施部署YARN的HA集群任务2部署YARN的HA集群点击添加文本点击添加文本点击添加文本点击添加文本2.添加主机映射(1)主机master:[hadoop@master~]$sudovi/etc/hostslocalhostlocalhost.localdomainlocalhost4localhost4.localdomain4::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain630master32master033slave(2)将/etc/hosts文件复制到主机master0和slave上。[hadoop@master~]$sudoscp/etc/hosts32:/etc/hosts[hadoop@master~]$sudoscp/etc/hosts33:/etc/hosts任务实施部署YARN的HA集群任务2部署YARN的HA集群点击添加文本点击添加文本点击添加文本点击添加文本3.部署ZooKeeper集群由于前面已经部署过ZooKeeper集群,直接在主机master、master0和slave上启动ZooKeeper服务,并查其状态。(1)主机master:[hadoop@master~]$cdzookeeper-3.4.14/bin/[hadoop@masterbin]$./zkServer.shstart[hadoop@masterbin]$./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/home/hadoop/zookeeper-3.4.14/bin/../conf/zoo.cfgMode:follower(2)主机master0:[hadoop@master0~]$cdzookeeper-3.4.14/bin/[hadoop@master0bin]$./zkServer.shstart[hadoop@master0bin]$./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/home/hadoop/zookeeper-3.4.14/bin/../conf/zoo.cfgMode:follower任务实施部署YARN的HA集群任务2部署YARN的HA集群点击添加文本点击添加文本点击添加文本点击添加文本3.部署ZooKeeper集群(3)主机slave:[hadoop@slave~]$cdzookeeper-3.4.14/bin/[hadoop@slavebin]$./zkServer.shstart[hadoop@slavebin]$./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/home/hadoop/zookeeper-3.4.14/bin/../conf/zoo.cfgMode:leader任务实施部署YARN的HA集群任务2部署YARN的HA集群点击添加文本点击添加文本点击添加文本点击添加文本4.配置HadoopHadoop集群的配置在前面已经讲过,这里重点讲解部署YARN的HA集群所要修改的配置文件。在主机master中设置:(1)设置核心组件core-site.xml。[hadoop@master~]$cdhadoop-2.7.7/etc/hadoop/[hadoop@masterhadoop]$vicore-site.xml<configuration><property><name>fs.defaultFS</name><value>hdfs://master:9000</value></property><!--一定是要有权限的目录--><property><name>hadoop.tmp.dir</name><value>/home/hadoop/data/hadoopdate</value></property></configuration>任务实施部署YARN的HA集群任务2部署YARN的HA集群点击添加文本点击添加文本点击添加文本点击添加文本4.配置Hadoop(2)设置文件系统hdfs-site.xml。[hadoop@masterhadoop]$vihdfs-site.xml<configuration><property><name>.dir</name><value>/home/hadoop/data/hadoopdate/name</value><description>为了保证元数据的安全一般配置多个不同的目录</description></property><property><name>hadoop.tmp.dir</name><value>/home/hadoop/data/hadoopdate/data</value><description>datenode的数据存储目录</description></property><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.secondary.http.address</name><value>master0:50090</value></property></configuration>任务实施部署YARN的HA集群任务2部署YARN的HA集群点击添加文本点击添加文本点击添加文本点击添加文本4.配置Hadoop(3)设置YARN资源系统yarn-site.xml。[hadoop@masterhadoop]$viyarn-site.xml<configuration><!--SitespecificYARNconfigurationproperties--><!--启用resourcemanagerha--><property><name>yarn.resourcemanager.ha.enabled</name><value>true</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!--指定resourcemanager集群的名称--><property><name>yarn.resourcemanager.cluster-id</name><value>cluster2</value></property>任务实施部署YARN的HA集群任务2部署YARN的HA集群点击添加文本点击添加文本点击添加文本点击添加文本4.配置Hadoop(3)设置YARN资源系统yarn-site.xml。<!--启用HA时集群中的RM节点列表--><property><name>yarn.resourcemanager.ha.rm-ids</name><value>rm1,rm2</value></property><!--rm1的主机名--><property><name>yarn.resourcemanager.hostname.rm1</name><value>master0</value></property><!--rm2的主机名--><property><name>yarn.resourcemanager.hostname.rm2</name><value>slave</value></property>任务实施部署YARN的HA集群任务2部署YARN的HA集群点击添加文本点击添加文本点击添加文本点击添加文本4.配置Hadoop(3)设置YARN资源系统yarn-site.xml。<!--ZooKeeper集群的地址--><property><name>yarn.resourcemanager.zk-address</name><value>30:2181,32:2181,33:2181</value></property><!--启用RM的自动恢复--><property><name>yarn.resourcemanager.recovery.enabled</name><value>true</value></property>任务实施部署YARN的HA集群任务2部署YARN的HA集群点击添加文本点击添加文本点击添加文本点击添加文本4.配置Hadoop(3)设置YARN资源系统yarn-site.xml。<!--指定持久存储的类--><property><name>yarn.resourcemanager.store.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value></property></configuration>任务实施部署YARN的HA集群任务2部署YARN的HA集群点击添加文本点击添加文本点击添加文本点击添加文本(4)设置计算框架mapred-site.xml。[hadoop@masterhadoop]$vimapred-site.xml<configuration><property><name></name><value>yarn</value></property></configuration>(5)配置slaves文件,设置集群中的DataNode节点。[hadoop@masterhadoop]$vislaves[hadoop@masterhadoop]$catslavesslave任务实施部署YARN的HA集群任务2部署YARN的HA集群点击添加文本点击添加文本点击添加文本点击添加文本(6)远程发送Hadoop配置文件至集群中其他节点。远程发送Hadoop配置文件到master0和slave的当前目录下。[hadoop@master~]$scp-rhadoop-2.7.7master0:$PWD[hadoop@master~]$scp-rhadoop-2.7.7slave:$PWD在主机master上生效环境变量。[hadoop@master~]$source/etc/profile在主机master0上生效环境变量。[hadoop@master0~]$source/etc/profile在主机slave上生效环境变量。[hadoop@slave~]$source/etc/profile任务实施部署YARN的HA集群任务2部署YARN的HA集群点击添加文本点击添加文本点击添加文本点击添加文本5.启动YARN服务(1)在主机slave启动YARN服务。[hadoop@slave~]$cdhadoop-2.7.7/sbin/[hadoop@slavesbin]$start-yarn.sh(2)在主机master0启动ResourceManager进程。[hadoop@master0~]$cdhadoop-2.7.7/sbin/[hadoop@master0sbin]$yarn-daemon.shstartresourcemanager任务实施部署YARN的HA集群任务2部署YARN的HA集群点击添加文本点击添加文本点击添加文本点击添加文本6.查看当前两个节点中YARN的状态[hadoop@master0sbin]$yarnrmadmin-getServiceStaterm1standby[hadoop@master0sbin]$yarnrmadmin-getServiceStaterm2active任务实施部署YARN的HA集群任务2部署YARN的HA集群点击添加文本点击添加文本点击添加文本点击添加文本通过WebUI可以看到,处于Standby状态的系统会自动将所有网络请求重定向到活动状态的到ActiveRM。当访问8088时,自动跳转到slave的RM上。通过8088/cluster/cluster查看ResourceManager的状态,如图5-7所示。任务实施部署YARN的HA集群任务2部署YARN的HA集群点击

温馨提示

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

评论

0/150

提交评论