mapred任务性能优化本质上就是和shuffle搏斗-hive hadoop spark

【Hive】MapRedTask报错处理记录 实例1: 场景:跑日分区表3年历史数据,SQL为日数据 left join 基本信息的结构。 问题: stage-1的reduce跑不动 暴力解决方案,直接把reduce tasks的数调大 set mapred.reduce.tasks=1000; --可多试几个数值 ... 阅读详情

hive中解决数据倾斜的思路

1.由key为null值造成的倾斜,将空置变成字符串加随机数

2.由group by造成的倾斜,map端聚合

set hive.groupby.skewindata=true;

hive.groupby.mapaggr.checkinterval = 100000 (默认)

hive.map.aggr.hash.min.reduction=0.5(默认)

3.控制reduce节点上的数据规模

set hive.optimize.skewjoin = true;  — 优化歪斜:true

set hive.skewjoin.key = skew_key_threshold (default = 100000)— 歪斜键阈值,数据行数

行数超过阈值的reduce节点上就不再接收新数据,map端发送到其他reduce节点上去

下面是设置单个reduce节点上最大数据规模,也可以设置reduce节点个数,根本目的和上面是一样的,不要让单台reduce上有太多数据

set hive.exec.reducers.bytes.per.reducer = 1000000000(10的9次方字节是1G)— 字节数.单个.reducer

set mapred.reduce.tasks=800;

从这么长时间学习hadoop spark hive来看,性能调优问题的思路都一样

本质上就是和shuffle搏斗,以及解决数据倾斜问题(shuffle涉及到io和网络传输)

都是在reduceByKey或者hive中group by中造成的

解决的思路主要是下面几点:

1.减少shuffle次数

用broadcast+filter或者hive中的mapjoin来代替两个大表直接join

2.减小shuffle数据规模

比如使用reduceByKey代替groupByKey,先在map端聚合一次减小数据规模

比如在join和union之前先去重

比如在reduceByKey之前先用filter把rdd的规模过滤到最小

3.解决数据倾斜问题

map端是各个节点处理自己节点上的数据,不涉及数据倾斜

主要是由于key的集中分布导致过多的局部key被发送到个别的reduce节点上,导致个别节点上的reduceByKey极慢,大家都在等着他

表现也很明显,很多reduce节点都完成了,就他一个完不了

hive上数据倾斜解决思路

首先明确涉及到reduce算子的地方才会有shuflle,才会有数据倾斜,对应的hive算子就是group by/sort by/distinct

下面就是个总体思路,具体的参数调节都在上面写了

(1)map端进行combine

(2)设置单个reduce上的最大数据规模,或者增大reduce任务个数

spark上解决数据倾斜思路

第一种思路

1.先在key上添加随机数,注意这个随机数是介于0-task个数之间的随机整数,不是真的一个32位随机数,那样会导致每个key都成唯一的了,reduceByKey就没有意义了

2.汇总

3.去掉随机数继续汇总

第二种思路

使用自定义partitioner

第三种思路

在map端combine,先合并一次减少数据量

第四种思路

reduceByKey之前进行手动重分区

VMware ESXi 直通GPU 虚拟机需要独享GPU资源,那么就需要用到DirectPath I/O (直通),ESXi hypervisor 把 GPU 设备直接映射成虚机中的 GPU 设备,供应用使用。注意,内存注意一定要勾选预留,否则开机后报错如下:无法打开虚拟机 win10 的电源。1.ESXi主机,管理,硬件,PCI设备,勾选GPU卡,切换直通,会提示要求重启主机,重启主机之后,该GPU设备直通一栏显示为“活动”。先确认虚拟机是否EFI引导:编辑虚拟机 - 虚拟机选项 - 引导选项 - 固件 - EFI。 阅读详情

相关推荐

矩形口径喇叭天线设计——参数设置

我们建立好矩形口径喇叭天线的模型后(模型建立可参考B站相关视频或者李明洋的《HFSS天线设计》),如何修改参数达到我们的指标呢?

m0_57263863的博客 1万+

