2017-06-26 3 views
0

Ich habe das folgende sqoop-Skript, das die Daten in Parkett erhalten soll und die bissige Komprimierung verwenden soll.Sqoop Snappy-Komprimierung funktioniert nicht

sqoop import \ 
--hive-drop-import-delims \ 
--fields-terminated-by '\001' \ 
--connect '<Connection URL>' \ 
--query 'select * from <db_name>.<table_name> where $CONDITIONS' \ 
--username <username> \ 
--password <password> \ 
--split-by '<split-by-key>' \ 
-m=4 \ 
--input-null-string '' \ 
--input-null-non-string '' \ 
--inline-lob-limit 0 \ 
--target-dir <hdfs/location/where/files/should/land> \ 
--compression-codec org.apache.hadoop.io.compress.SnappyCodec \ 
--as-parquetfile \ 
--map-column-java NOTES_DETAIL=String,NOTES=String \ 

Wenn das Skript erfolgreich beendet ist, gehe ich in den hdfs Ort [ ‚hdfs/Ort/wo/files/sollte/Land‘] und sieht, dass weder bissig Kompression angewandt wird, noch die _SUCCUSS Datei auftauchen. Warum passiert dies? Diese

ist das, was ich sehe, wenn ich die Dateien in diesem Ordner auflisten

21cbd1a6-d58b-4fdc-b332-7433e582ce0b.parquet 
3956b0ff-58fd-4a87-b383-4fecc337a72a.parquet 
3b42a1a9-4aa7-4668-bdd8-41624dec5ac6.parquet 

Wie Sie keine .snappy in Dateinamen noch _SUCCESS Datei sehen können.

Antwort

1

Sie werden bei der Erweiterung einer Parquet-Datei nicht sehen, welche Komprimierung verwendet wurde. In Parquet-Dateien werden die Daten intern in Blöcken komprimiert. Mit der Codec-Auswahl legen Sie fest, welcher Codec für jeden Chunk in der gesamten Datei verwendet werden soll. Mit der Parquet-Spezifikation können Sie jedoch den Komprimierungscodec in jedem Datenblock ändern, sodass Sie die Komprimierungscodecs in einer Parquet-Datei mischen können. Einige Tools erzeugen .snappy.parquet Dateien, um die gewählte Komprimierungsstufe anzuzeigen, aber das ist nur dekorativ, da die Komprimierungsinformationen in den Metadaten der Datei gespeichert sind.

Um zu überprüfen, ob Ihre Parquet-Datei bissig komprimiert wurde, überprüfen Sie die Dateien mit parquet-tools.

+0

Danke für die Antwort. Ich verifizierte meine Dateien sind in der schnellen Komprimierung. Warum erhalte ich jedoch nicht die Datei _SUCCESS? Am Ende jeder sqoop-Last bekomme ich eine _SUCCESS-Datei, aber ich bekomme sie hier nicht. – user2159301