Hadoop MapReduce: Соответствующий размер входных файлов?

У меня есть наборы данных величиной в 3-значные ГБ или даже 1- или 2-значные ТБ. Таким образом, входные файлы представляют собой список файлов, каждый размером около 10 ГБ. Моя работа по уменьшению карты в хаупе обрабатывает все эти файлы, а затем дает только один выходной файл (с агрегированной информацией).

У меня есть вопросы:

  1. Каков подходящий размер файла для настройки структуры hadoop/mapreduce от Apache? Я слышал, что файлы большего размера предпочтительнее, чем маленькие. Есть идеи? Единственное, что я знаю точно, так это то, что hadoop читает блоки, каждый по 64 МБ по умолчанию. Так что было бы хорошо, если бы размер файла был своего рода множителем 64 МБ.

  2. На данный момент мое приложение записывает выходной файл только в один файл. Размер файла тогда, конечно, 3-значный гигабит. Мне интересно, насколько эффективно я могу разделить файл. Конечно, я могу просто использовать некоторые инструменты Unix для выполнения этой работы. Но предпочтительнее ли делать это непосредственно в хаупе?

Спасибо за ваши комментарии!

P.S.: Я не сжимаю файлы. Формат входных файлов — text/csv.

11
задан Bob 13 June 2012 в 12:51
поделиться