【问题标题】:Map Reduce Slot Definition映射缩减槽定义
【发布时间】:2014-08-16 12:22:28
【问题描述】:
我正在努力成为 cloudera Hadoop 管理员。从一开始,我就听到了很多关于 Hadoop 集群中每台机器计算槽的信息,比如定义 Map Slot 和 Reduce 槽的数量。
我在互联网上搜索了获取地图缩减槽的 Noob 定义的日志时间,但没有找到。
阅读 PDF 中的 Map Reduce 配置说明,我真的很生气。
请解释一下集群机器中的计算槽的确切含义。
【问题讨论】:
标签:
hadoop
mapreduce
cluster-computing
job-scheduling
cloudera-cdh
【解决方案1】:
在 map-reduce v.1 中,mapreduce.tasktracker.map.tasks.maximum 和 mapreduce.tasktracker.reduce.tasks.maximum 用于在 mapred-site.xml 中配置 map slot 的数量和 reduce slot。
从 map-reduce v.2 (YARN) 开始,containers 是一个更通用的术语,用来代替 slot,containers 代表节点下可以并行运行的最大任务数,无论是 Map 任务、Reduce 任务还是应用程序主任务(在 YARN 中)。
【解决方案2】:
通常取决于 CPU 和内存
在 out cluster 中,我们为一台 32Core、64G 内存的机器设置了 20 个 map slot 和 15 个 reduce slot
1.大约一个插槽需要一个cpu核心
2.map slot的数量应该比reduce多一点
【解决方案3】:
在 MRV1 中,每台机器都有固定数量的 Slots 专用于 map 和 reduce。
一般来说,每台机器都配置了 4:1 比例的 maps:reducer 在一台机器上。
- 从逻辑上讲,人们会读取大量数据(地图)并将它们处理成小数据集(减少)。
在 MRV2 中引入了容器概念,任何容器都可以运行 map/reducer/shell 脚本。
【解决方案4】:
虽然有点晚了,我还是会回答的。
计算槽。您能想到 Hadoop 中需要一些资源(即内存/CPU/磁盘大小)的所有各种计算吗?
资源 = 所需的内存或 CPU 核心或磁盘大小
分配资源启动Container,分配资源执行map或reduce任务等
这完全取决于您希望如何管理手头的资源。现在那会是什么? RAM、内核、磁盘大小。
目标是确保您的处理不受任何这些集群资源的限制。您希望您的处理尽可能动态。
例如,Hadoop YARN 允许您配置启动 YARN 容器所需的最小 RAM、启动 MAP/REDUCE 任务所需的最小 RAM、JVM 堆大小(用于 Map 和 Reduce 任务)以及每个虚拟内存量任务会得到。
与 Hadoop MR1 不同,您甚至无需在开始执行 Map-Reduce 任务之前进行预配置(例如 RAM 大小)。从某种意义上说,您希望资源分配尽可能具有弹性,即为 MAP 或 REDUCE 任务动态增加 RAM/CPU 内核。