2016-04-05 20 views
1

Çok sayıda küçük dosya oluşturan dinamik bölümlenmiş tabloya veri eklemeye çalışıyorum, aşağıdaki gibi kovan özelliklerini ayarladım ama bölümlenmiş klasörde küçük dosyalar görüyorum, görev başına boyut bölümlenmiş klasördeki dosyalar, verdiğim göreve göre boyutun üzerinde olduğundan avgfile boyutu da benim için çalışıyor gibi görünüyor. Herhangi bir Yardım büyük gerçek hive.merge.size.per.task=10000; hive.merge.smallfiles.avgsize=100;kovanı birleştirme özellikleri küçük dosyalar için çalışmıyor

cevap

1

Sizin örnek küçük dosyaların çok yaratacak ve büyük olasılıkla çünkü göz ardı ediliyor 100 bayt ortalama boyutunun ayarlanması gösterir = hive.merge.mapfiles=true; kovan mapredfiles birleştirme takdir edilecektir dosyalar bundan daha büyüktür. Bu değeri, işinizin tamamlanmasından sonra birleştirilen dosyaların boyutunu ortalama olarak arttırması gereken ortalama 128MB (134217728) değerine yükseltmeyi deneyin.

set hive.merge.smallfiles.avgsize = 134217728; 
+0

sayesinde bu bu yardımcı olur – Ragzz

0

Birden çok eki tek bir Hive tablosuna uyguladığınızda bu durum oluşabilir. 1 tek insert, HDFS konumu altında bir veya daha fazla dosyaya neden olabilir.

Ben komuta altında yürüterek bu durumu başarmış - bu tabloyu sıkıştırır ve

bir kısıtlama olsa var bir (veya daha büyük olanlar) tüm dosyaları birleştirme olacak, kendi kovan tablolarda dizin olamaz Birleştirme komutunu yürütmek için.

Ayrıca, Spark SQL'den ORC dosyaları üzerinden test ettim - (1.5.2) ve iyi çalışıyor.

ALTER TABLE schema.table PARTITION (month = '01') CONCATENATE 

o

+0

sayesinde yardımcı olur yardımcı olur umarım – Ragzz

İlgili konular