当前位置: 首页 > news >正文

Hive效率优化记录

Hive是工作中常用的数据仓库工具,提供存储在HDFS文件系统,将结构化数据映射为一张张表以及提供查询和分析功能。
Hive可以存储大规模数据,但是在运行效率上不如传统数据库,这时需要懂得常见场景下提升存储或查询效率的方法,本文记录工作中常见的情形。

map阶段优化

map阶段主要是把文件拆分成一个个文件块。正常情况下,一个map任务的启动和初始化时间远远大于逻辑处理时间,所以可以增大max参数值减少map数;但在计算逻辑较为复杂(字段少记录过多)时可以减少max参数值增大map数,控制map数来协调启动和逻辑处理时间。

-- 减少map数
set hive.hadoop.supports.splittable.combineinputformat=true;
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; -- 执行前进行小文件合并,进而减少map数目
-- 文件小于1M的会单独产生一个map,文件在1M-256M之间大小的会合并,文件大于256M的拆分为多个
set mapred.min.split.size=1000000;
set mapred.max.split.size=256000000;
set mapred.min.split.size.per.node=256000000;
set mapred.min.split.size.per.rack=256000000;
-- set hive.exec.reducers.bytes.per.reducer=1073741824; -- 控制reduce个数,超过文件大小会产生多个reduce任务-- 增大map数
-- 一般使用情况是文件不是特别大,但是计算逻辑复杂,计算比较耗时,那么可以强制指定一个map任务个数提高执行效率
set mapred.reduce.tasks=10;
reduce阶段优化

reduce个数决定了最终输出文件的个数。增大reduce的个数会增加输出文件数量,减小reduce个数会减少输出文件数量。reduce个数过多会产生很多小文件影响以后计算效率,reduce个数过少会造成单个reduce处理数据量过大影响效率。

-- 1、Hive自动计算reduce个数
set hive.exec.reducers.bytes.per.reducer=500000000; -- 每个reduce任务最多处理500M的数据
set hive.exec.reducers.max=1009; -- 每个任务的最大reduce个数-- 2、认为指定reduce个数
set mapred.reduce.tasks=10; -- 人为指定10个reduce,会产生10个文件

注意,会产生只有一个reduce的情况:

  1. 查询时使用了order by 全局排序
  2. 表关联join时产生笛卡尔积情况
源头建表优化

建表时可以指定文件压缩格式,不要使用textfile,一般可以使用parquet+snappy格式

-- 为了提高计算和存储效率
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
TBLPROPERTIES('parquet.compression'='SNAPPY')

相关文章:

Hive效率优化记录

Hive是工作中常用的数据仓库工具,提供存储在HDFS文件系统,将结构化数据映射为一张张表以及提供查询和分析功能。 Hive可以存储大规模数据,但是在运行效率上不如传统数据库,这时需要懂得常见场景下提升存储或查询效率的方法&#x…...

⑩③【MySQL】详解SQL优化

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ SQL优化 ⑩③【MySQL】了解并掌握SQL优化1. 插…...

SQL 的 AND、OR 和 NOT 运算符:条件筛选的高级用法

AND 运算符 SQL的AND运算符用于根据多个条件筛选记录,确保所有条件都为TRUE才返回记录。下面是AND运算符的基本语法: SELECT column1, column2, ... FROM table_name WHERE condition1 AND condition2 AND condition3 ...;column1, column2,等是您要选…...

11.5MyBatis(进阶)

一.${}和#{} 1.$是直接替换,#是预处理(使用占位符,替换成?).前者不安全(SQL注入), 后者安全. 2.$的使用场景: 如果传递的值是sql的关键字,只能使用$,不能使用#(asc,desc). 二.SQL注入 注意: 如果使用${}进行传参,一定要是可以穷举的,并且要进行安全性验证(例如排序,只能传a…...

CentOS挂载:解锁文件系统的力量

目录 引言1 挂载简介2 挂载本地分区3 挂载网络共享文件系统4 使用CIFS挂载结论 引言 在CentOS(一种基于Linux的操作系统)上挂载文件系统是一项常见而重要的任务,无论是将新的磁盘驱动器添加到系统,还是挂载网络共享资源&#xff…...

修身养性 - 阿纳托利: 健身指导

欢迎来到我的力量建设培训计划。这是一个介绍性视频,我会对训练项目、技巧和计划进行解释。我每天都在练习英语,但还不够好,所以下面使用了自动翻译。带来不便请原谅。 Welcome to my power building training program. Its an introduction video where I explained about …...

