Hive的并行度的优化

对于分布式任务来说,任务执行的并行度十分重要。Hive的底层是MapReduce,所以Hive的并行度优化分为Map端优化和Reduce端优化。

(1)、Map端优化

Map端的并行度与Map切片数量相关,并行度等于切片数量。一般情况下不用去设置Map端的并行度。以下特殊情况下需要设置Map端并行度。

1.1、查询表中存在大量的小文件(减小Map并行度)

一个小文件相当于一个切片,所以就会为每个小文件开启一个maptask任务,因此会启动大量的maptask,造成资源的大量占用。解决问题的办法就是进行小文件的合并,把多个小文件合并成一个大文件,这个大文件作为一个切片,然后给这个大文件开启一个maptask任务即可。合并的操作是CombineHiveInputFormat。相关的参数是:
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

(需要知道使用的是CombineHiveInputFormat操作就可以了,具体的命令用到的时候再查)

1.2、map端有复杂的查询逻辑

若SQL语句中有正则替换、json解析等复杂耗时的查询逻辑时,map端的计算会相对慢一些。为了提高map端的计算速度,在计算资源充足的情况下就可以适当的提高map端的并行度。这是只需要减小每个切片的数据量大小就可以了。相关的参数是:

--------------一个切片的最大值---------------

set mapreduce.input.fileinputformat.split.maxsize=256000000;

(2)、Reduce端优化

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

假设Job输入的文件大小为toatlInputBytes,每个Reducer的数据量参数hive.exec.reducers.bytes.per.reducer的值为bytesPerReducer,以及最大Reducer数量参数hive.exec.reducers.max的值为maxReducers。则Reducer端的并行度为:

min(ceil(toatlInputBytes/bytesPerReducer),maxReducers)。

但是在有些情况下,这种估算方式也有不足,因为它是以整个文件大小作为分子进行的估算,合理的应该是进入Reduce端的文件大小来估算,因为整个文件在进入Map端之后可能进行过聚合,那么此时进入Reduce端的数据量就不是整个文件大小。

总结来说:Reduce端的优化就是在于手动的设置并行度的数量,如果未手动设置,则会按照上面的方式来计算并行度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/92857.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/92857.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue.js 响应接口:深度解析与实践指南

Vue.js 响应接口:深度解析与实践指南 引言 随着前端技术的不断发展,Vue.js 作为一种流行的前端框架,已经成为了众多开发者的首选。Vue.js 的响应式系统是其核心特性之一,它允许开发者轻松实现数据的双向绑定。而响应接口则是Vue.j…

高精度蓝牙定位:技术、应用与未来发展

一、高精度蓝牙定位概述在当今科技飞速发展的时代,定位技术的精度和可靠性变得越来越重要。高精度蓝牙定位作为一种新兴的定位技术,正逐渐崭露头角。蓝牙技术是一种支持设备短距离通信(一般10m内)的无线电技术,能在包括…

C# 基于halcon的视觉工作流-章29-边缘提取-亚像素

C# 基于halcon的视觉工作流-章29-边缘提取-亚像素 本章目标: 一、1edges_sub_pix; 二、threshold_sub_pix;本实例实现过程与章28基本相同,不同处在于提取的边缘是亚像素,精度较高,本文仅介绍不同之处&#…

如何实现PostgreSQL的高可用性,包括主流的复制方案、负载均衡方法以及故障转移流程?

前言 实现 PostgreSQL 的高可用性(High Availability, HA)是一个系统工程,需要结合复制技术、连接路由(负载均衡)、自动故障转移(Failover)以及监控告警。以下是主流方案和关键流程的详细说明&a…

Apache Ignite 生产级的线程池关闭工具方法揭秘

Apache Ignite 中用于 安全、可靠地关闭线程池&#xff08;ExecutorService&#xff09; 的关键逻辑。我们来一步步深入理解它的设计思想和实现细节。&#x1f9f1; 一、核心方法&#xff1a;U.shutdownNow(...) public static void shutdownNow(Class<?> owner, Nullab…

Unity:GUI笔记(一)——文本、按钮、多选框和单选框、输入框和拖动条、图片绘制和框绘制

写在前面&#xff1a;写本系列(自用)的目的是回顾已经学过的知识、记录新学习的知识或是记录心得理解&#xff0c;方便自己以后快速复习&#xff0c;减少遗忘。主要是唐老师的课程。一、重要参数、文本、按钮GUI相关代码需要写在private void OnGUI()中。该函数每帧执行&#x…

wordpress从wp_nav_menu中获取菜单项

从wp_nav_menu中获取菜单项&#xff0c;然后检查这些菜单项是否对应分类(Category)&#xff0c;并输出这些分类的ID。 以下是完整的代码实现&#xff1a; <?php // 获取指定菜单位置的菜单项 $menu_items wp_get_nav_menu_items(wodepress); // wodepress 是菜单位置的名…

第4章 程序段的反复执行2 while语句P128练习题(题及答案)

