首页 > 其他分享 >hive调优之参数设置

hive调优之参数设置

时间:2023-01-05 16:01:54浏览次数:51  
标签:set -- hive 调优 executor spark true 参数设置

目录

一、使用spark引擎

0、Hive on Spark

https://www.cnblogs.com/lq0310/p/9855245.html

1、spark资源申请

set spark.yarn.jar=hdfs://ip:port/spark/sparkJarForHive/*.jar
set hive.execution.engine=spark;
set spark.home=/etc/sparkForHive
set spark.master=yarn
set spark.app.name=测试

set spark.executor.instances=40;
set spark.executor.memory=30g;
set spark.executor.memoryOverhead=5g;
set spark.executor.cores=4;
set spark.default.parallelism=300;
set spark.sql.shuffle.partitions=300;
set spark.driver.memory=12g;
set spark.driver.memoryOverhead=1g;
set hive.spark.client.server.connect.timeout=300000;

1、集群资源,33节点,2.5TB内存
2、需求申请500G左右内存
3、申请 cores=4 ,一般core申请4-5个
4、申请的 executor = 集群节点数/cores数 = 33/4 = 8 ,这样每个 executor 的内存 = 需求内存大小/executor数 ,即每个executor 的内存有 500G/8=40G
5、executor.memoryOverhead 一般为每个executor的内存大小的12%-20% ,即 40G * 15% = 6G , 所以实际设置为5G
6、executor.memory = 40G - 6G = 33G ,所以实际设置为 30G
7、每个executor 可以运行 4 个任务,每个core 一个 task。那么每个task的平均内存是 35/4 = 9G , X=500G。如果 X > 50G ,driver内存申请12G;如果 50G>X > 12G ,driver内存申请4G;如果 12G>X > 1G ,driver内存申请1G;如果 1G>X ,driver内存申请256MB。
8、根据 第7点,我们实际申请 driver.memory=12G,memoryOverhead = memory*15% ,实际申请 driver.memoryOverhead= 1G

关于spark资源申请的个人总结:
1)资源申请一定是越多越好,资源越多任务跑得越快,此时限制任务速度的是资源分配方式、硬件等方面。
2)资源不足的情况下,根据团队规定,单个任务资源申请不超过总资源的15%。
3)普通任务(10分钟内跑完)可申请总资源的5%。如总内存2.5T,总核900,一般每个节点申请3~5核,所以申请 cores=4,那么 instances=9005%/4=11,executor.memory=25005%/11=11G。
4)每个任务的虚拟核数和内存大小比例应根据任务实际运行情况而定,有些任务并不需要太多的核,如一些stage中大部分时间只有一个节点的核在工作。

2、作业过程中的相关参数

--开启小文件合并
hive.merge.sparkfiles=true;
hive.merge.rcfile.block.level=true;

--上述设置为文件预合并大小为256MB
hive.merge.size.per.task=256000000;

--作业输出文件小于上述设置160MB时,会合并为更大的文件(mapfiles为true,对于map reduce作业,如果为hive.merge.mapredfiles为true。)
hive.merge.smallfiles.avgsize=16000000;

--是否自动转换成mapjoin。转换前会有reduce,中间结果会进行落盘;转换后没有了reduce阶段,map直接输出join结果,此时又多少maptask就产生多少个文件
hive.auto.convert.join=true;

--大表小表的阀值设置(默认25M一下认为是小表),一旦开启map端join配置,Hive会自动检查小表是否大于此参数配置的大小,如果大于则转为普通的join,如果小于则转为map端join。
hive.mapjoin.smalltable.filesize=25000000;

--是否将多个mapjoin合并成1个
hive.auto.convert.join.noconditionaltask=true;

--多个mapjoin合并成1个时,所有小表的文件大小综合的最大值(1G)
hive.auto.convert.join.noconditionaltask.size=1000000000;

--开启hive中间文件压缩
hive.exec.compress.intermediate=true;
hive.intermediate.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;
hive.intermediate.compression.type=BLOCK;

--hive的默认查询执行引擎一次处理一行,而矢量化查询执行是一种hive特性,目的是按照每批1024行读取数据,并且一次性对整个记录整合(而不是对单条记录)应用操作,注意:要使用矢量化查询执行,就必须以ORC格式存储数据。
hive.vectorized.execution.enabled=true;

--谓词下推
hive.optimize.ppd=true;

--列裁剪
hive.optimize.cp=true;

标签:set,--,hive,调优,executor,spark,true,参数设置
From: https://www.cnblogs.com/nthforsth/p/16470209.html

相关文章

  • 描述大数据的技术生态?Hadoop、Hive、Spark 之间是什么关系
    作者:小怪兽链接:https://www.zhihu.com/question/27974418/answer/1862026844来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1Hadoop只是......
  • Android 性能调优笔记
    1、​​Android性能全面分析与优化方案研究—几乎是史上最全最实用的​​2、Android性能优化总结3、Android应用内存泄漏的定位、分析与解决策略4、Java垃圾回收器的GC......
  • jvm常用参数设置 专题
     在jdk8中-Xms2g不合法,能通过的:-Xms2G#!/bin/bashJAVA_OPTS="-Xms4G-Xmx4G-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=./dump-yyy.log-XX:ErrorFile=./jvm-c......
  • flink orc hive 2.1.1 源码bug处理
    先说一下我们公司的线上集群配置: CDH6.3.1,hive2.1.1 ,由于公司是做车联网业务方向的,所以数据量很大,同事小A,在往集群写数据,发现写入的数据不能在hive表里查询,他写往......
  • Hive调优 【行列过滤 及谓词下推】
    1.列处理:说明:避免使用select*,有分区时,要指定分区2.行处理:关联原则:在关联操作时,能先where的尽量先where,减少数据集3.hive底层优化策略-谓词下......
  • [Hive排序]--4种排序方式介绍
    一、官方文档​​Home-ApacheHive-ApacheSoftwareFoundation​​​​LanguageManual-ApacheHive-ApacheSoftwareFoundation​​​​LanguageManualSortBy-......
  • Elasticsearch高级调优方法论之——根治慢查询!
    Elasticsearch最少必要知识实战教程直播回放1、引言Elasticsearch是非常灵活且功能丰富的搜索引擎,它提供了许多不同查询数据的方法。在实战业务场景中,经常会出现远远低......
  • 性能测试-微服务性能压测监控和调优【重点】【杭州多测师_王sir】【杭州多测师】
     本文主要内容一、何为压力测试1.1、大白话解释性能压测是什么:就是考察当前软件和硬件环境下,系统所能承受的最大负荷,并帮助找出系统的瓶颈所在。性能压测的......
  • 关于CLR GC调优的一些问题
    前言在很多的场合我都遇到过一些群友提这样的一些问题:为什么Java有GC调优而CLR没有听说过有GC调优呢?到底是Java的JVMGC比较强还是C#使用的.NETCLR的GC比较强呢?其实业内已......
  • 一次SQL调优 聊一聊 SQLSERVER 数据页
    一:背景1.讲故事最近给一位朋友做​​SQL慢语句​​优化,花了些时间调优,遗憾的是SQLSERVER非源码公开,玩起来不是那么顺利,不过从这次经历中我觉得明年的一个重大任务就是......