学习

Hive通用基础优化

2021-02-24  本文已影响0人  八爪鱼下水

1) HDFS的副本数量的调整

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

2) Nodemanager的相关基础配置

如何查看服务器的核心数: 
 grep 'processor' /proc/cpuinfo | sort -u | wc -l

3) 内存的配置

如何配置内存: 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

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

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堆栈大小
  1. 动态生成分区的线程数
hive.load.dynamic.partitions.thread  默认值为 15
  1. 监听输入文件线程数
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 配置

上一篇下一篇

猜你喜欢

热点阅读