• Hive性能调优(一)----文件存储格式及压缩方式选择


    • 合理使用文件存储格式

        建表时,尽量使用 orc、parquet 这些列式存储格式,因为列式存储的表,每一列的数据在物理上是存储在一起的,Hive查询时会只遍历需要列数据,大大减少处理的数据量。

    • 采用合适的文件压缩

        Hive最终是转为 MapReduce 程序来执行的,而 MapReduce 的性能瓶颈在于网络 IO 和 磁盘 IO,要解决性能瓶颈,最主要的是减少数据量,对数据进行压缩是个好的方式。压缩虽然是减少了数据量,但是压缩过程要消耗CPU的,但是在Hadoop中, 往往性能瓶颈不在于CPU,CPU压力并不大,所以压缩充分利用了比较空闲的CPU。

        常见文件压缩格式:

    压缩格式 是否可拆分 是否自带 压缩率 速度 是否hadoop自带
    gzip 很高 比较快
    lzo 比较高 很快 否,需要安装
    snappy 比较高 很快 否,需要安装
    bzip2 最高

        各个压缩方式对应的类:

    压缩格式
    gzip org.apache.hadoop.io.compress.GzipCodec
    lzo org.apache.hadoop.io.compress.lzo.LzoCodec
    snappy org.apache.hadoop.io.compress.SnappyCodec
    bzip2 org.apache.hadoop.io.compress.BZip2Codec
    zlib org.apache.hadoop.io.compress.DefaultCodec
    lz4 org.apache.hadoop.io.compress.Lz4Codec

        压缩方式的选择:

          压缩比率

          压缩解压缩速度

          是否支持Split

        压缩使用:

          Job 输出文件按照 block 以 GZip 的方式进行压缩:

        set mapreduce.output.fileoutputformat.compress=true // 默认值是 false
    
        set mapreduce.output.fileoutputformat.compress.type=BLOCK // 默认值是 Record
    
        set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.GzipCodec // 默认值是 org.apache.hadoop.io.compress.DefaultCodec
    

           Map 输出结果也以 Gzip 进行压缩:

        set mapred.map.output.compress=true
    
        set mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.GzipCodec // 默认值是 org.apache.hadoop.io.compress.DefaultCodec 
    

           对 Hive 输出结果和中间都进行压缩:

        set hive.exec.compress.output=true // 默认值是 false,不压缩
    
        set hive.exec.compress.intermediate=true // 默认值是 false,为 true 时 MR 设置的压缩才启用
    
  • 相关阅读:
    SQL Challenges靶机
    XSS靶机1
    djinn靶机
    Sunset靶机
    统计学 一 集中趋势
    测试
    测试
    统计学 一 集中趋势
    算法分析
    代码测试
  • 原文地址:https://www.cnblogs.com/zbw1112/p/11898368.html
Copyright © 2020-2023  润新知