YARN安装配置

来源:互联网 发布:instsee新域名 编辑:程序博客网 时间:2024/06/07 21:46

(一)YARN初步理解

yarn结构图如下:

1、YARN

  下一代的MapReduce系统框架,也称为MRv2(MapReduce version 2), 它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度。

  YARN的基本思想是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离,主要方法是创建一个全局的ResourceManager(RM)

  和若干个针对应用程序的ApplicationMaster(AM)。这里的应用程序是指传统的MapReduce作业或作业的DAG。

2、ResourceManager(RM)

  RM和与NM(NodeManager每个节点一个)共同组成整个数据计算框架,RM是系统中将资源分配给各个应用的最终决策者。

  RM有两个组件组成:

    调度器(Scheduler)

    应用管理器(ApplicationsManager,ASM)

  调度器根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。

  需要注意的是,该调度器是一个“纯调度器”,它不再从事任何与具体应用程序相关的工作,比如不负责监控或者跟踪应用的执行状态等,也不负责重新启动

  因应用执行失败或者硬件故障而产生的失败任务,这些均交由应用程序相关的ApplicationMaster完成。调度器仅根据各个应用程序的资源需求进行资源分配,

  而资源分配单位用一个抽象概念“资源容器”(Resource Container,简称Container)表示,Container是一个动态资源分配单位,它将内存、CPU、磁盘、网络等资源封装在一起,

  从而限定每个任务使用的资源量。此外,该调度器是一个可插拔的组件,用户可根据自己的需要设计新的调度器,YARN提供了多种直接可用的调度器,比如Fair Scheduler和Capacity Scheduler等。

3、NodeManager(NM)

  NM是每个节点上的资源和任务管理器,一方面,它会定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态;另一方面,它接收并处理来自AM的Container启动/停止等各种请求。

4、ApplicationsManager(ASM)

  ASM主要负责接收作业,协商获取第一个容器用于执行AM和提供重启失败AM container的服务。

5、ApplicationMaster(AM)

  AM实际上是一个具体的框架库,它的任务是【与RM协商获取应用所需资源】和【与NM合作,以完成执行和监控task的任务】。

  注:RM只负责监控AM,在AM运行失败时候启动它,RM并不负责AM内部任务的容错,这由AM来完成。

6、Container

  Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示。

  YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。


(二)YARN安装部署

1、配置yarn-site.xml

  配置如下:

  

  

2、配置mapred-site.xml

  在${HADOOP_HOME}/etc/hadoop/下,将mapred-site.xml.templat重命名成mapred-site.xml

  配置如下:

  

  相比于Hadoop1.0,用户无需再配置mapred.job.tracker,这是因为JobTracker已变成客户端的一个库,他可能被随机调度到任何一个slave上,也就是它的位置是动态生成的

3、启动关闭

   在h1上启动yarn,执行

     >  sbin/start-yarn.sh

   在h2上启动JobHistory Server,执行

     > sbin/mr-jobhistory-daemon.sh start historyserver

   注:Hadoop启动jobhistoryserver来实现web查看作业的历史运行情况,由于在启动hdfs和Yarn进程之后,jobhistoryserver进程并没有启动,需要手动启动

     jobhistory

  关闭 sbin/stop-yarn.sh


(三)Hadoop yarn配置参数

我们在配置yarn的时候只有充分了解各参数的含义,才能避免隐患。这些参数均在yarn-site.xml中配置

  以下涉及的简写:

  RM :ResourceManager

  AM :ApplicationMaster

  NM :NodeManager

 

参数默认值描述yarn.resourcemanager.hostname RM的hostnameyarn.resourcemanager.address${yarn.resourcemanager.hostname}:8032RM对客户端暴露的地址,客户端通过该地址向RM提交应用程序等yarn.resourcemanager.scheduler.address${yarn.resourcemanager.hostname}:8030RM对AM暴露的地址,AM通过地址想RM申请资源,释放资源等yarn.resourcemanager.webapp.address${yarn.resourcemanager.hostname}:8088RM对外暴露的web  http地址,用户可通过该地址在浏览器中查看集群信息yarn.resourcemanager.webapp.https.address${yarn.resourcemanager.hostname}:8090web https 地址yarn.resourcemanager.resource-tracker.address${yarn.resourcemanager.hostname}:8031RM对NM暴露地址,NM通过该地址向RM汇报心跳,领取任务等yarn.resourcemanager.resource-tracker.client.thread-count50处理来自NM的RPC请求的handler数yarn.resourcemanager.admin.address${yarn.resourcemanager.hostname}:8033管理员可以通过该地址向RM发送管理命令等yarn.resourcemanager.scheduler.class

org.apache.hadoop.yarn.server.resourcemanager

.scheduler.capacity.CapacityScheduler

资源调度器主类yarn.resourcemanager.scheduler.client.thread-count50处理来自AM的RPC请求的handler数yarn.scheduler.minimum-allocation-mb1024可申请的最少内存资源,以MB为单位yarn.scheduler.maximum-allocation-mb8192可申请的最大内存资源,以MB为单位yarn.scheduler.minimum-allocation-vcores1可申请的最小虚拟CPU个数yarn.scheduler.maximum-allocation-vcores32可申请的最 大虚拟CPU个数yarn.nodemanager.local-dirs${hadoop.tmp.dir}/nm-local-dir中间结果存放位置,可配置多目录yarn.log-aggregation-enablefalse是否启用日志聚合yarn.nodemanager.remote-app-log-dir/tmp/logs日志聚合目录yarn.nodemanager.resource.memory-mb8192NM总的可用物理内存,以MB为单位。一旦设置,不可动态修改yarn.nodemanager.resource.cpu-vcores8可分配的CPU个数yarn.nodemanager.aux-services NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序

 

Hadoop历史服务器jobhistoryserver的配置

jobhistoryserver的默认值我们可以在mapred-site.xml文件中进行修改

下面列举几个常用参数

参数默认值描述mapreduce.jobhistory.address0.0.0.0:10020JobHistory服务器IPC 主机:端口mapreduce.jobhistory.webapp.address0.0.0.0:19888obHistory服务器Web UI地址,用户可根据该地址查看Hadoop历史作业情况mapreduce.jobhistory.done-dir${yarn.app.mapreduce.am.staging-dir}/history/done在什么目录下存放已经运行完的Hadoop作业记录mapreduce.jobhistory.intermediate-done-dir${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate正在运行的Hadoop作业记录

 

 

 

 

 

(1)、历史作业记录是存放在HDFS目录中;

(2)、由于历史作业记录可能非常多,所以历史作业记录是按照年/月/日的形式分别存放在相应的目录中,这样便于管理和查找;

(3)、对于每一个Hadoop历史作业记录相关信息都用两个文件存放,后缀名分别为*.jhist,*.xml。

    *.jhist文件里存放的是具体Hadoop作业的详细信息

    *.xml文件里面记录的是相应作业运行时候的完整参数配置

(4)、每一个作业的历史记录都存放在一个单独的文件中


0 0
原创粉丝点击