Yarn关于MR的资源管理

Kylin在#4 Step Name: Build Dimension Dictionary步骤,速度极其慢,查看MR任务的日志如下:

2014-07-04 17:30:37,492 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Recalculating schedule, headroom=0
2014-07-04 17:30:37,492 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Reduce slow start threshold not met. completedMapsForReduceSlowstart 2
2014-07-04 17:30:38,496 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Ramping down all scheduled reduces:0
2014-07-04 17:30:38,496 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Going to preempt 0

这是个资源分配导致的问题!

YARN中,资源包括内存和CPU,资源的管理是由ResourceManager和NodeManager共同完成,ResourceManager负责所有节点资源的管理和调度。NodeManager负责进程所在结点资源的分配和隔离。ResourceManager将某个NodeManager上资源分配给任务。下面详细介绍其中的一些重要参数。

yarn.nodemanager.resource.memory-mb
每个节点可用的内存,单位是mb,默认是8G,用于供NodeManager分配的。

yarn.scheduler.minimum-allocation-mb

单个任务可申请的最小内存,默认是1024mb,稍微大一点,避免小的资源浪费情况。

yarn.scheduler.maximum-allocation-mb

单个任务可申请的最大内存,默认是8192mb. 如果是spark任务的话,这里调大吧

mapreduce.map.memory.mb

每个map任务的物理内存限制,应该大于或等于yarn.scheduler.minimum-allocation-mb

mapreduce.reduce.memory.mb

每个reduce任务的物理内存限制

mapreduce.map.java.opts

每个map进程的jvm堆的大小

mapreduce.reduce.java.opts

每个reduce进程的jvm堆的大小

每个节点可以运行map数和redue输,由yarn.nodemanager.resource.memory-mb除于mapreduce.map.memory.mb和mapreduce.reduce.memory.mb得到

猜你喜欢

转载自blog.csdn.net/xiaozhaoshigedasb/article/details/93979475