2016-06-28 4 views
0

Это очень новый вопрос, но я не могу найти ответ. Каково фактическое время, затраченное программой mapreduce?
Это «Закончено», как показано на первой ссылке ниже. Каково это время процессора. Отработано, как показано на втором канале. Как вы можете видеть, затраченное время процессора очень мало, чем «Закончено», поэтому время, затрачиваемое на общее время работы кода. Существует ли какая-либо релевантность между затраченным временем процессора, «завершенным» временем и фактическим временем, затраченным программой mapreduce?Как рассчитать время работы программы mapreduce?

First Snapshot
Second Snapshot

ответ

0

законченного время это время, по программе с момента, когда вы начинаете процесс, и, наконец, возвращается. В течение этого времени не требуется, чтобы процесс потреблял любые циклы процессора. Его можно было бы переключить между планировщиком процессов, чтобы выполнить что-то еще, и ваша программа может сидеть без дела (ожидание на некотором сигнале/флагах или просто завершило выделение ему части времени CPU).

Итак, CPU-time + Idle-time = Finish-time. (довольно много)

В классе водителя, помимо запуска заданий mapreduce, вы запускаете много другого кода. То, на что вы должны смотреть на самом деле, - это то, сколько времени выполняется заданием mapreduce для обработки данных, которые вы задали для запуска. Таким образом, если вы хотите оценить время, затрачиваемое на определенный объем данных (что зависит от мощности обработки - виртуальные ядра, доступные для ResourceManager и памяти, также управляемые ResourceManager), вы должны посмотреть статистику пряжи, приведенную в второе изображение. Опять же, для фиксированного размера данных Ваша работа по созданию карты не всегда будет иметь такое же время окончания (как в изображении-1), она будет отличаться от доступности ресурсов. Меньше ресурсов означает более простой. Но статистика в изображении-2 (время CPU) для данного фиксированного объема данных должна оставаться одинаковой.

Суммирование преобразователя и редуктора - это общее время процессора. Они равны. CPU-time - время, затраченное приложением mapreduce для запуска. Приложение mapreduce состоит из: Mapper и Reducer. В свою очередь Mapper имеет такие задачи, как чтение входных файлов (состоящих записей) и объединение каждой записи через функцию карты. После этого у него есть сумматор и разделитель. Затем эти данные поступают на фазу уменьшения, где каждый раздел (разделенный по значениям выходных ключей карты) зацикливается через функцию уменьшения. А функция уменьшения возвращает конечный результат. До этого сокращение также перемещается и сортируется. Итак, время CPU, которое вы видите, относится к вышеуказанному процессу.

+0

Спасибо, что ответили. Я должен найти время работы моего кода mapreduce. Итак, какое время я считаю показом как общее время работы кода. – user3464093

+0

общее время работы кода - от куда до? от запуска основной функции (класса драйвера) до конца, пока она не вернется или внутри пряжи, на которой запущено приложение? – ViKiG

+0

Я запускаю код mapreduce, создавая его файл jar, а затем набираю команду hadoop jar. Через некоторое время он дает мне выход в формате файла hdfs. Итак, я хочу узнать время, прошедшее между запущенным файлом jar и получением результата – user3464093

Смежные вопросы