Versuchen, das Problem mit kleinen Dateien durch Komprimieren der Dateien unter Hive-Partitionen durch Insert überschreiben Partition Befehl in Hadoop.Hive-Komprimierung mit Insert überschreiben Partition
Abfrage:
SET hive.exec.compress.output=true;
SET mapred.max.split.size=256000000;
SET mapred.output.compression.type=BLOCK;
SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;
set hive.merge.mapredfiles=true;
set hive.merge.size.per.task=256000000;
set hive.merge.smallfiles.avgsize=256000000;
INSERT OVERWRITE TABLE tbl1 PARTITION (year=2016, month=03, day=11)
SELECT col1,col2,col3 from tbl1
WHERE year=2016 and month=03 and day=11;
Eingabedateien:
Für Testzwecke Ich habe drei Dateien unter der Stock-Partition (2016.03.11) in HDFS mit der Größe von 40 MB jeder.
2016/03/11/file1.csv
2016/03/11/file2.csv
2016/03/11/file3.csv
Beispiel meines Blockes Größe ist 128, also möchte ich nur eine Ausgabedatei erstellen. Aber ich bekomme 3 verschiedene komprimierte Dateien.
Bitte helfen Sie mir, die Hive-Konfiguration zu erhalten, um die Größe der Ausgabedatei zu beschränken. Wenn ich die Komprimierung nicht verwende, erhalte ich die einzelne Datei.
Hive Version: 1.1
#Salmonerd, wie Sie sagte, dass es keine Minderer ausgeführt wird, da seine Karte nur Job ist, dass ich im Grunde bin versucht, durch kleine Dateien Problem zu lösen in größere Dateien kombiniert in hive Trenneinsatz überschrieben werden. Lass mich die von dir vorgeschlagene Konfiguration ausprobieren und ich werde zurückkommen. –
Funktioniert wie erwartet. Erstellt nur eine einzelne Datei aus mehreren kleinen Dateien. –
Super, welche Einstellungen hast du implementiert? – Jared