&#xff08;&#xff08;1&#xff09;阅读程序#include <bits/stdc.h> using namespace std; //汤永红 int main(){int n,s0;cin >> n;while(n){s s * 10 n % 10;n / 10;}cout << s << endl;return 0; }分别输入&#xff1a;0 1024 1234567890输出…

图解软件系统组成

这是基于 ​​PlantUML​​ 绘制的软件系统组成部分思维导图&#xff0c;聚焦技术路线与文件类型的对应关系&#xff0c;采用分层架构展示核心模块&#xff1a;startmindmap * **软件系统组成部分*** **一、核心技术栈*** 后端技术* 技术路线: Python Web 框架* 文件类型: .py …

【传奇开心果系列】Flet框架实现的多人访问web数据表高并发前后端自定义框架模板

Flet框架实现的多人访问web数据表高并发前后端自定义框架模板一、效果展示截图二、应用场景介绍1. **多用户实时协作**2. **产品管理**3. **数据可视化**三、特色说明1. **实时通信**2. **高性能**3. **用户友好的界面**4. **日志记录**5. **安全性**四、总结五、源码下载地址六…

农业智慧大屏系统 - Flask + Vue实现

下面我将实现一个完整的农业智慧大屏系统&#xff0c;使用Flask作为后端框架&#xff0c;前端使用Vue.js结合ECharts进行数据可视化展示。 设计思路 前端部分&#xff1a; 使用Vue.js构建响应式界面 使用ECharts实现各类农业数据可视化 使用CSS Grid布局实现大屏适配 后端…

Linux中Https配置与私有CA部署指南

Linux中Https配置与私有CA部署指南 一、HTTPS 核心概念特性HTTPHTTPS协议明文传输HTTP SSL/TLS端口80443加密未加密数据加密二、SSL/TLS 握手流程 Client → Server ClientHello&#xff1a;支持哪些版本、支持哪些加密算法&#xff0c;随机生成一组32字节数据 random_c Serve…

【软考架构】主流数据持久化技术框架

JDO与JPA JDO&#xff08;Java Data Objects&#xff09;和JPA&#xff08;Java Persistence API&#xff09;都是Java中用于对象持久化的规范&#xff0c;但它们在设计目标、技术背景和应用场景上存在显著区别。以下是两者的核心对比&#xff1a;1. 规范背景与维护方 JDO&…

服务日志、监控

服务怎么做监控和告警使用 Prometheus 和 Grafana 来实现整个微服务集群的监控和告警&#xff1a;Prometheus&#xff1a;Prometheus 是一个开源的监控系统&#xff0c;具有灵活的数据模型和强大的查询语言&#xff0c;能够收集和存储时间序列数据。它可以通过 HTTP 协议定期拉…

秋招笔记-8.12

我决定从今天开始&#xff0c;在每天的学习内容中加入算法的内容&#xff0c;大致分布时间的话&#xff0c;假设我一天可以学习八个小时&#xff0c;那算法两个小时&#xff0c;八股三个小时&#xff0c;项目三个小时这样的分布差不多吧。之所以还是需要做做笔试一是为了应对面…

【从0带做】基于Springboot3+Vue3的校园表白墙系统

大家好&#xff0c;我是武哥&#xff0c;最近给大家手撸了一个基于SpringBoot3Vue3的校园表白墙系统&#xff0c;可用于毕业设计、课程设计、练手学习&#xff0c;系统全部原创&#xff0c;如有遇到网上抄袭站长的&#xff0c;欢迎联系博主~ 资料获取方式 请点开作者头像看下…

【Linux系列】服务器 IP 地址查询

博客目录一、hostname 命令&#xff1a;简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令&#xff1a;新一代网络配置全能工具基本用法在服务器管理和网络运维中&#xff0c;快速准确地获取服务器的 IP 地址是一项基本但至关重要的技能。无论是进行远程连接、配…

【完美解决】在 Ubuntu 24.04 上为小米 CyberDog 2 刷机/交叉编译:终极 Docker 环境搭建指南

摘要 本文旨在为广大开发者提供一份在非官方推荐的 Ubuntu 24.04 系统上&#xff0c;成功为小米机器狗 CyberDog 2 进行刷机和交叉编译的终极解决方案。通过层层排查 setup.sh 依赖缺失、No devices to flash 以及交叉编译 Segmentation fault 等疑难杂症&#xff0c;我们发现根…

XX生产线MES系统具体实施方案

一、系统架构设计1. 整体架构图2. 技术组件清单模块技术选型部署要求应用服务Spring Boot 3.2 Spring CloudKubernetes Pod (4C8G)实时通信Kafka 3.6 WebSocket3节点集群工业协议Eclipse Milo (OPC UA)独立服务器 (2C4G)数据库PostgreSQL 15 TimescaleDB 2.10SSD存储, 主从复…

Go语言实战案例:使用模板渲染HTML页面

在 Web 开发中&#xff0c;身份验证是一个绕不开的话题。传统的 Session 机制依赖服务器存储用户状态&#xff0c;而在微服务、分布式架构下&#xff0c;这种方式可能会导致状态同步困难。 JWT&#xff08;JSON Web Token&#xff09;是一种无状态的、跨平台的身份验证解决方案…