pip anaconda 设置 国内镜像源

一、pip设置国内(清华)镜像源和升级pip 使用下面的命令直接使用清华镜像源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simplepython -m pip install --upgrade pip #备选 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云&am…...

三江城115m²3室2厅2卫,现代简约不单是居所更是对生活的向往。福州中宅装饰,福州装修

【前言】 简洁有力,静默无声。 以简约精致的方式,展现现代都市生活; 经典不因潮流褪色,不为悦人只为悦己。 项目信息 项目名称 | 三江城 设计地址 | 福建福州 项目面积 | 115㎡ 项目户型 | 3室2厅 设计风格 | 现代简约 全…...

Hangfire.Pro 3.0 Crack

Hangfire.Pro 有限的存储支持 Hangfire Pro 是一组扩展包,允许使用批处理创建复杂的后台作业工作流程,并提供对超快速Redis作为作业存储的支持 请注意,仅在使用Hangfire.SqlServer、Hangfire.Pro.Redis或Hangfire.InMemory包作为作业存储时才…...

axios的使用,cancelToken取消请求

get请求 // 为给定 ID 的 user 创建请求 axios.get("/user?ID12345").then(function (response) {console.log(response);}).catch(function (error) {console.log(error);}); // 上面的请求也可以这样做 axios.get("/user", {params: {ID: 12345,},}).t…...

Rockdb简介

背景 最近在使用flink的过程中,由于要存储的状态很大,所以使用到了rockdb作为flink的后端存储,本文就来简单看下rockdb的架构设计 Rockdb设计 Rockdb采用了LSM的结构,它和hbase很像,不过严格的说,基于LS…...

【MyBatis】写了 10 年的代码,我最怕写 MyBatis 这些配置,现在有详解了

在使用 mybatis 过程中,当手写 JavaBean和XML 写的越来越多的时候,就越来越容意出错。这种重复性的工作,我们当然不希望做那么多。 还好, mybatis 为我们提供了强大的代码生成--MybatisGenerator。 通过简单的配置,我们…...

全球地表水数据集JRC Global Surface Water Mapping Layers v1.4

简介: JRC Global Surface Water Mapping Layers产品,是利用1984至2020年获取的landsat5、landsat7和landsat8的卫星影像,生成分辨率为30米的一套全球地表水覆盖的地图集。用户可以在全球尺度上按地区回溯某个时间上地表水分的变化情况。产品…...

Spring过滤器和拦截器的区别

📑前言 本文主要Spring过滤器和拦截器的区别的问题,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句&#x…...

HIS医疗项目

文章目录 医疗项目简介HIS项目介绍HIS架构解析HIS业务流程图HIS项目架构图 HIS组件解析——服务支撑 内存设置为4G或以上部署NGINX服务部署web安装JDK部署Elasticsearch安装ik中文分词器 部署rabbitmq部署MySQL服务安装MySQL服务建库、授权用户导入数据 部署Redis测试Redis 部署…...

eclipse启动无法找到类(自定义监听器)

一.报错 二.排查 1.首先检查代码是否有问题 本人报错是找不到监听器,故检查监听器的代码和web.xml文件是否有问题 public class DoorListener implements ServletContextListener 监听器是否继承并实现ServletContextListener中的方法。 web.xml中: &…...

Ubuntu openssh-server 离线安装

经常用到ubunutu 20.04容器,但是没有ssh比较难调试代码,离线环境下安装方法: 安装以下三个软件包,点击openssh下载链接可下载: 1、openssh-client_8.2p1-4_amd64.deb 2、openssh-sftp-server_8.2p1-4_amd64.deb 3、…...

servlet页面以及控制台输出中文乱码

如图: servlet首页面: servlet映射页面: 以及控制台输出打印信息: 以上页面均出现中文乱码 下面依次解决: 1、首页面中文乱码 检查你的html或者jsp页面中meta字符集 如图设置成utf-8 然后重启一下tomcat 2、servl…...

《向量数据库指南》——TruLens + Milvus Cloud构建RAG深入了解性能

深入了解性能 索引类型 本例中,索引类型对查询速度、token 用量或评估没有明显影响。这可能是因为数据量较小的关系。索引类型对较大语料库可能更重要。 Embedding 模型 text-embedding-ada-002 在准确性(0.72,平均 0.60)和答案相关度(0.82,平均0.62)上优于 MiniLM Embeddin…...

