2015-12-01 1 views
1

Я пытаюсь создать паркетный стол в улье. Я могу создать его, но когда я запустил таблицу анализа таблицы mytable; я получить этот результат:Как ограничить размер паркетного файла паркетным столом в улье?

numfiles = 800, NumRows = 10000000, TotalSize = 18909876 rawDataSize = 40000000

Почему таблица выдуманные 800 файла только 180 Мб? Есть вопрос, почему установить количество файлов? Стараюсь с SET parquet.block.size = 134217728, но результат тот же

+0

Вопрос: сколько Mappers/Reducers в задании, которое создало таблицу? Если у вас есть 800 Mappers и нет Reducer, а свойства 'hive.merge. *** files' не являются * True *, тогда у вас будет 800 физических файлов. Конец истории. –

+0

Вопрос: вы проверили количество различных 'INPUT__FILE__NAME' в вашей таблице? И количество файлов HDFS в папке, используемой таблицей (может быть выше из-за пустых файлов данных)? –

+0

Как вы загрузили таблицу? – rbyndoor

ответ

0

Количество редукторов определяет количество паркетных файлов.

Проверить mapred.reduce.tasks параметр.

E.g. у вас может быть задание с уменьшением карты, которое производит всего 100 строк, но если значение mapred.reduce.tasks равно 800 (явно или неявно), вы получите 800 паркетных файлов в качестве вывода (большинство файлов паркета будут иметь только заголовки и фактические данные) ,

+0

True. Прежде чем я отправил свое искровое приложение с 6 исполнителями по 8 ярусов каждый, и он произвел 800 заданий. Теперь я попробую только с одним ядром в драйвере, и я получаю только 10 файлов (и 10 заданий). Это нормально, но как я могу получить только 10 файлов, используя все мои ресурсы? – Fabio

+0

Таким образом, его можно выбрать в качестве правильного ответа. Каждый редуктор должен производить собственный файл (паркет). У вас все еще есть необходимое количество карт и играйте с количеством редукторов, чтобы увидеть хороший баланс между временем создания паркетного файла и временем его чтения, в зависимости от того, что более важно для вашего дела. – Tagar

0

Кроме того, необходимо установить набор dfs.blocksize = 134217728 вместе с SET parquet.block.size = 134217728 И размер блока должен быть установленным, делая вставку улья.

+0

Я стараюсь, но результат тот же – Fabio