我需要对一系列表进行基准测试,有些表是压缩的,有些则不是。我通过设置压缩:
hive> SET hive.exec.compress.output=true;
hive> SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;
...并使用INSERT OVERWRITE填充表格。有没有办法通过命令行确认(类似于DESCRIBE EXTENDED),为特定的表启用了输出压缩?
答案 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
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;