为特定的Hive表启用了确认压缩

时间:2014-01-22 21:43:40

标签: hadoop hive

我需要对一系列表进行基准测试,有些表是压缩的,有些则不是。我通过设置压缩:

hive> SET hive.exec.compress.output=true;
hive> SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;

...并使用INSERT OVERWRITE填充表格。有没有办法通过命令行确认(类似于DESCRIBE EXTENDED),为特定的表启用了输出压缩?

2 个答案:

答案 0 :(得分:2)

当你执行describe formatted orc_with_compress_setting_table看到这样的事情时:

Compressed: No感到不舒服。

以下是答案:

  

压缩字段不是表格是否包含压缩数据的可靠指标。它通常始终显示“否”,因为压缩设置仅在加载数据的会话期间应用,并且不会与表元数据一起持久存储。

来自:https://www.cloudera.com/documentation/enterprise/5-5-x/topics/impala_describe.html

答案 1 :(得分:0)

以下将显示hdfs

中表文件的路径
desc formatted <tablename>

蜂房&GT; desc格式化cobtest; 好 col_name data_type comment

col_name data_type comment

batch_sk int无 geo_cd字符串无 env_cd string无

详细表格信息

数据库:默认 所有者:史蒂夫 创建时间:星期四,11月21日23:36:37太平洋标准时间2013 LastAccessTime:UNKNOWN 保护模式:无 保留期:0 位置:hdfs:// localhost:9000 / user / hive / warehouse / cobtest 表类型:MANAGED_TABLE 表格参数:     numFiles 1     numPartitions 0     numRows 0     rawDataSize 0     totalSize 473     transient_lastDdlTime 1385105797

存储信息

SerDe Library:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe InputFormat:org.apache.hadoop.mapred.TextInputFormat OutputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat 压缩:否 Num Buckets:-1 铲斗柱:[] 排序列:[] 存储描述参数:     field.delim \ t     serialization.format \ t 所用时间:0.203秒,提取时间:34行

然后您可以执行dfs -lsr,如果文件扩展名被压缩,您会注意到它们。

hive> dfs -lsr hdfs://localhost:9000/user/hive/warehouse/cobtest ;
-rw-r--r--   1 steve supergroup        473 2013-11-21 23:36 /user/hive/warehouse/cobtest/UDFPafCobIndTest.input**.tsv**

UPDATE SNAPPY是用于压缩的CODEC。您仍需要添加以下内容:

SET hive.exec.compress.output=true;
SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;
SET mapred.output.compression.type=BLOCK;