CDH之HIVE-ON-SPARK、Spark配置

原:CDH之HIVE-ON-SPARK、Spark配置_小基基o_O的博客-CSDN博客_cdh hive on spark

HIVE ON SPARK配置

CDH6.3.2的HIVE版本为:2.1.1+cdh6.3.2

HIVE默认引擎 

hive.execution.engine

CDH之HIVE-ON-SPARK、Spark配置_第1张图片


Driver配置

spark.driver

CDH之HIVE-ON-SPARK、Spark配置_第2张图片

配置名称 说明 建议
spark.driver.memory 用于Driver进程的内存 YARN可分配总内存的10%
spark.driver.memoryOverhead 集群模式下每个Driver进程的堆外内存 Driver内存×0.1
spark.yarn.driver.memoryOverhead spark.driver.memoryOverhead差不多,YARN场景专用 AM内存×0.1
spark.driver.cores 集群模式下,用于Driver进程的核心数


Executor配置


spark.executor

CDH之HIVE-ON-SPARK、Spark配置_第3张图片
 

配置名称 说明 建议
spark.executor.cores 单个Executor的CPU核数 4
spark.executor.memory Executor进程的堆内存大小,用于数据的计算和存储
spark.executor.memoryOverhead Executor进程的堆外内存,用于JVM的额外开销,操作系统开销等 spark.executor.memoryOverhead=
spark.executor.memory × \times× 0.1
spark.executor.instances 静态分配executor数量 不使用静态分配

CDH之HIVE-ON-SPARK、Spark配置_第4张图片

 Executor数量动态分配


spark.dynamicAllocation

CDH之HIVE-ON-SPARK、Spark配置_第5张图片

配置名称 说明 建议
spark.dynamicAllocation.enabled 是否启用 Executor个数动态调配 启用
spark.dynamicAllocation.initialExecutors 初始Executor个数
spark.dynamicAllocation.minExecutors 最少Executor个数 1
spark.dynamicAllocation.maxExecutors 最多Executor个数
spark.dynamicAllocation.executorIdleTimeout Executor闲置超时就会被移除 默认60秒
spark.dynamicAllocation.schedulerBacklogTimeout 待处理的任务积压超时就会申请启动新的Executor 默认1秒
  • 假设某节点 NM 有16个核可供Executor使用

若spark.executor.core配置为4,则该节点最多可启动4个Executor
若spark.executor.core配置为5,则该节点最多可启动3个Executor,会剩余1个核未使用

  • Executor个数的指定方式有两种:静态分配和动态分配

动态分配可根据一个Spark应用的工作负载,动态地调整Executor数量
资源不够时增加Executor,Executor不工作时将被移除
启用方式是spark.dynamicAllocation.enabled设为true
 

Spark配置


CDH6.3.2的Spark版本为:2.4.0+cdh6.3.2

shuffle服务

  • 启用了动态分配Executor数量的情况下,shuffle服务允许删除Executor时保留其编写的shuffle文件
  • 每个工作节点上都要设置外部shuffle服务

spark.shuffle.service
CDH之HIVE-ON-SPARK、Spark配置_第6张图片

配置建议

  • 大数据集群分为管理节点和工作节点,建议:

管理节点的逻辑核数:内存(G)=1:2或1:4
工作节点的逻辑核数:内存(G)=1:4或1:8

  • 建议给到 NM 约80%服务器资源,例如服务器有128G和32核,则:

yarn.nodemanager.resource.memory-mb可给100G
yarn.nodemanager.resource.cpu-vcores可给25
 

工作节点 p101 p102 p103 p104 max
内存(G) 128 128 128 128 512 128
逻辑CPU个数(虚拟核心数) 32 32 32 32 128 32
NM 可分配内存(G)yarn.nodemanager.resource.memory-mb 100 100 100 100 400 100
NM 可分配虚拟核心数yarn.nodemanager.resource.cpu-vcores 25 25 25 25 100 25

  • MapReduce

AM内存:12G
AM虚拟核心数:3
Map内存:20G(单节点yarn.nodemanager.resource.memory-mb的约数)
Map虚拟核心数:5(单节点yarn.nodemanager.resource.cpu-vcores的约数)
Reduce内存:20G
Reduce虚拟核心数:5

  • Spark

spark.driver.memory:10.8G
spark.driver.memoryOverhead:1.2G
spark.executor.memory:18G
spark.executor.memoryOverhead:2G
spark.executor.cores:5
CDH之HIVE-ON-SPARK、Spark配置_第7张图片

附录 

idle ˈaɪd(ə)l adj. 无事可做的;闲置的;v. 无所事事;(发动机、车辆)空转
overhead ˌoʊvərˈhed adv. 在头顶上方;adj. 头顶上的;n. 营运费用;日常管理费;间接费用
backlog ˈbæklɔːɡ n. 积压的工作
pending ˈpendɪŋ adj. 待定的,待处理的;即将发生的;prep. 直到……为止:v. 等候判定或决定
pend pend v. 等候判定;悬挂

原文地址:spark.apache.org/docs/latest=>Configuration

你可能感兴趣的:(hadoop,spark,hive,大数据,spark)