1个Tasktracker可以运行多个JVM吗?

这是场景:

假设有2个文件(A和B)和2个数据节点(D1和D2)。

加载A时,假设它已被拆分为D1和D2上的A1和A2
并在加载B时,假设它已在D1和D2上拆分为B1和B2。

出于某种原因,让我们假设D1忙于其他一些任务
D2可用,并且提交了一些作业,
一个使用文件A,另一个使用文件B。

因此,现在D2可用并且具有块A2和B2。
JobTracker会将代码提交给D2上的TaskTracker并一次运行A2和B2的任务吗?
它将首先运行A2,完成后将运行B2吗?

如果是这样,是否有可能同时运行两个任务,这意味着1个TaskTracker和2个jvm,或者它将在D2上创建/生成2个TaskTracker?

最佳答案

任务跟踪器(TT)可以在一台计算机上并行启动多个 map 或 reduce task 。默认情况下,TT启动2个 map (mapreduce.tasktracker.map.tasks.maximum)和2个缩小(mapreduce.tasktracker.reduce.tasks.maximum)任务。必须在mapred-default.xml中配置属性。

10-08 02:54