2017-02-20 9 views
1

Distcp между/внутри кластеров - задания Map-Reduce. Мое предположение заключалось в том, что оно копирует файлы на уровне разделения входных данных, что помогает в производительности копирования, так как файл будет скопирован несколькими картографами, работающими на нескольких «штуках» параллельно. Однако, когда я просматривал документацию Hadoop Distcp, кажется, что Distcp будет работать только на уровне файла. Пожалуйста, обратитесь сюда: hadoop.apache.org/docs/current/hadoop-distcp/DistCp.htmlВыполняет ли Hadoop Distcp на уровне блока?

Согласно distcp документу, то distcp только расколоть список файлов, вместо самих файлов, и предоставить перегородкам список картографам.

Может ли кто-нибудь сказать, как именно это будет работать?

  • Дополнительный вопрос: если файл присваивается только одному картографу, как отображает все входные расщепления на одном из узлов, на котором он работает?

ответ

2

Для одного файла ~50G размера, 1 карта задачи будет срабатывать для копирования данных, поскольку файлы являются лучшим уровнем детализации в Distcp.

Цитируя documentation:

Почему DistCp не работать быстрее, если указаны больше карт?

В настоящее время наименьшая единица работы для DistCp - это файл. то есть файл обрабатывается только одной картой. Увеличение количества карт до значения , превышающее количество файлов, не приносит выгоды от производительности. Количество запущенных карт равно количеству файлов.

UPDATE
Места расположения блоков файла получается из NameNode во MapReduce. В Distcp каждый Mapper будет инициирован, если это возможно, на узле, где присутствует первый блок файла. В случаях, когда файл состоит из нескольких разделов, они будут извлекаться из окрестности, если они недоступны на том же узле.

+0

спасибо! вы говорите, что раскол одного файла будет скопирован несколькими параллельными картами? но согласно distcp doc, distcp будет только разбивать список файлов, а не сами файлы, и предоставлять разделы списка для сопоставлений. я действительно не понимаю эту часть. обратитесь к: https://hadoop.apache.org/docs/current/hadoop-distcp/DistCp.html –

+0

@TianqiTong, вы правы, до настоящего времени я был с неправильным пониманием того, что Distcp использует типичный процесс преобразования. Я исправил свой ответ. – franklinsijo

+0

Спасибо за исправление! Я немного обновил свой вопрос, чтобы другим понравилось (надеюсь). но еще одна вещь, которую я не понимаю, как это сделать, отображает все части одного файла на одном узле. (Я уже ввел это в описание) –

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