hadoop记录篇4-mapreduce2(yarn)集群安装和ha高可用

一。 yarn架构

    mapreduce从 0.2.3之后 进行了重构, 发布新的mapreduce 版本v2, 也可以称为 yarn 引入了资源调度的概念 之前的JobTracker 被拆分成了 Resouce Manager和ApplicationMaster

  结构上 yarn存在两种类型的节点 主节点称为Resouce Manager(RM) 从节点(执行任务)称为 Node Manager(NM)

  一个yarn应用中只有一个激活的Resouce Manager 每个应用(每个拆分的任务)都有一个ApplitionMaster (AM)所有被提交的job 都会经过 Resouce Manager进行分配  Application Master主要从 Resouce Manager中申请资源 同时监控 每个NodeManager运行任务的状态信息

   ResouceManager包含两个主要控件  Scheduler and ApplicationsManager.

   Scheduler用于分配有限资源给应用 只是调度资源不会监控 资源单位是 Container yarn提供了一些调度的类可供使用 比如CapacityScheduler和 FairScheduler

   ApplicationsManager 用于接收任务的提交 指定哪个NodeManager的ApplicationMaster执行任务 协商ApplicationMaster申请的第一个Container资源 同意后交给调度,

 提供失败后重启ApplicationMaster功能

   NodeManger是一个Container的代理 监控当前机器的cpu 内容 io 网络等 报告这些资源给Resouce Manager 方便统一管理

原理图

     hadoop记录篇4-mapreduce2(yarn)集群安装和ha高可用_第1张图片

运行过程:

    1 启动后 每个NodeManager向ResouceManager汇报每个节点的网络 cpu 内存等资源 NodeManager进行汇总  RM的Scheduler 将所有资源

       分成多个Container

    2 客户端提交任务给ResourceManager的ApplicationManager  ApplicationManager调用任务拆分成多个 启用对应NodeManager的ApplicationMaster 调用Scheduler 分配 用于运行Containner ApplicationMaster开始执行任务  

    3 ApplicationMaster监控任务执行状态 并发送心跳给ResourceManager

  

二 。yarn集群安装

  环境 使用之前  hadoop记录篇3-namenode水平拓展Federation+viewfs

机器

/etc/hosts    
192.168.58.147 node1    
192.168.58.149 node2    
192.168.58.150 node3    
192.168.58.151 node4    

集群(clusterid:hadoop)

namenode    
   node1  nameserviceid:node1    
   node2  nameserviceid:node2  
secondarynode  
   node1  
   node2  
DataNodes    
   node2    
   node3    
   node4    
      
Resource Manager
  node1
NodeManger
  node2
  node3
  node4  
hdfs配置参考前面文章 

进入etc/haddop中 将 mapred-site.xml.template重命名为 mapred-site.xml 添加如下内容


        mapreduce.framework.name
        yarn
yarn-site.xml 添加内容


        yarn.nodemanager.aux-services
        mapreduce_shuffle
    
 
        yarn.resourcemanager.hostname
        node1
    
以下关于yarn配置 都有默认值 给出意思

yarn.resourcemanager.hostname 表示resourcemanager的主机名 
yarn.resourcemanager.address  表示resourcemanger中applicationmanager对外接受提交任务的ip和端口 默认ip本机 端口 ${yarn.resourcemanager.hostname}:8032
yarn.resourcemanager.scheduler.address 表示resoucemanager中Scheduler用于接受NodeManager汇报本地cpu 网络等资源的端口 默认 ${yarn.resourcemanager.hostname}:8030
yarn.resourcemanager.resource-tracker.address 表示nodemanager上用于接受被切片的job的端口 默认 ${yarn.resourcemanager.hostname}:8031
yarn.resourcemanager.webapp.address 用于查看所有提交任务信息的web界面 默认端口 ${yarn.resourcemanager.hostname}:8088
yarn.resourcemanager.admin.address 管理员用于管理资源的端口 默认 ${yarn.resourcemanager.hostname}:8033
yarn.resourcemanager.scheduler.class 调度使用的类 建议使用CapacityScheduler 或者FairScheduler  默认是org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
yarn.scheduler.minimum-allocation-mb 每个containner分配的最小内存 默认1024M
yarn.scheduler.maximum-allocation-mb 每个container分配的最大内存 默认 8192M
yarn.nodemanager.resource.memory-mb nodemanger可以使用最大的内存 默认 8192M

NodeManager的所有节点部署的位置和datanode配置是一致的 都是在slaves文件中配置的

启动yarn集群

start-yarn.sh

三。yarn高可用安装

  resourcemanager存在单点故障问题 提供一个standby的备机用于容)

原理:

hadoop记录篇4-mapreduce2(yarn)集群安装和ha高可用_第2张图片

yarn-site.xml配置(参考http://hadoop.apache.org/docs/r2.6.5/hadoop-yarn/hadoop-yarn-site/ResourceManagerHA.html)







        yarn.nodemanager.aux-services
        mapreduce_shuffle
    
	

	


   yarn.resourcemanager.ha.enabled
   true
 
 
 
   yarn.resourcemanager.cluster-id
   ha_resouce
 
  
 
   yarn.resourcemanager.ha.rm-ids
   rm1,rm2
 
  
 
   yarn.resourcemanager.hostname.rm1
   node1
 
  
 
   yarn.resourcemanager.hostname.rm2
   node2
 
  
 
   yarn.resourcemanager.zk-address
   192.168.58.1:2181
  
  

yarn.resourcemanager.ha.automatic-failover.enabled
true


	

node1上 执行 start-yarn.sh 不会自动启动node2上的resourcemanager
node2 手工启动 yarn-daemon.sh start resourcemanager


node1上查看rm1和rm2 哪个是active哪个是standby
[root@node1 hadoop]# yarn rmadmin -getServiceState rm2
standby
[root@node1 hadoop]# yarn rmadmin -getServiceState rm1
active

尝试在node1上停止 resourcemanager 测试rm2是否自动切换为active

[root@node1 hadoop]# yarn-daemon.sh stop resourcemanager
stopping resourcemanager
[root@node1 hadoop]# yarn rmadmin -getServiceState rm2  
active


转载于:https://www.cnblogs.com/liaomin416100569/p/9331179.html

你可能感兴趣的:(hadoop记录篇4-mapreduce2(yarn)集群安装和ha高可用)