У меня есть наборы данных величиной 3-значных ГБ или даже 1 или 2-значный ТБ. Поэтому входные файлы представляют собой список файлов размером 10 ГБ. Моя карта уменьшает работу в hadoop и обрабатывает все эти файлы, а затем дает только один выходной файл (с агрегированной информацией).
Мои вопросы:
-
Каков подходящий размер файла для настройки инфраструктуры hadoop/mapreduce из Apache? Я слышал, что более крупные размеры файлов более предпочтительны, чем маленькие. Есть идеи? Единственное, что я точно знаю, это то, что hadoop считывает блоки, каждый по 64 МБ по умолчанию. Поэтому было бы неплохо, если бы размер файла был мультипликатором 64 МБ.
-
В настоящее время мое приложение записывает выходной файл только в один файл. Размер файла - это, конечно, 3-значный гигабит. Мне интересно, насколько эффективно я могу разбить файл. Конечно, я могу использовать некоторые инструменты unix для выполнения этой работы. Но предпочтительнее ли это делать непосредственно в hadoop?
спасибо для ваших комментариев!
P.S.: Я не сжимаю файлы. Формат файлов входных файлов - text/csv.