Hive on Spark调优(大数据技术8)

news/2024/7/7 20:19:37

8章 任务并行度优化

8.1 优化说明

        对于一个分布式的计算任务而言,设置一个合适的并行度十分重要。在Hive中,无论其计算引擎是什么,所有的计算任务都可分为Map阶段和Reduce阶段。所以并行度的调整,也可从上述两个方面进行调整。

8.2 Map阶段并行度

        Map端的并行度,也就是Map的个数。是由输入文件的切片数决定的。一般情况下,Map端的并行度无需手动调整。Map端的并行度相关参数如下:

--可将多个小文件切片,合并为一个切片,进而由一个map任务处理
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; 
--一个切片的最大值
set mapreduce.input.fileinputformat.split.maxsize=256000000;

8.3 Reduce阶段并行度

Reduce端的并行度,相对来说,更需要关注。默认情况下,Hive会根据Reduce端输入数据的大小,估算一个Reduce并行度。但是在某些情况下,其估计值不一定是最合适的,故需要人为调整其并行度。

Reduce并行度相关参数如下:

--指定Reduce端并行度,默认值为-1,表示用户未指定
set mapreduce.job.reduces;
--Reduce端并行度最大值
set hive.exec.reducers.max;
--单个Reduce Task计算的数据量,用于估算Reduce并行度
set hive.exec.reducers.bytes.per.reducer;

Reduce端并行度的确定逻辑为,若指定参数mapreduce.job.reduces的值为一个非负整数,则Reduce并行度为指定值。否则,Hive会自行估算Reduce并行度,估算逻辑如下:

假设Reduce端输入的数据量大小为totalInputBytes

参数hive.exec.reducers.bytes.per.reducer的值为bytesPerReducer

参数hive.exec.reducers.max的值为maxReducers

则Reduce端的并行度为:

 其中,Reduce端输入的数据量大小,是从Reduce上游的Operator的Statistics(统计信息)中获取的。为保证Hive能获得准确的统计信息,需配置如下参数:

--执行DML语句时,收集表级别的统计信息
set hive.stats.autogather=true;
--执行DML语句时,收集字段级别的统计信息
set hive.stats.column.autogather=true;
--计算Reduce并行度时,从上游Operator统计信息获得输入数据量
set hive.spark.use.op.stats=true;
--计算Reduce并行度时,使用列级别的统计信息估算输入数据量
set hive.stats.fetch.column.stats=true;


http://lihuaxi.xjx100.cn/news/1151740.html

相关文章

聚观早报|ChatGPT 推出官方 iOS App;大疆称将接收OPPO哲库工程师

今日要闻:ChatGPT 推出官方 iOS App;大疆称将接收OPPO哲库工程师;菜鸟、盒马启动上市计划;苹果公司限制员工使用ChatGPT;张勇:阿里云将分拆上市 ChatGPT 推出官方 iOS App 北京时间 5 月 19 日&#xff0c…

Fragment 要你何用?2.0版本

前言 在之前的文章里有分析过Activity、Fragment、View之间的关联,也简单分析了Fragment的原理。 本篇将对Fragment被高频使用的场景以及一些坑点作分析,通过本篇文章,你将了解到: 老生常谈:为什么需要Fragment?Frag…

KingbaseES V8R3 备份恢复系列之 -- sys_rman备份过程分析

​ 案例说明: 本案例通过对KingbaseES sys_rman物理备份过程的详细描述,有助于在执行sys_rman过程中发生故障的分析。适用版本: KingbaseES V8R3 一、sys_rman执行过程简介 1. 调用select sys_start_backup()开始备份,sys_start_b…

SOFA Weekly|SOFA 大事记、Layotto 社区会议回顾与预告、社区本周贡献

SOFA WEEKLY | 每周精选 筛选每周精华问答,同步开源进展 欢迎留言互动~ SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件&am…

java selenium关闭https 证书认证

直接上代码: DesiredCapabilities capabilities DesiredCapabilities.chrome(); ChromeOptions options new ChromeOptions(); options.addArguments("test-type"); options.addArguments("start-maximized"); options.addArguments("u…

ARM处理器概论与组织

目录 1.ARM产品系列 2.体系结构 3.ARM指令集 定义: ARM的指令集: 4.编译原理 5.ARM存储模型 6.ARM的8种工作方式 ARM(Advanced RISC Machines)有三种含义 一个公司的名称、一类处理器的通称、一种技术,我们在这…

nginx 502性能调优---已解决

上半部分是调优,下半部分是解决502的问题 php调优: memory_limit:根据适当情况上调,我这里是提升一倍(脚本内存限制) max_children:适当调整(进程数) request_terminate…

有名的国外CRM系统有哪些?如何选择?

CRM系统可以帮助企业获得更多地潜在客户,优化销售流程,提高工作效率,增强客户服务水平,是如今企业不可或缺的工具。那么,国外CRM的知名厂商有哪些?下面小编来为大家进行推荐。 Zoho CRM: Zoho…