about云开发

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 16991|回复: 5

[概念型] hadoop中什么是slots

[复制链接]
发表于 2014-5-1 15:12:46 | 显示全部楼层 |阅读模式
问题导读:
1.Slots是什么?
2.Map slots总数如何计算?
3.Reducer slots总数如何计算?





Slots是Hadoop的一个重要概念。然而在Hadoop相关论文,slots的阐述难以理解。网上关于slots的概念介绍也很少,而对于一个有经验的Hadoop开发者来说,他们可能脑子里已经理解了slots的真正含义,但却难以清楚地表达出来,Hadoop初学者听了还是云里雾里。我来尝试讲解一下,以期抛砖引玉。
首先,slot不是CPU的Core,也不是memory chip,它是一个逻辑概念,一个节点的slot的数量用来表示某个节点的资源的容量或者说是能力的大小,因而slot是 Hadoop的资源单位。


上面我们抛开资源,我们一个人的能力不同,干的活也不同。我们对于一个工程划分很多工作。假设所有的工作都是一样的。能力强的完成的工作量就大,能力弱的就工作量小一些。
假如
A一天可以完成2个工作量
B一天可以完成3个工作量
那么他们就需要去领工作量。
A最多领取2个工作量
B最多可以两区3个工作量.

一个项目总的工作量是确定的,你即使有10个工作量,那么不一定领到10个工作量。
而这里的工作量凭证可以被认为slot。这里的工作量凭证,也就是你可以做这项工作

我们下面来看:
hadoop利用工作量来管理和分配节点的工作量,每个人(A)申请领取工作是以工作量为单位,每个人会确定自己的能干多少工作量。当job执行的时候,先向工头(JobTracker)申请工作量,工头分配剩余的工作凭证,领到凭证后,开始干活,干完活把这个工作许可证上交。工作许可证可以理解为slot。




Hadoop利用slots来管理分配节点的资源。每个Job申请资源以slots为单位,每个节点会确定自己的计算能力以及memory确定自己包含的slots总量。当某个Job要开始执行时,先向JobTracker申请slots,JobTracker分配空闲的slots,Job再占用slots,Job结束后,归还slots。

每个TaskTracker定期(例如淘宝Hadoop心跳周期是5s)通过心跳(hearbeat)与Jobtracker通信,一方面汇报自己当前工作状态,JobTracker得够某个TaskTracker是否Alive;同时汇报自身空闲slots数量。JobTracker利用某个调度规则,如Hadoop默认调度器FIFO或者Capacity Scheduler、FairScheduler等。(注:淘宝Hadoop使用云梯调度器YuntiScheuler,它是基于Fair Scheduler进行修改的,具体针对哪些点进行了修改,下次再介绍)。

Hadoop里有两种slots, map slots和reduce slots,map task使用map slots,一一对应,reduce task使用reduce slots。注:现在越来越多的观点认为应该打破map slots与 reduce slots的界限,应该被视为统一的资源池,they are all resource,从而提高资源的利用率。区分map slots和reduce slots,容易导致某一种资源紧张,而另一个资源却有空闲。在Hadoop的下一代框架MapR中,已经取消了map slots与reduce slots的概念,并将Jobtracker的功能一分为二,用ResourceManager来管理节点资源,用ApplicationMaster来监控与调度作业。ApplicationMaster是每个Application都有一个单独的实例,application是用户提交的一组任务,它可以是一个或多个job的任务组成。

Hadoop中通常每个tasktracker会包含多个slots,Job的一个task均对应于tasktracker中的一个slot。系统中map slots总数与reducer slots总数的计算公式如下:
Map slots总数=集群节点数×mapred.tasktracker.map.tasks.maximum
Reducer slots总数=集群节点数×mapred.tasktracker.reduce.tasks.maximum




本帖被以下淘专辑推荐:

0

主题

6

听众

4

收听

中级会员

Rank: 3Rank: 3

积分
237
发表于 2014-5-2 08:00:02 | 显示全部楼层
好文章已读。

0

主题

3

听众

0

收听

注册会员

Rank: 2

积分
114
发表于 2014-5-4 18:50:15 | 显示全部楼层
你好,你的这篇文章很受益,请问文章中的 "注:淘宝Hadoop使用云梯调度器YuntiScheuler,它是基于Fair Scheduler进行修改的,具体针对哪些点进行了修改,下次再介绍" 是否已经出来了,求分享,非常感谢!

点评

有时间会补充的  发表于 2014-5-6 04:21

0

主题

2

听众

0

收听

新手上路

Rank: 1

积分
45
发表于 2014-5-8 13:04:23 | 显示全部楼层
好文章,赞一个

1

主题

5

听众

0

收听

高级会员

Rank: 4

积分
1194
发表于 2018-6-11 22:40:38 | 显示全部楼层
看了这么久,似乎就知道了个slot是节点资源的表示单位样 其他额也没看出什么样,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /3 下一条

QQ|小黑屋|about云开发-学问论坛|社区 ( 京ICP备12023829号

GMT+8, 2018-11-21 02:24 , Processed in 0.462821 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.2 Licensed

快速回复 返回顶部 返回列表