【问题标题】:Hadoop Map task/Map objectHadoop Map 任务/Map 对象
【发布时间】:2014-04-21 15:26:12
【问题描述】:

根据理论,以下属性用于定义数据节点处的地图/红色任务槽数。 mapred.tasktracker.map.tasks.maximum | mapred.map.tasks

此外,映射器对象的数量由 MapReduce 作业中的输入拆分数量决定。我们实现 map/red 函数,框架创建对象并将它们发送到最接近数据块的位置。

那么map任务槽和framework创建的mapper对象有什么区别。

假设我在 5 个数据节点上存储 2TB 文件,每个节点有 400Mb。 如果我定义dfs.block.size =100Mb,那么每个节点将保存 400/100 = 4 个数据块。在这里,理想情况下,在 4 个数据块中,我们可以有 4 个输入拆分,然后每个节点有 4 个映射器对象。同时,如果我定义mapred.tasktracker.map.tasks.maximum = 2mapred.map.tasks=2,那么我能从中得出什么结论。我可以说 4 个映射器对象将在 2 个映射任务槽之间共享吗?我可能走错了方向,任何澄清都会有所帮助。

【问题讨论】:

    标签: java hadoop mapreduce hadoop-streaming hadoop-partitioning


    【解决方案1】:

    map slots 决定了 tasktracker 可以运行多少个map tasksmap tasks 由输入拆分决定,您无法更改它。如果map tasks 超过map slots 一些map tasks 将阻塞并运行直到其他任务完成。

    【讨论】:

    • 感谢您的澄清。所以从技术上讲,地图槽和地图任务之间有什么区别。我可以说映射任务只不过是多个 jvm(运行多个映射器对象)。那么什么是 SLOT 呢?
    • Hadoop用户slot划分计算机资源。计算机资源包括内存和 CPU。
    猜你喜欢
    • 2015-12-11
    • 2011-08-06
    • 1970-01-01
    • 2013-09-26
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多