Hadoop MapReduce Task Scheduler Introduction

1,219 views

Published on

Introduction of Hadoop MapReduce Task Scheduler, for training.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,219
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Hadoop MapReduce Task Scheduler Introduction

  1. 1. Introduction toHadoop TaskScheduler July 11, 2012 Guangxian Liao Big Data Engineering Team Hanborq Inc.
  2. 2. MapReduce任务调度• 配置:mapred.jobtracker.taskScheduler• 插件式Task调度器• 基类TaskScheduler• JT收到TT的心跳时,使用调度器分配Task 2
  3. 3. Task调度器 调度器 介绍 JobQueueTaskScheduler 一个队列,FIFO,可以指定优先级CapacityTaskScheduler(contrib目 多个队列,每个队列可以指定资源百分比, 录) FIFO,支持优先级。可以设定单个用户占用 队列资源的百分比上限 FairScheduler(contrib目录) 默认每个用户有单独的Job pool,缺省平均 分配资源,每个job可以配置优先级,每个 pool可以配置权值和最低资源保障,支持 Slot抢占。LimitTasksPerJobTaskScheduler 基本功能和JobQueueTaskScheduler一样,可 以指定每个Job同时运行的Task数量上限 mapred.jobtracker.scheduler.maxRunningTasks PerJob 3
  4. 4. JobQueueTaskScheduler调度策略• 按照数据局部性分配MapTask。• 保证每个TaskTracker负载比较均衡。• 默认TaskTracker和Map处理的数据片(split)在同一个节点或者同一个机 架认为是LocalMapTask。• 网络拓扑由脚本来提供,脚本负责获取主机对应的拓扑位置。 ${topology.script.file.name}• 可以一次heartbeat分配多个LocalMapTask。• 如果没有LocalMapTask可以分配,则可以分配一个NonLocalMapTask。• ReduceTask一次最多分配一个。 4
  5. 5. FairScheduler配置• 配置:mapred.fairscheduler.poolnameproperty• Job的poolname由哪个JobConf参数来指定。• 默认是user.name,按照用户分pool• 也可以指定为mapred.job.queue.name• 或者group.name 5
  6. 6. FairScheduler配置• 配置:mapred.fairscheduler.pool• 用户可以直接指定job放入哪个pool• 配置这个参数后,mapred.fairscheduler.poolnameproperty 失效 6
  7. 7. FairScheduler配置• 配置:mapred.fairscheduler.allocation.file• Pool分配的xml文件的路径• Absolute path 7
  8. 8. FairScheduler xml文件举例• <?xml version="1.0"?> <allocations> <pool name="sample_pool"> <minMaps>5</minMaps> <minReduces>5</minReduces> <weight>2.0</weight> </pool> <user name="sample_user"> <maxRunningJobs>6</maxRunningJobs> </user> <userMaxJobsDefault>3</userMaxJobsDefault> </allocations> 8
  9. 9. FairScheduler Task抢占• mapred.fairscheduler.preemption• Default:false• 是否支持抢占 9
  10. 10. 两种情况会抢占• 一个Pool一定时间内没有分配到最低的资源• 一个Job一定时间内没有占用到它应该被分 配资源的一半。 10
  11. 11. The EndThank You Very Much! liaoguangxian@gmail.com 11

×