Производительность hadoop YARN: выполнение примера wordCount в кластере происходит очень медленно на

Недавно я настроил кластер Hadoop для тестирования, кластер имеет два узла для задач и основан на Yarn.

Я знаю, что Hadoop не подходит для примеров, у него хорошая производительность на очень большом уровне данных, но он все равно слишком медленный. Я имею ввиду очень медленно. Мой входной файл - это документ объемом 500 000 слов, а число сокращения - 2.

Вот журнал:

 hadoop jar /home/hadoop/hadoopTest.jar  com.hadoop.WordCountJob /wordcountest /wordcountresult

Job started: Mon Dec 23 12:38:13 CST 2013
13/12/23 12:38:13 INFO service.AbstractService: Service:org.apache.hadoop.yarn.client.YarnClientImpl is inited.
13/12/23 12:38:14 INFO service.AbstractService: Service:org.apache.hadoop.yarn.client.YarnClientImpl is started.
13/12/23 12:38:14 WARN mapreduce.JobSubmitter: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
13/12/23 12:38:27 INFO input.FileInputFormat: Total input paths to process : 1
13/12/23 12:38:27 INFO mapreduce.JobSubmitter: number of splits:1
13/12/23 12:38:27 WARN conf.Configuration: mapred.jar is deprecated. Instead, use mapreduce.job.jar
13/12/23 12:38:27 WARN conf.Configuration: mapred.reduce.tasks is deprecated. Instead, use mapreduce.job.reduces
13/12/23 12:38:27 WARN conf.Configuration: mapred.output.value.class is deprecated. Instead, use mapreduce.job.output.value.class
13/12/23 12:38:27 WARN conf.Configuration: mapreduce.map.class is deprecated. Instead, use mapreduce.job.map.class
13/12/23 12:38:27 WARN conf.Configuration: mapred.job.name is deprecated. Instead, use mapreduce.job.name
13/12/23 12:38:27 WARN conf.Configuration: mapreduce.reduce.class is deprecated. Instead, use mapreduce.job.reduce.class
13/12/23 12:38:27 WARN conf.Configuration: mapreduce.inputformat.class is deprecated. Instead, use mapreduce.job.inputformat.class
13/12/23 12:38:27 WARN conf.Configuration: mapred.input.dir is deprecated. Instead, use mapreduce.input.fileinputformat.inputdir
13/12/23 12:38:27 WARN conf.Configuration: mapred.output.dir is deprecated. Instead, use mapreduce.output.fileoutputformat.outputdir
13/12/23 12:38:27 WARN conf.Configuration: mapreduce.outputformat.class is deprecated. Instead, use mapreduce.job.outputformat.class
13/12/23 12:38:27 WARN conf.Configuration: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps
13/12/23 12:38:27 WARN conf.Configuration: mapred.output.key.class is deprecated. Instead, use mapreduce.job.output.key.class
13/12/23 12:38:27 WARN conf.Configuration: mapred.working.dir is deprecated. Instead, use mapreduce.job.working.dir
13/12/23 12:38:29 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1383617275312_0021
13/12/23 12:38:30 INFO client.YarnClientImpl: Submitted application application_1383617275312_0021 to ResourceManager at Hadoop1/111.11.11.11:8032
13/12/23 12:38:30 INFO mapreduce.Job: The url to track the job: http://kmHadoop1:8088/proxy/application_1383617275312_0021/
13/12/23 12:38:30 INFO mapreduce.Job: Running job: job_1383617275312_0021
13/12/23 12:43:22 INFO mapreduce.Job: Job job_1383617275312_0021 running in uber mode : false
13/12/23 12:43:22 INFO mapreduce.Job:  map 0% reduce 0%
13/12/23 13:03:37 INFO mapreduce.Job:  map 67% reduce 0%
13/12/23 13:03:43 INFO mapreduce.Job:  map 100% reduce 0%
13/12/23 13:07:04 INFO mapreduce.Job:  map 100% reduce 37%
13/12/23 13:07:07 INFO mapreduce.Job:  map 100% reduce 51%
13/12/23 13:07:10 INFO mapreduce.Job:  map 100% reduce 67%
13/12/23 13:07:51 INFO mapreduce.Job:  map 100% reduce 69%
13/12/23 13:07:52 INFO mapreduce.Job:  map 100% reduce 70%
13/12/23 13:07:54 INFO mapreduce.Job:  map 100% reduce 85%
13/12/23 13:07:54 INFO mapreduce.Job:  map 100% reduce 100%
13/12/23 13:07:54 INFO mapreduce.Job: Job job_1383617275312_0021 completed successfully
13/12/23 13:07:55 INFO mapreduce.Job: Counters: 43
        File System Counters
                FILE: Number of bytes read=519233
                FILE: Number of bytes written=1254635
                FILE: Number of read operations=0
                FILE: Number of large read operations=0
                FILE: Number of write operations=0
                HDFS: Number of bytes read=2356520
                HDFS: Number of bytes written=427594
                HDFS: Number of read operations=9
                HDFS: Number of large read operations=0
                HDFS: Number of write operations=4
        Job Counters 
                Launched map tasks=1
                Launched reduce tasks=2
                Data-local map tasks=1
                Total time spent by all maps in occupied slots (ms)=1225928
                Total time spent by all reduces in occupied slots (ms)=495508
        Map-Reduce Framework
                Map input records=8646
                Map output records=420146
                Map output bytes=4187027
                Map output materialized bytes=519225
                Input split bytes=122
                Combine input records=0
                Combine output records=0
                Reduce input groups=35430
                Reduce shuffle bytes=519225
                Reduce input records=420146
                Reduce output records=35430
                Spilled Records=840292
                Shuffled Maps =2
                Failed Shuffles=0
                Merged Map outputs=2
                GC time elapsed (ms)=263996
                CPU time spent (ms)=222750
                Physical memory (bytes) snapshot=529215488
                Virtual memory (bytes) snapshot=4047876096
                Total committed heap usage (bytes)=479268864
        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=2356398
        File Output Format Counters 
                Bytes Written=427594
