0
点赞
收藏
分享

微信扫一扫

Hive通用基础优化

Brose 2021-09-27 阅读 62
    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
举报

相关推荐

0 条评论