参数名
参数值
描述
在在平台情况、在哪个文件
hdp
apache
-attempts
2
http地址
${}:8032
ResourceManager对客户端暴露的地址。客户端通过该地址向RM提交应用程序,杀死应用程序等
${}:8030
ResourceManager 对 ApplicationMaster 暴露的访问地址。ApplicationMaster 通过该地址向 RM 申请资源、释放资源等
${}:8031
ResourceManager 对 NodeManager 暴露的地址.。NodeManager 通过该地址向 RM 汇报心跳,领取任务等
${}:8033
ResourceManager 对管理员暴露的访问地址。管理员通过该地址向 RM 发送管理命令等。
${}:8088
ResourceManager 对外 web ui 地址。用户可通过该地址在浏览器中查看集群各类信息
http://hostname:19888/jobhistory/logs
log server的地址
心跳
-interval-ms
1000(毫秒)
NodeManager 心跳间隔
调度器
-- 容量调度器
-- 公平调度器
启用的资源调度器主类。目前可用的有 FIFO、Capacity Scheduler 和 Fair Scheduler。
-count
50
处理来自 NodeManager 的 RPC 请求的 Handler 数目
无
-count
50
处理来自 ApplicationMaster 的 RPC 请求的 Handler 数目
-path
''
NodeManager 黑白名单。如果发现若干个 NodeManager 存在问题,比如故障率很高,任务运行失败率高,则可以将之加入黑名单中。注意,这两个配置参数可以动态生效。(调用一个 refresh 命令即可)
无
-path
''
-interval-ms
资源
内存
在 YARN 中,资源管理由 ResourceManager 和 NodeManager 共同完成,其中,ResourceManager 中的调度器负责资源的分配,而 NodeManager 则负责资源的供给和隔离。ResourceManager 将某个 NodeManager 上资源分配给任务(这就是所谓的“资源调度”)后,NodeManager 需按照要求为任务提供相应的资源,甚至保证这些资源应具有独占性,为任务运行提供基础的保证,这就是所谓的资源隔离.
默认情况下,YARN 采用了线程监控的方法判断任务是否超量使用内存,一旦发现超量,则直接将其杀死。由于Cgroups 对内存的控制缺乏灵活性(即任务任何时刻不能超过内存上限,如果超过,则直接将其杀死或者报 OOM),而 Java 进程在创建瞬间内存将翻倍,之后骤降到正常值,这种情况下,采用线程监控的方式更加灵活(当发现进程树内存瞬间翻倍超过设定值时,可认为是正常现象,不会将任务杀死),因此 YARN 未提供 Cgroups 内存隔离机制。
内存参数关系图:
-mb
8192
NodeManager 总的可用物理内存。注意,该参数是不可修改的,一旦设置,整个运行过程中不可动态修改。注意,如果你的节点内存资源不够 8GB,则需要调减小这个值,而 YARN 不会智能的探测节点的物理内存总量。
-allocation-mb
1024
单个可申请的最小/最大内存资源量。比如设置为 1024 和 3072,则运行 MapRedce 作业时,每个 Task 最少可申请 1024MB 内存,最多可申请 3072MB 内存
-allocation-mb
8192
-check-enabled
true
是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true
虚拟内存
-pmem-ratio
2.1
每使用 1MB 物理内存,最多可用的虚拟内存数
-check-enabled
是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true
CPU
-calculator
不管是哪个版本(hdp、apache、cdh)的spark,在设置executor cores,无论设置为几,都只有一个核,这个问题跟yarn相关,默认YARN不会对cpu进行调度和分配,只会考虑内存。打开该功能,需要在中增加以下配置
-allocation-vcores
1
单个可申请的最小/最大虚拟 CPU 个数。比如设置为 1 和 4,则运行 MapRedce 作业时,每个 Task 最少可申请 1 个虚拟 CPU,最多可申请 4 个虚拟 CPU
-allocation-vcores
32
虚拟cpu核数
-vcores
8
NodeManager总的可用虚拟CPU个数
磁盘、硬盘
-disk-utilization-per-disk-percentage
90
节点磁盘使用上限,如果超过90%,拒绝写入
运行配置
-services
mapreduce_shuffle,spark_shuffle,spark2_shuffle
''
NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序
mapreduce_shuffle,spark_shuffle,spark2_shuffle
-services.mapreduce_shuffle.class
-services.spark2_shuffle.class
-services.spark2_shuffle.classpath
{{stack_root}}/${}/spark2/aux/*
-services.spark_shuffle.class
-services.spark_shuffle.classpath
{{stack_root}}/${}/spark/aux/*
日志
本地日志
-dirs
/hadoop/yarn/local
${}/nm-local-dir
存放application执行本地文件的根目录,执行完毕后删除,按用户名存储。注意,这个参数通常会配置多个目录,已分摊磁盘IO负载
-dirs
${}/userlogs
存放application本地执行日志的根目录,执行完毕后删除,按用户名存储
-seconds
10800(3小时)
NodeManager上日志最多存放时间(不启用日志聚集功能时有效)
日志聚合
-aggregation-enable
true
执行结束后收集各个container本地的日志
-app-log-dir
/app-logs
/tmp/logs
任务日志在HDFS上的聚合路径
-app-log-dir-suffix
logs
聚合日志后的存放地址由 ${remote-app-log-dir}/${user}/{thisParam}构成
日志归档
-app-log-archive-dir
/tmp/archived
任务日志在HDFS上的归档路径
无
5000
任务日志归档最小文件数。当“-app-log-dir”文件夹下文件数大于等于该设置的值时归档任务启动
无
-check-interval-seconds
-1
任务日志归档任务启动周期(秒)。只有日志文件数达到“”设置值时日志文件才会被归档。周期设置为“0”或“-1”时归档功能禁用
无
日志清理
-seconds
2592000(秒,30天)
1296000
任务日志在HDFS上的保留时间。设置为“-1”时日志文件永久保存
-check-interval-seconds
86400(秒,1天)
86400
任务日志清理任务的检查周期(秒)。设置为“-1”时检查周期为日志保留时间的十分之一
-delay-sec
600
application执行结束后延迟10min删除本地文件及日志
log4j
队列
User Limit Factor
The upper limit multiple of the queue’s configured minimum capacity that one user’s applications can utilize.
User Limit Factor
The minimum guaranteed percentage of queue capacity allocated for a user's applications.
Maximum Applications
The maximum number of applications that can be running or pending in this specific queue at any point of time.
Maximum AM Resource
The maximum percentage of total capacity of this specific queue that can be utilized by application masters at any point in time.
Ordering policy
The ordering policy to use for applications scheduled to this queue. 1、FIFO: Applications get available capacity based on order they are submitted 2、Fair: Applications will get fair share of capacity, regardless of order submitted
market
如果执行引擎是mapreduce,用该参数指定队列
hive.
market
如果执行引擎是tez,用该参数指定队列