Job ended: Mon Dec 23 13:07:55 CST 2013
The job took 1782 seconds.

Мы можем видеть метку времени перед каждой строкой журнала.

Кажется, что он работает медленно на каждом этапе: инициализация, проверка пути ввода, запуск на Yarn, Mapreduce и т. Д.

И на весь процесс ушло 1783 секунды. Что случилось ? Я сделал что-то не так ?

Моя версия hadoop - CDH4.3.0, 2 узла для кластера. И в Hdf есть тысячи маленьких файлов, это проблема?


person zxz    schedule 23.12.2013    source источник
comment
Эти тысячи маленьких файлов тоже есть в вашем пути ввода / wordcountest?   -  person zhutoulala    schedule 25.12.2013
comment
Нет, это не так. маленькие файлы находятся в других путях   -  person zxz    schedule 25.12.2013


Ответы (1)


Я вижу из вашего вывода

Map output bytes=4187027
Map output materialized bytes=519225
...

что вы выполняете сжатие (по крайней мере) выходных данных промежуточной карты. Вы можете попробовать перезапустить свой пример с выключенным сжатием; Сжатие GZIP, как известно, требует больших затрат на процессоры ваших компьютеров. Возможно, прежде чем отключать сжатие, вы могли бы подумать о мониторинге загрузки процессора, чтобы убедиться, что это действительно ваше узкое место.

Я видел чрезмерно долгое время работы при запуске кластеров, состоящих из 2 или 3 узлов с включенным сжатием GZIP. Это меняется, когда вы начинаете добавлять узлы. Когда я масштабировал этот кластер до 10 узлов и повторно выполнил ту же работу, сжатие стало действительно очень полезным (примерно на 40% улучшилось общее время работы Terasort на 100 ГБ по сравнению с отсутствием сжатия).

person PixelCloudSt    schedule 14.01.2015