2015-12-03 3 views
0

У нас есть 3 .lzo-файла и соответствующие .index-файлы в s3. Мы создаем внешнюю таблицу в каталоге этих файлов. Размер каждого файла lzo составляет 100 Мбайт +, а размер несогласованного каждого файла равен 800 + МБ Размер блока составляет 128 МБ. Когда мы запускаем запросы на улей, к сожалению, генерируется только 3 картографа, предполагая, что расщепления не происходит, что может быть проблемой?Файлы Lzo не получают раздельные работы в ульях

ответ

1

Разделимый применяется только в том случае, если размер сжатого файла больше, чем размер сплита. Размер по умолчанию для улья по умолчанию составляет 256 МБ.

Измените размер разделения в сеансе улья и запустите запрос.

set mapreduce.input.fileinputformat.split.minsize=64000000 
+0

это не работает, попробовал настройку mapreduce.input.fileinputformat.split.maxsize до 32 МБ, и он не работает , Согласно формуле расчета разделения, нам нужно установить параметр maxsize, а не minsize, как было предложено, также попытался установить min и max до 32 МБ, все еще не работает ... какие-либо другие предложения? – BJC

+0

Это может быть связано с s3. –

+0

мы протестировали в кластере non aws, все еще сталкивающемся с тем же вопросом – BJC

0

Все было установлено 30 МБ.

set mapreduce.input.fileinputformat.split.maxsize=31457280; 
set mapreduce.input.fileinputformat.split.minsize=31457280; 
set dfs.blocksize=31457280; 

Все еще мы видим, что количество карточек остается таким же. Это делается на обычном кластере, а не на S3. Мы видим только 10 карт для 3 файлов формата LZO (229,16 МБ, 705,79 МБ, 157,61 МБ)

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