从一个经典案例看优化mapred.map.tasks的重要性

我所在公司所使用的生产Hive环境的几个参数配置如下: dfs.block.size=268435456 hive.merge.mapredfiles=true hive.merge.mapfiles=true hive.merge.size.per.task=256000000 mapred.map.tasks=2 因为合并小文件默认为true,而dfs.block.size与hive.merg...

weixin_42874157的博客 2249

ZEMAX优化方法---【Zemax学习】

在光学系统自动设计中,优化设计是光学设计中的重要阶段,也是ZEMAX软件的核心功能,涉及评价函数、权因子、阻尼因子等重要概念。在常用的阻尼最小二乘法优化设计的基础上,ZEMAX给我们提供了三种优化选择:Optimization(局部优化)、Global Search(全局优化)和 Hammer Optimization(锤形优化)。

yh的博客 4451

HIVE Mapred tasks exceed 1000000000

Topo check failed. Mapred tasks exceed 1000000000 Automerge可以直接在Inceptor命令行中开启: SET ngmr.partition.automerge = true; SET ngmr.partition.mergesize = n; SET ngmr.partition.mergesize.mb = m; "ngmr.part...

kaku1230的博客 5651

免费AI视频生成全流程:通义千问+Seedance 2.5+Grok实战指南

AI视频生成正在成为内容创作的重要方式,但高昂的API费用常让个人创作者望而却步。实际上,通过合理组合云端免费工具,也能搭建一条完整的视频生产链路:利用大模型生成脚本,用视频生成模型将文本渲染成画面,再借助多模态模型进行一致性校验。这种“文本+视频+多模态”的协作模式,将复杂的生成任务解耦为可独立调用的模块,既降低了本地硬件要求,也为批量内容验证提供了低成本方案。该流程适用于短视频素材快速产出、产品Demo验证以及AI应用集成等场景,核心在于打通免费账号、API调用与批量任务调度。本文以通义千问、Seeda

weixin_29044157的博客 380

Zynq远程更新程序实战:从emmc到flash的完整方案解析

本文详细解析了Zynq远程更新程序的完整方案,重点探讨了从emmc到flash的实战操作。通过硬件连接限制破解、emmc配置技巧、flash擦写策略优化等关键技术点,提供了可靠的远程更新解决方案,特别适合需要频繁更新boot.bin的应用场景。

weixin_29163797的博客 179

hive之_shuffle过程浅谈

个人对shuffle 的理解 说道离线就离不开hive,说道hive就离不开对shuffle的理解,基于hdfs所打造的数据仓库,核心就是hive的shuffle过程,英译是洗牌 ,整个过程也就是清洗重发的过程。 shuffle过程 首先是inputsplit ,每个切片对应一个map(可以通过yarn去观察),map端首先对读入数据做按不同数据类型做分区,之后根据不同分区做排序(这里采用的快速排序),map过程中会有内存换冲区(环形缓冲区) 它的作用,在数据写入过程中,将数据存入内存从而达到

qq_43801878的博客 7197

从零开始学习PX4源码23(飞行模式管理)

本文摘要主要介绍了PX4飞控系统中飞行模式管理模块的代码实现流程。文章从整体架构入手,分析了飞行模式管理模块的启动过程、类继承关系以及核心运行机制。重点阐述了模块从rc.mc_apps启动脚本到FlightModeManager::main()的调用链路,包括任务创建、工作队列初始化和主循环执行流程。核心部分解释了Run()函数如何通过订阅传感器数据、更新参数、处理命令以及生成轨迹设定点来实现飞行模式切换和任务管理功能。文章为理解PX4飞行控制系统的模式切换机制提供了代码层面的详细分析。

陌城烟雨 499

hive中shuffle 与 spark shuffle 中的异同

由于目前的项目有强制的资源限制,hive任务不能满足要求,需要将hiveSQL 改成spark 的scala脚本运行,但是再过程中遇到了很多坑,这里记录一下可能涉及到的原理问题。 由于hive SQL 是使用SQL实现,再逻辑非常复杂的情况下,只能将任务分成多个阶段,同时尽量减少job数 来提高效率。在这种情况下,有可能出现复算以及计算无效数据的情况,需要衡量计算无效数据的效率以及避免计算而出现的...

