我正在成为一名cloudera Hadoop管理员。从我开始,我听到很多关于在Hadoop集群中计算每台机器的插槽的信息,比如定义Map Slots和Reduce插槽的数量。
我已经在互联网上搜索了一个日志时间,以获得Map Reduce Slot的Noob定义,但没有找到。
通过PDF解释Map Reduce的配置,我真的很生气。
请解释一下群集机器中计算插槽的确切含义。
答案 0 :(得分:4)
在map-reduce v.1中,mapreduce.tasktracker.map.tasks.maximum和mapreduce.tasktracker.reduce.tasks.maximum用于在mapred-site.xml中相应地配置映射插槽的数量并减少插槽。
从map-reduce v.2(YARN)开始,容器是一个更通用的术语而不是槽,容器表示可以在节点下并行运行的最大任务数,无论是Map任务,Reduce任务还是应用程序主任务(在YARN中)。
答案 1 :(得分:0)
一般取决于CPU和内存
在out cluster中,我们为32Core,64G内存的机器设置了20个map槽和15个reduce槽
1.大约一个插槽需要一个CPU核心
2.地图槽的数量应该比减少多一点
答案 2 :(得分:0)
在MRV1中,每台机器都有固定数量的专用于地图和减少的插槽。 通常,每台机器配置有4:1比例的地图:机器上的减速器。
在MRV2中,容器的概念进来了,任何容器都可以运行map / reducer / shell脚本。
答案 3 :(得分:0)
有点晚了,我还是会回答的。
计算插槽。你能想到Hadoop中需要一些资源的所有各种计算,即内存/ CPU /磁盘大小。
资源=需要内存或CPU核心或磁盘大小
分配资源以启动Container,分配资源以执行地图或减少任务等。
这就是您希望如何管理手头资源的全部内容。那会是什么? RAM,内核,磁盘大小。
目标是确保您的处理不受任何一个群集资源的限制。您希望您的处理尽可能动态。
例如,Hadoop YARN允许您配置启动YARN容器所需的最小RAM,最小RAM需要启动MAP / REDUCE任务,JVM堆大小(用于映射和减少任务)以及每个虚拟内存量任务会得到。
与Hadoop MR1不同,在开始执行Map-Reduce任务之前,不要预先配置(作为示例RAM大小)。从某种意义上说,您希望资源分配尽可能具有弹性,即动态增加MAP或REDUCE任务的RAM / CPU内核。