【问题标题】:Confirming compression is enabled for specific Hive tables确认为特定 Hive 表启用压缩
【发布时间】:2014-01-22 21:43:40
【问题描述】:

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

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

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

【问题讨论】:

    标签: hadoop hive


    【解决方案1】:

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

    Compressed: No 感觉不舒服。

    答案如下:

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

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

    【讨论】:

      【解决方案2】:

      以下将显示 hdfs 中表文件的路径

      desc formatted <tablename>
      

      hive> desc 格式化的 cobtest; 好的 col_name data_type 注释

      col_name 数据类型注释

      batch_sk int 无 geo_cd 字符串 无 env_cd string 无

      详细的表格信息

      数据库:默认 所有者:史蒂夫 创建时间:2013 年 11 月 21 日星期四 23:36:37 PST 上次访问时间:未知 保护模式:无 留存:0 位置:hdfs://localhost:9000/user/hive/warehouse/cobtest 表类型:MANAGED_TABLE 表参数: 文件数 1 分区数 0 行数 0 原始数据大小 0 总尺寸 473 transient_lastDdlTime 1385105797

      存储信息

      SerDe 库:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe 输入格式:org.apache.hadoop.mapred.TextInputFormat 输出格式:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat 压缩:否 桶数:-1 桶列:[] 排序列:[] 存储描述参数: field.delim \t 序列化.格式 \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;
      

      【讨论】:

      • 这是很棒的 javadba。我在加载的输出压缩设置为 SNAPPY 的表上没有显示压缩 - 所以 desc 格式的压缩可能是输入或中间压缩而不是输出?我的 mapreduce.map.output.compress 是未定义的,也许这就是 desc 格式所反映的,我可能需要这个设置才能在地图函数中使用压缩?谢谢...
      • 我更新了我的答案,提供了有关如何执行此操作的更多信息。
      • 我按照你的显示设置了这些,但压缩显示没有。它一定不能指示输出压缩——我将在启用映射输入和中间压缩的情况下进行测试,看看它是否会改变。谢谢...
      • 我面临同样的问题......虽然我添加了上面的设置命令,但当我为该表进行 desc 格式化时,hive 表的 Compressed 是 NO,请告知您是如何解决的?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 2011-02-28
      • 1970-01-01
      相关资源
      最近更新 更多