snksnk1091的博客 5196

T113-S3-官方SDK分区添加

本篇文章将展示如何编译T113-S3的SDK以及在sdk中添加用户自定义分区,让您能够轻松地开始在您的项目中使用T113-S3芯片。T113-S3是一款功能强大的嵌入式处理器,适用于各种应用,包括物联网、工业自动化和智能家居等。T113-S3-SDK是特别为T113-S3芯片设计的软件开发工具包(Software Development Kit)。它包含了一系列用于开发和定制嵌入式应用程序的工具、库和示例代码,方便开发者在T113-S3平台上开展软件开发工作。

flypig has a dream! 2360

【AUTOSAR-E2E】-2.2-配置E2E:基于E2EPW配置一个TX发送的Signal Group(使用E2E Profile 2)

《共13页精讲》:此法也适用于E2E Profile 4/5/6/7/11/22 目录 1 检查CAN Matrix Arxml/DBC是否满足E2E需求 2 在DaVinci Developer中为Port添加E2E保护 3 在DaVinci Configurator settings设置 4 如何使用应用层的E2E保护 5 结尾 <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> &lt.

「汽车电子助手」的博客 4219

hive优化之调整mapreduce数目

hive优化之调整mapreduce数目 ...

不言尘世 620

使用 Simulink + Simscape Electrical 实现一个变压器耦合式单相全波整流器的仿真模型

本文介绍了基于Simulink的变压器耦合式单相全波整流器建模与仿真方法。详细说明了从项目创建、模块添加、电路搭建到参数配置的完整建模过程,重点分析了整流器的效率与损耗特性,包括变压器损耗和二极管导通损耗。通过仿真展示了输入输出波形特征,并提出了选用高效元件、优化变压器设计等改进建议。该案例为电力电子系统建模提供了实用参考,有助于深入理解整流电路工作原理和性能优化方法。

amy_mhd的博客 189

Hive Shuffle 的具体过程

Shuffle 是指在 MapReduce 作业中,将数据从 Mapper 中传输到 Reducer 的过程。这个过程通常涉及到数据的重新分配和排序,以确保相同的键被发送到同一个 Reducer 节点。Shuffle 是大数据处理中的关键环节,因为它直接影响到作业的性能和结果的正确性。Join 操作:将两个或多个表的数据进行合并。Group By 操作:将数据分组成多个组并进行聚合计算。Aggregation 操作:对数据进行汇总,例如求和、计数等。

My_wife_QBL的博客 1756

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

hive sql优化和shuffle过程优化

1.map端 增大缓冲区大小:100M改为200M 增大缓冲区溢写百分比:0.8改为0.9

riwanba的博客 2301

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Shuffle过程介绍

  摘要:腾讯分布式数据仓库基于开源软件Hadoop和Hive进行构建,TDW计算引擎包括两部分:MapReduce和Spark,两者内部都包含了一个重要的过程—Shuffle。本文对Shuffle过程进行解析,并对两个计算引擎的Shuffle过程进行比较。 腾讯分布式数据仓库(Tencent distributed Data Warehouse, 简称TDW)基于开源软件Hadoop和Hiv...

pengweid专栏 9515

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

hive调优系列—针对mapreduce进行调优

本文主要针对mapreduce的配置对hive进行调优。更多配置可查看hive官网。

eli的博客 1818

python 写文件_一日一技:Python只有文件不存在才能写文件

当我们在Python里面写文件时,我们常用的模式为 w模式,这种模式下,如果文件不存在,就会生成文件;如果文件已经存在,就会直接覆盖。有时候,如果文件已经存在,直接覆盖文件可能会导致重要数据丢失。你不希望再覆盖文件,那么你可能会这样写代码:import osif os.path.exists('/test/file.txt'): print('文件已经存在')else: wi...

