美文网首页学习
Hive通用基础优化

Hive通用基础优化

作者: 八爪鱼下水 | 来源:发表于2021-02-24 17:52 被阅读0次
      1. hive基础优化
      1. 访问咨询主题看板_数据采集操作: 源数据 --> ODS层
      1. 访问咨询主题看板_清洗转换操作: ODS层 --> DWD层
      1. 访问咨询主题看板_数据分析的操作: DWD层 --> DWS层

    1) HDFS的副本数量的调整

     建议, 一般调整为3个, 如果数据不是特别重要, 可以调整为2
    

    2) Nodemanager的相关基础配置

      1. CPU配置操作:
      • 说明: 一般配置为和服务器的CPU核心数相同即可
    如何查看服务器的核心数: 
     grep 'processor' /proc/cpuinfo | sort -u | wc -l
    
    • 如何配置: yarn.nodemanager.resource.cpu-vcores

    3) 内存的配置

    • 说明: 根据当前服务器的剩余内存的80%的容量来配置
      • 公式: 剩余内存 * 0.8
    • 如何查看剩余内存:
      • 命令: free -m
        通过CM查询剩余内存:

    如何配置内存: yarn.nodemanager.resource.memory-mb
    除了设置上述基础内存配置, 还有几个配置

    yarn.scheduler.maximum-allocation-mb : 
    此值配置值为和  yarn.nodemanager.resource.memory-mb
    保持一致
    
    yarn.app.mapreduce.am.command-opts :
     略小于  
    yarn.nodemanager.resource.memory-mb 
    大于为 0.9
    

    4) 新增磁盘 挂载HDFS配置 本地目录配置: NodeManager

    存储中间数据文件的本地文件系统中的目录列表

    • 配置方案: 如果服务器中有多个磁盘, 此路径需要配置为多个, 每个路径代表的不同磁盘位置
    • 配置项: yarn.nodemanager.local-dirs

    6) MaperReduce的内存配置:

    map阶段:

    mapreduce.map.memory.mb :
     每一个map默认申请的内存大小,
    默认值为 0是自动推断.
    mapreduce.map.java.opts :
    每一个map的jvm的内存大小
    注意:
    mapreduce.map.java.opts
    JVM一定要小于Map
    mapreduce.map.memory.mb;
    

    reduce阶段:

    mapreduce.reduce.memory.mb : 
    每一个reduce默认申请的内存大小,
    默认值为 0  表示自动获取
    mapreduce.reduce.java.opts :  
    每一个reduce的jvm的内存大小
    注意: 
    mapreduce.reduce.java.opts 
    一定要小于
    mapreduce.reduce.memory.mb;
    

    注意: MR中所有的内存配置, 都不能大于nodemanager的内存大小

    7) hive的基础配置

    1. HiveServer2 的 Java 堆栈内存配置:
      什么时候需要调整此配置呢?
      搜索: JAVA堆栈大小
    • 说明: 当出现hiveserver2异常退出的时候, 一般就需要配置此项内容
    1. 动态生成分区的线程数
    • 说明: 在执行动态分区过程中, 可以运行多少个线程来生产分区数据, 线程数量越多, 执行效率越高, 前提是有资源
      如何配置:
    hive.load.dynamic.partitions.thread  默认值为 15
    
    1. 监听输入文件线程数
    • 说明: hive在读取数据的线程数量配置, 此配置越高 读取数据效率越高, 前提是有资源
    • 如何配置:
    hive.exec.input.listing.max.threads 默认值为 15
    

    8) 压缩的配置

    yarn配置:  
    在CM中直接配置
    mapreduce.map.output.compress  
    是否开启map端压缩配置     默认开启的 
    mapreduce.map.output.compress.codec  
    map端采用何种压缩方案  
        建议配置为: org.apache.hadoop.io.compress.SnappyCodec
    
    mapreduce.output.fileoutputformat.compress 
    是否开启reduce端压缩配置  默认不开启的
    
    mapreduce.output.fileoutputformat.compress.codec 
    reduce端需要采用何种压缩操作建议配置为:
     
    org.apache.hadoop.io.compress.SnappyCodec
    
    mapreduce.output.fileoutputformat.compress.type
     采用压缩的方式  建议: block 块压缩 
        
    hive配置:  此配置需要在会话中执行
    set hive.exec.compress.intermediate=true; 
    
    开启中间结果的压缩
    set hive.exec.compress.output=true;
    
     是否开启最终结果压缩
    

    9) 执行引擎选择:

    hive.execution.engine 配置

    • 可选项: MR或者spark

    相关文章

      网友评论

        本文标题:Hive通用基础优化

        本文链接:https://www.haomeiwen.com/subject/ofisfltx.html