[关闭]
@xtccc 2016-01-14T10:42:44.000000Z 字数 3261 阅读 5928

YARN 使用

给我写信
GitHub

此处输入图片的描述

YARN


适用版本:Hadoop 2.6.0-cdh5.5.1

目录:


YARN Administrative Tools


查看YARN命令工具的帮助

  1. yarn rmadmin -help

QQ20151225-0@2x.png-350.5kB

Managing YARN Jobs

YARN jobs可以用 “yarn application” 命令进行管理。
QQ20151225-1@2x.png-198.4kB

List YARN App

  1. yarn application -list

Kill YARN App

  1. yarn application -kill {yarn-app-id}




配置YARN参数


Container Memory

在 yarn-site.xml 文件中,可以通过以下参数为container配置memory

Container Cores

在 yarn-site.xml 文件中,可以通过参数配置为container配置virutal CPU cores

MapReduce Properties

使用YARN之后,MapReduce作为YARN中的一个app运行,可以在mapred-site.xml中对map container和reduce container相关的参数进行配置(这几个配置在CDH 5.5.1中似乎不再使用了/无效




日志


日志聚合

在YARN中,属于同一个app的所有containers的日志将被聚合(aggregated)起来,并写入指定文件系统(HDFS)的某个日志文件中。当一个YARN app运行完成后,我们将得到一个application-level日志目录,同时对于每个节点,也会得到一个日志文件(含有在该节点上运行的、属于该app的全部containers的日志)。



:运行一个MapReduce Job,它的id为“application_1451022530184_0001”,则我们可以用命令 同时我们也可以在HDFS中看到日志的目录结构:
QQ20151225-2@2x.png-96.4kB


查看聚合日志

用户可以通过YARN命令行工具、web UI来访问这些日志,也可以在文件系统中直接访问这些日志文件。
QQ20151225-3@2x.png-86.2kB

例如,可以通过命令

  1. yarn logs -applicationId application_1451022530184_0001

直接输出该YARN App产生的日志(很长,包含了全部containers的日志)。
也可以只输出某个container产生的日志。


查看NM节点上的本地日志

YARN App运行时,每个NM节点上都会产生本地日志,这些日志在被聚合到HDFS后,经过一段时间后会被NM的DeletionService删除,这个时间间隔由以下参数决定

    yarn.nodemanager.delete.debug-delay-sec

该参数的默认值为0,如果将该值设置地大一些(例如600,即10分钟),则我们可以查看NM上container产生的本地日志的目录,这个目录的配置参数为

    yarn.nodemanager.local-dirs


配置Log4j

可以为ApplicationMaster或者exector提供我们自定义的Log4j配置,有以下2种方式



通过在log4j.properties文件中使用“spark.yarn.app.container.log.dir”参数,我们还可以令log4j将日志写入到YARN,这样YARN可以聚合并正确地显示HDFS中的log

    例如,针对普通的Spark job,设置“log4j.appender.file_appender.File=${spark.yarn.app.container.log.dir}/spark.log”;针对streaming app,配置“RollingFileAppender”并将日志文件的路径设置到YARN的日志目录,可以避免日志文件耗尽磁盘空间,并且也可以通过YARN log utlity来显示这些日志内容。


添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注