vscode代码上传到gitlab

打开终端 1.1输入一下内容提交到本地仓库 PS D:\VueProject2\mall-admin-web> git add . PS D:\VueProject2\mall-admin-web> git commit -m “商品优化,屏蔽不要内容” 1.2提交到远程仓库 master应该被替换为 Gitee 仓库中默认的分支名称 PS D:\VueProje…...

自然滚动的终结:Scroll Reverser如何重构输入设备交互逻辑

自然滚动的终结:Scroll Reverser如何重构输入设备交互逻辑 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser 在追求无缝人机交互的今天,macOS系统中输入设备…...

神经网络实战之dsp实现神经网络vad-1

vad神经网络有很多不同的实现,这里的神经网络是基于pytorch实现的,网络结构如下: class MiniVAD(nn.Module):def __init__(self, n_fft512):super().__init__()self.input48 #输入B T 48# 融合层self.fusion nn.Sequential(nn.Linear(self.i…...

实战指南:深入Terraria源码的5个核心模块与架构解析

实战指南:深入Terraria源码的5个核心模块与架构解析 【免费下载链接】Terraria-Source-Code 项目地址: https://gitcode.com/gh_mirrors/te/Terraria-Source-Code 你是否曾好奇一款2D沙盒游戏如何实现复杂的物理系统、网络同步和游戏逻辑?Terrar…...

Crystals Kyber算法实战:5分钟搞定密钥封装机制(KEM)配置

Crystals Kyber算法实战:5分钟搞定密钥封装机制(KEM)配置 在当今数字安全领域,后量子密码学正从理论走向工程实践。作为NIST后量子密码标准化项目的优胜算法,Kyber以其高效的格基加密机制,正在重构密钥分发…...

Phi-4-Reasoning-Vision开源大模型实践:图文多模态输入格式与Phi-4模型要求对齐

Phi-4-Reasoning-Vision开源大模型实践:图文多模态输入格式与Phi-4模型要求对齐 1. 项目概述 Phi-4-Reasoning-Vision是一款基于微软Phi-4-reasoning-vision-15B多模态大模型开发的高性能推理工具,专为双卡RTX 4090环境优化。该工具严格遵循官方SYSTEM…...

黑苹果终极配置指南:使用Hackintool轻松搞定显卡驱动、音频和USB问题

黑苹果终极配置指南:使用Hackintool轻松搞定显卡驱动、音频和USB问题 【免费下载链接】Hackintool The Swiss army knife of vanilla Hackintoshing 项目地址: https://gitcode.com/gh_mirrors/ha/Hackintool 还在为黑苹果配置头疼吗?显卡驱动不工…...

OpenClaw备份方案:GLM-4.7-Flash自动化任务配置保存与恢复

OpenClaw备份方案:GLM-4.7-Flash自动化任务配置保存与恢复 1. 为什么需要备份OpenClaw配置 上周我的开发机突然遭遇硬盘故障,导致所有OpenClaw配置丢失。当时正在运行的三个自动化流程全部中断,包括每天凌晨自动执行的日报生成和每周五的代…...

企业必看:致远OA密码重置漏洞修复指南(附官方补丁下载与安装教程)

致远OA密码重置漏洞全面修复指南:从补丁部署到安全加固 1. 漏洞背景与影响范围 近期致远OA协同办公平台曝出的密码重置漏洞,已成为企业IT安全团队亟需应对的高危风险。该漏洞允许攻击者在仅获取用户名的情况下,通过构造特定HTTP请求绕过短信…...

探索CLIP-ViT-H-14:5大突破重新定义多模态AI应用

探索CLIP-ViT-H-14:5大突破重新定义多模态AI应用 【免费下载链接】CLIP-ViT-H-14-laion2B-s32B-b79K 项目地址: https://ai.gitcode.com/hf_mirrors/laion/CLIP-ViT-H-14-laion2B-s32B-b79K 你是否想过让计算机像人类一样同时理解图像和文字?CLI…...

vue-sonner:轻量级Vue通知组件的高效集成方案

vue-sonner:轻量级Vue通知组件的高效集成方案 【免费下载链接】vue-sonner 🔔 An opinionated toast component for Vue. 项目地址: https://gitcode.com/gh_mirrors/vu/vue-sonner 项目概述 vue-sonner是一个为Vue和Nuxt应用设计的轻量级通知组…...