2015-10-16 21 views
6

Kovan sürümü: 1.2.1Hive'de "Alter Table/Partition Concatenate" SQL'in üretme dosyaları nasıl azaltılır?

Yapılandırma:

set hive.execution.engine=tez; 
set hive.merge.mapredfiles=true; 
set hive.merge.smallfiles.avgsize=256000000; 
set hive.merge.tezfiles=true; 

HQL:

ALTER TABLE `table_name` PARTITION (partion_name1 = 'val1', partion_name2='val2', partion_name3='val3', partion_name4='val4') CONCATENATE; 

Belirli tablo/bölümünün dosyaları birleştirmek için HQL kullanın. Ancak, yürütme işleminden sonra çıkış dizininde hala birçok dosya var; ve boyutları 256000000'den daha azdır. Böylece çıkış dosyalarının sayısını nasıl azaltabilirsiniz.

BTW, Tez yerine MapReduce kullanın, ayrıca çalışmadı.

+0

DDL tablosunu kaydeder misin? – SrinivasR

cevap

-1

Redüktör numaranızı 1'e ayarlayabilirsiniz, daha sonra sadece bir çıkış dosyası oluşturur.

Aşağıdakiler ile yapabilirsiniz;

set mapred.reduce.tasks=1 
+0

Kullanılan yürütme motoru tez ... – mgaido

+0

Lütfen yorum yapın: BTW, Tez yerine MapReduce kullanın da işe yaramadı. Yani isterse MapReduce'ı da kullanabilir. Ayrıca yukarıdaki konfigürasyonu Tez için de kullanabilirsiniz. – Ducaz035

+0

neyse, bu sorunun çözülmediğinden emin olabilirim – mgaido

-1

Belki u insert overwrite table ... partition (...) select * from ...

Bu seferki tezfiles ayarı birleştirme kullanabilirsiniz deneyebilirsiniz.