weixin_40003283的博客 424

[hive] mr 引擎 和spark引擎对reduce task的设置

Configuration Properties - Apache Hive - Apache Software Foundation 1.mr mapred.reduce.tasks 强制指定reduce个数 默认值:-1 添加于:Hive 0.1.0 通过将此属性设置为 -1,Hive 将自动计算出reduce task的数量。 hive.exec.reducers.bytes.per.reducer 每个reduce task处理的最大数据量 Hive 0.14.0 及更高版本中为256,0.

胖胖的博客 2244

hive的一些调优参数

很久以前存的,忘记是从哪篇文章扒拉下来的,里面有很多开发中会用到的参数,希望可以方便大家使用(其实记录这些也是方便后面用到的时候自己方便查看,本地存的东西有点乱了,打算换个地方再存一份)。 set hive.support.concurrency = true; 关闭表锁机制 show locks 查看表锁 set hive.enforce.bucketing = true; set hive.exec.dynamic.partition.mode = nonstrict; set hive...

朝和 2787

hive调优

1.一个mr作业:两个mr作业 解决数据倾斜的问题udf:add_suffixpre_suffixdistinct => job只有一个 task 只有一个reduce task来完成 =》 必然导致数据倾斜问题设置reduce 个数 是没有用的去重: distinct 性能不行解决:group by3.join1.shuffle join/ mapreduce join 普通join2.map join =》 不会导致数据倾斜1.普通join 导致数据倾斜 如何解决。

weixin_48625295的博客 558

Hive其他优化

一、关联优化器 在Hive的一些复杂关联查询中,可能同时还包含有group by等能够触发shuffle的操作,有些时候shuffle操作是可以共享的,通过关联优化器选项,可以尽量减少复杂查询中的shuffle,从而提升性能 set hive.optimize.correlation=true; 二、Hive并行执行 Hive会将一个查询转化为一个或多个阶段,包括:MapReduce阶段、抽样阶段、合并 阶段、limit阶段等。默认情况下,一次只执行一个阶段。不过,如果某些阶段不是互相依赖,是可以并行执行

feizuiku0116的博客 1052

超实用Hadoop的Shuffle过程优化:map端,reduce端,网络IO以及常见参数配置

Shuffle功能强大,但是Shuffle过程中多次落盘操作以及网络IO,是导致MapReduce慢的主要原因,可以尝试从以下几个方面进行优化: 1、Map阶段 (1)增大环形缓冲区大小。由100m扩大到200m (2)增大环形缓冲区溢写的比例。由80%扩大到90% (3)减少对溢写文件的merge次数。(10个文件,一次20个merge) (4)不影响实际业务的前提下,采用Combiner提前合并,减少 I/O。 2、Reduce阶段 (1)合理设置Map和Reduce数:两个都不能设置太少

不爱吃鱼的馋猫 698

hive的数据倾斜以及优化策略

1. hive的数据倾斜  介绍:只要在分布式一定有shuffle,避免不了出现数据倾斜,在混淆数据的过程中出现数据分布不均匀。比如:在MR编程中reducetask阶中的数据的大小不一致,即很多的数据集中到了一个reducetask中,hive的数据倾斜就是mapreduce的数据倾斜 maptask reducetask最后就是reducetask阶段的数据倾斜。  不会产生数据倾斜的场景...

weixin_34326558的博客 268

spark shuffle对比hive shuffle

原文:https://blog.youkuaiyun.com/u010697988/article/details/70173104 Spark 和 Hadoop一直是大数据离线计算的必经之路,自己在工作中也经常用到,所以学习一下原理还是很有必要的,不然碰到问题很容易一脸懵逼,其中感觉shuffle是两者的核心之一,故整理下,方便以后回顾。 大数据的分布式计算框架目前使用的最多的就是hadoop的mapRed...

weixin_37944880的博客 3781
上一篇: kafka的replica机制能保证不丢数据吗
下一篇: hive中reduce类函数说明
千淘万漉
博客等级 码龄10年 115粉丝 99原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值