2015-07-09 2 views
4
create table n_data(MARKET string,CATEGORY string,D map<string,string>,monthid int,value DOUBLE) 
    STORED AS ORC 
; 

загружаю в него данные (более 45 миллионов строк), посмотреть на улей складHive разбивает ORC файлы на мелкие части

enter image description here

Результат таблица состоит из 5 файлов с размером 10MB-20MB, но dfs.block.size устанавливает в 128 МБ, это не оптимально для хранения небольших файлов, потому что он использует весь блок!

Как настроить файлы с разделяемым доступом на диск на 128 МБ?

EDIT вставки запроса:

insert into n_data 
select tmp.market,tmp.category,d,adTable.monthid,tmp.factperiod[adTable.monthid] as fact 
from (select market,category,d,factperiod,map_keys(factperiod) as month_arr from n_src where market is not null) as tmp 
LATERAL VIEW explode(month_arr) adTable AS monthid 
+0

Как вы вставляете записи, показываете инструкцию insert. У вас есть другое свойство, связанное с настройками улья? – Ambrish

+0

@ Добавить комментарий Вставить вопрос в вопрос – rpc1

+0

@Ambrish Нет У меня нет других связанных с настройками улья – rpc1

ответ

2

Вы должны установить следующие параметры конфигурации для улья:

hive.merge.mapfiles = true 
hive.merge.mapredfiles = true 
hive.merge.tezfiles = true 
hive.merge.smallfiles.avgsize = 16000000 

У меня была точно такая же проблема, пока я не нашел this source. Вы можете попробовать установить эти Params вручную в улей сессии, используя команду «набор», как это:

set hive.merge.mapfiles=true; 
set hive.merge.mapredfiles=true; 
set hive.merge.tezfiles=true; 
set hive.merge.smallfiles.avgsize=16000000; 

Если вы просто введите «установить»; в консоли сеанса улья вы можете проверить, правильно ли установлены указанные выше параметры. После тестирования я рекомендую изменить их в файле конфигурации hive-site.xml или через Ambari (если вы используете Hortonworksdistribution). Ура!

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