1个Tasktracker可以运行多个JVM吗?
以下是该方案:
假设有2个文件(A& B)和2个数据节点(D1和D2)。
加载A时,假设它被拆分为A1& D1和A2上的A2 D2 当你加载B时,假设它被分成B1和amp; D1和B2上的B2 D2。
由于某种原因,让我们假设D1忙于其他一些任务 和D2是可用的,并提交了几个工作, 一个使用文件A,另一个使用文件B.
所以现在D2可用并且有A2和B2。 JobTracker是否会将代码提交给D2上的TaskTracker,并一次运行A2和B2的任务 它会先运行A2并在完成后运行B2吗?
如果是这样,又可以同时运行两个任务,这意味着1个TaskTracker和2个jvms,还是会在D2上创建/生成2个TaskTrackers?
答案 0 :(得分:1)
默认情况下,Task Tracker会为每个任务生成一个JVM。 您可以通过设置此配置参数来重用jvms:mapred.job.reuse.jvm.num.tasks
答案 1 :(得分:0)
任务跟踪器(TT)可以在一台计算机上并行启动多个映射或减少任务。默认情况下,TT启动2个映射(mapreduce.tasktracker.map.tasks.maximum)和2个reduce(mapreduce.tasktracker.reduce.tasks.maximum)任务。必须在mapred-default.xml。
中配置属性