sqoop snappy压缩不起作用

ar7v8xwq  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(428)

我有下面的sqoop脚本,它应该在parquet中获取数据并使用snappy压缩。

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/location/where/files/should/land'],看到既没有应用snappy压缩,也没有显示\u succus文件。为什么会这样?
这是我列出文件夹中的文件时看到的

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

如您所见,文件名中既没有.snappy,也没有\u success file。

mrphzbgm

mrphzbgm1#

使用以下参数启用压缩:
-z、 --压缩
参考文献:https://sqoop.apache.org/docs/1.4.2/sqoopuserguide.html

n1bvdmb6

n1bvdmb62#

在Parquet文件的扩展名处看不到使用了哪个压缩。在Parquet文件中,数据在内部压缩成块。通过“编解码器”选择,可以指定整个文件中的每个块应使用哪个编解码器。不过,parquet规范允许您更改每个数据块中的压缩编解码器,因此您可以在parquet文件中混合压缩编解码器。一些工具产生 .snappy.parquet 文件以指示所选的压缩级别,但这只是装饰性的,因为压缩信息存储在文件的元数据中。
要检查Parquet文件是否已快速压缩,请使用 parquet-tools .

相关问题