【发布时间】:2018-08-10 09:18:45
【问题描述】:
蜂巢 2.1
我有以下表格定义:
CREATE EXTERNAL TABLE table_snappy (
a STRING,
b INT)
PARTITIONED BY (c STRING)
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION '/'
TBLPROPERTIES ('parquet.compress'='SNAPPY');
现在,我想往里面插入数据:
INSERT INTO table_snappy PARTITION (c='something') VALUES ('xyz', 1);
但是,当我查看数据文件时,我看到的只是没有任何压缩的纯拼花文件。在这种情况下如何启用快速压缩?
目标:将 hive 表数据以 parquet 格式和 SNAPPY 压缩。
我也尝试过设置多个属性:
SET parquet.compression=SNAPPY;
SET hive.exec.compress.output=true;
SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;
SET mapred.output.compression.type=BLOCK;
SET mapreduce.output.fileoutputformat.compress=true;
SET mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;
SET PARQUET_COMPRESSION_CODEC=snappy;
还有
TBLPROPERTIES ('parquet.compression'='SNAPPY');
但没有任何帮助。我对 GZIP 压缩进行了同样的尝试,但似乎效果不佳。我开始思考这是否可能。任何帮助表示赞赏。
【问题讨论】:
-
你是如何验证它没有被压缩的?
标签: hadoop hive compression parquet snappy