2017-06-26 86 views
0

我有以下sqoop腳本,它應該可以在實木複合地板中獲取數據並使用快速壓縮。Sqoop快速壓縮不起作用

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 \ 

一旦腳本成功完成後,我進入HDFS位置[「HDFS /位置/在/文件/應/土地」]看,無論是活潑的應用壓縮,也沒有_SUCCUSS文件顯示出來。這是爲什麼發生?

這是我看到的時候我列出文件夾

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

中的文件正如你可以看到文件名也不_SUCCESS文件中沒有.snappy。

回答

1

你不會看到使用壓縮的Parquet文件的擴展名。在Parquet文件中,數據在內部被壓縮成塊。使用編解碼器選擇,您可以指定整個文件中每個塊應該使用哪個編解碼器。儘管如此,Parquet規範允許您更改每個數據塊中的壓縮編解碼器,因此您可以將壓縮編解碼器混合到Parquet文件中。某些工具會生成.snappy.parquet文件來指示所選的壓縮級別,但這只是裝飾性的,因爲壓縮信息存儲在文件的元數據中。

要檢查Parquet文件是否被快速壓縮,請使用parquet-tools檢查文件。

+0

感謝您的回答。我驗證了我的文件處於快速壓縮狀態。但是,爲什麼我沒有收到_SUCCESS文件?在每次sqoop加載結束時,我都會得到一個_SUCCESS文件,但我沒有在這裏找到它。 – user2159301