Может ли 1 Tasktracker запускать несколько JVM

Может ли 1 Tasktracker запускать несколько JVM?

Вот сценарий:

Предположим, что есть 2 файла (A и B) и 2 узла данных (D1 и D2).

Когда вы загружаете A, предположите, что он разделяется на A1 и A2 на D1 и D2, а когда вы загружаете B, предположите, что он разделяется на B1 и B2 на D1 и D2.

По какой-то причине предположим, что D1 занят какими-то другими задачами, а D2 доступен, и есть пара отправленных заданий, одно из которых использует файл A, а другое — файл B.

Итак, теперь D2 доступен и имеет блоки A2 и B2. Будет ли JobTracker отправлять код в TaskTracker на D2 и запускать задачу для A2 и B2 одновременно, или он сначала запустит A2, а после его завершения запустит B2?

Если да, опять же, возможно ли запустить обе задачи параллельно, что означает 1 TaskTracker и 2 jvms, или это создаст/породит 2 TaskTrackers на D2?


person user2345694    schedule 27.02.2014    source источник


Ответы (2)


Трекер задач (ТТ) может запускать несколько карт или сокращать задачи параллельно на одной машине. По умолчанию ТТ запускает 2 задачи карты (mapreduce.tasktracker.map.tasks.maximum) и 2 задачи сокращения (mapreduce.tasktracker.reduce.tasks.maximum). Свойства должны быть настроены в mapred-default.xml.

person Praveen Sripati    schedule 28.02.2014

По умолчанию Task Tracker создает одну JVM для каждой задачи. Вы можете повторно использовать jvms, установив этот параметр конфигурации: mapred.job.reuse.jvm.num.tasks

person Jasper    schedule 27.02.2014