2017-01-25 6 views
1

После выполнения задания Hadoop краткое изложение показанных счетчиков приведено ниже. Мой вопрос будет заключаться в том, что включено в счетчик Total time spent by all map tasks, в частности, в случае, если задание mapper не является узловым, используется ли время копирования данных или нет?Что означает «время, затраченное на выполнение задачи карты», на Hadoop?

17/01/25 09:06:12 INFO mapreduce.Job: Counters: 49 
     File System Counters 
       FILE: Number of bytes read=2941 
       FILE: Number of bytes written=241959 
       FILE: Number of read operations=0 
       FILE: Number of large read operations=0 
       FILE: Number of write operations=0 
       HDFS: Number of bytes read=3251 
       HDFS: Number of bytes written=2051 
       HDFS: Number of read operations=6 
       HDFS: Number of large read operations=0 
       HDFS: Number of write operations=2 
     Job Counters 
       Launched map tasks=1 
       Launched reduce tasks=1 
       Data-local map tasks=1 
       Total time spent by all maps in occupied slots (ms)=23168 
       Total time spent by all reduces in occupied slots (ms)=4957 
       Total time spent by all map tasks (ms)=5792 
       Total time spent by all reduce tasks (ms)=4957 
       Total vcore-milliseconds taken by all map tasks=5792 
       Total vcore-milliseconds taken by all reduce tasks=4957 
       Total megabyte-milliseconds taken by all map tasks=23724032 
       Total megabyte-milliseconds taken by all reduce tasks=5075968 
     Map-Reduce Framework 
       Map input records=9 
       Map output records=462 
       Map output bytes=4986 
       Map output materialized bytes=2941 
       Input split bytes=109 
       Combine input records=462 
       Combine output records=221 
       Reduce input groups=221 
       Reduce shuffle bytes=2941 
       Reduce input records=221 
       Reduce output records=221 
       Spilled Records=442 
       Shuffled Maps =1 
       Failed Shuffles=0 
       Merged Map outputs=1 
       GC time elapsed (ms)=84 
       CPU time spent (ms)=2090 
       Physical memory (bytes) snapshot=471179264 
       Virtual memory (bytes) snapshot=4508950528 
       Total committed heap usage (bytes)=326631424 
     Shuffle Errors 
       BAD_ID=0 
       CONNECTION=0 
       IO_ERROR=0 
       WRONG_LENGTH=0 
       WRONG_MAP=0 
       WRONG_REDUCE=0 
     File Input Format Counters 
       Bytes Read=3142 
     File Output Format Counters 
       Bytes Written=2051 

ответ

1

Я считаю, что данные копии время входит в Total time spent by all map tasks метрики.

Прежде всего, если вы проверить код на стороне сервера (в основном связанного с управлением ресурсами), вы можете увидеть, что MILLIS_MAPS постоянных (что соответствует метрике вы ссылаетесь), обновленной внутри TaskAttempImpl класса, берет продолжительность задачи. Запуск задачи launchTime устанавливается, когда контейнер запущен и начинает запускать выполнение (и из моего знания исходного кода, похоже, что ни один из компонентов не перемещает какие-либо данные в этой точке, пропускаются только разделенные метаданные).

Теперь, когда контейнер запущен, InputFormat открывает InputStream, который несет ответственность за получение данных, которые должен выполнить Mapper (на данный момент у вас есть разные файловые системы, к которым может быть присоединен поток, но посмотрите на DistributedFileSystem). Вы можете проверить действия, выполняемые в MapTask.runNewMapper(...) методе, где у вас есть:

input.initialize(split, mapperContext); 
mapper.run(mapperContext); 

(я на Hadoop 2.6)

+0

Спасибо за подробный ответ. – mcserep