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

【大数据之Hive】二十五、HQL语法优化之小文件合并

1 优化说明

  小文件优化可以从两个方面解决,在Map端输入的小文件合并,在Reduce端输出的小文件合并。

1.1 Map端输入文件合并

  合并Map端输入的小文件是指将多个小文件分到同一个切片中,由一个Map Task处理,防止单个小文件启动一个Map Task,造成资源浪费。
相关参数:

--将多个小文件切片合成一个切片,由一个map task处理
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

1.2 Reduce输出文件合并

  合并Reduce端输出的小文件是指将多个小文件合并成大文件,减少HDFS小文件数量。
原理:
  根据计算任务输出文件的平均大小判断,若符合条件则单独启动一个额外的任务进行合并。
相关参数:

--开启合并map only任务输出的小文件,针对只有map的计算任务
set hive.merge.mapfiles=true;--开启合并map reduce任务输出的小文件
set hive.merge.mapredfiles=true;--合并后的文件大小
set hive.merge.size.per.task=256000000;--触发小文件合并任务的阈值,若某计算任务输出的文件平均大小低于该值,则触发合并
set hive.merge.smallfiles.avgsize=16000000;

2 案例

1、示例SQL语句

--计算各省份订单金额总和,下表为结果表
drop table if exists order_amount_by_province;
create table order_amount_by_province(provonce_id string comment '省份id',order_amount decimal(16,2) comment '订单金额'
)
location '/order_amount_by_province';insert overwrite table order_amount_by_province
selectprovince_id,sum(total_amount)
from order_detail
group by province_id;

2、优化前
  根据任务并行度,在默认情况下,该sql语句的Reduce端并行度为5,所以最终输出的文件个数也为5,且均为小文件。

3、优化思路
方案一、合理设置任务的Reduce端并行度
  将任务并行度设置为1,保证输出结果为1个文件。

set mapreduce.job.reduces=1;

方案二、启用HIve合并小文件进行优化
设置参数:

--开启合并map reduce任务输出的小文件
set hive.merge.mapredfiles=true;--合并后的文件大小
set hive.merge.size.per.task=256000000;--触发小文件合并任务的阈值,若某计算任务输出的文件平均大小低于该值,则触发合并
set hive.merge.smallfiles.avgsize=16000000;

相关文章:

【大数据之Hive】二十五、HQL语法优化之小文件合并

1 优化说明 小文件优化可以从两个方面解决,在Map端输入的小文件合并,在Reduce端输出的小文件合并。 1.1 Map端输入文件合并 合并Map端输入的小文件是指将多个小文件分到同一个切片中,由一个Map Task处理,防止单个小文件启动一个M…...

spring 连接oracle数据库报错{dataSource-1} init error解决,电脑用户名问题

错误描述: 连接oracle数据就报错,同样的代码其他电脑不会报错。 报错如下: {dataSource-1} init error java.sql.SQLRecoverableException: IO 错误: Undefined Error com.alibaba.druid.pool.DruidDataSource-1049[main]ERROR: {dataSourc…...

行业视野::人工智能与机器人

控制和机器人领域非常重要的quote:莫拉维克悖论(Moravecs paradox) It is comparatively easy to make computers exhibit adult level performance on intelligence tests or playing checkers,and difficult or impossible to give them th…...

【Python入门系列】第十七篇:Python大数据处理和分析

【Python入门系列】第十七篇:Python大数据处理和分析 文章目录 前言一、数据处理和分析步骤二、Python大数据处理和分析库三、Python大数据处理和分析应用1、数据清洗和转换2、数据分析和统计3、数据可视化4、机器学习模型训练和预测5、大规模数据处理和分布式计算6…...

spring.profiles的使用详解

本文来说下spring.profiles.active和spring.profiles.include的使用与区别 文章目录 业务场景spring.profiles.active属性启动时指定 spring.profiles.include属性配置方法配置位置配置区别 用示例来使用和区分测试一测试二测试三 编写程序查看激活的yml文件本文小结 业务场景 …...

Docker使用总结

Docker 1.什么是 Docker 官网的介绍是“Docker is the world’s leading software container platform.” 官方给Docker的定位是一个应用容器平台。 Docker 是一个容器平台的领导者 Docker 容器平台 Docker 应用容器平台 application项目 Mysql Redis MongoDB ElasticSeacrh …...

MySQL 数据库的备份与还原案例分享 2023.07.12

/** 素材一 备份与还原 **/ 1 创建数据库booksDB mysql> create database booksDB; Query OK, 1 row affected (0.00 sec)2.1 创建booksDB表 mysql> use booksDB Database changed mysql> CREATE TABLE books-> (-> bk_id INT NOT NULL PRIMARY KEY,-> …...

verilog实现数码管静态显示

文章目录 verilog实现数码管静态显示一、任务要求二、实验代码三、仿真代码四、仿真结果五、总结 verilog实现数码管静态显示 一、任务要求 六个数码管同时间隔0.5s显示0-f。要求:使用一个顶层模块,调用计时器模块和数码管静态显示模块。 二、实验代码…...

MySQL-DML-添加数据insert

目录 添加数据:insert insert语法 注意事项 修改数据:update update语法 注意事项: 删除数据:delete 删除语法 注意事项 总结 DML英文全称Data Manipulation Language(数据操作语言),…...

Prometheus、Grafana使用

文章目录 系统性能监控相关命令lscputopfreehtopdstatglancesiftopiptrafnethogs 监控软件Prometheus安装、使用将promethues做成服务监控其他机器 exportergrafana配置、使用密码忘记重置 系统性能监控 相关命令 lscpu lscpu 是一个 Linux 命令,用于显示关于 CP…...

UG\NX二次开发 使用throw重新抛出异常

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: 在异常处理代码中,可以使用 throw 关键字来抛出异常。如果希望在捕获异常后重新抛出该异常,可以使用类似以下的代码: 在 …...

为什么单片机可以直接烧录程序的原因是什么?

单片机(Microcontroller)可以直接烧录程序的原因主要有以下几点: 集成性:单片机是一种高度集成的芯片,内部包含了处理器核心(CPU)、存储器(如闪存、EEPROM、RAM等)、输入…...

使用 uiautomator2+pytest+allure 进行 Android 的 UI 自动化测试

目录 前言: 介绍 pytest uiautomator2 allure 环境搭建 pytest uiautomator2 allure pytest 插件 实例 初始化 driver fixture 机制 数据共享 测试类 参数化 指定顺序 运行指定级别 重试 hook 函数 断言 运行 运行某个文件夹下的用例 运行某…...

Android APP性能及专项测试

Android篇 1. 性能测试 Android性能测试分为两类: 1、一类为rom版本(系统)的性能测试 2、一类为应用app的性能测试Android的app性能测试包括的测试项比如: 1、资源消耗 2、内存泄露 3、电量功耗 4、耗时 5、网络流量消耗 6、移动…...

人工智能自然语言处理:N-gram和TF-IDF模型详解

人工智能自然语言处理:N-gram和TF-IDF模型详解 1.N-gram 模型 N-Gram 是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为 N 的滑动窗口操作,形成了长度是 N 的字节片段序列。 每一个字节片段称为 gram,对所…...

linux内核调试工具记录

Linux性能测试使用的工具在github网站可见,网址如下: slides: http://www.slideshare.net/brendangregg/linux-performance-analysis-new-tools-and-old-secrets video: https://www.usenix.org/conference/lisa14/conference-program/presentation/greg…...

XSS 攻击的检测和修复方法

XSS 攻击的检测和修复方法 XSS(Cross-Site Scripting)攻击是一种最为常见和危险的 Web 攻击,即攻击者通过在 Web 页面中注入恶意代码,使得用户在访问该页面时,恶意代码被执行,从而导致用户信息泄露、账户被…...

Spring后置处理器BeanFactoryPostProcessor与BeanPostProcessor源码解析

文章目录 一、简介1、BeanFactoryPostProcessor2、BeanPostProcessor 二、BeanFactoryPostProcessor 源码解析1、BeanDefinitionRegistryPostProcessor 接口实现类的处理流程2、BeanFactoryPostProcessor 接口实现类的处理流程3、总结 三、BeanPostProcessor 源码解析 一、简介…...

NXP i.MX 6ULL工业开发板硬件说明书( ARM Cortex-A7,主频792MHz)

前 言 本文档主要介绍TLIMX6U-EVM评估板硬件接口资源以及设计注意事项等内容。 创龙科技TLIMX6U-EVM是一款基于NXP i.MX 6ULL的ARM Cortex-A7高性能低功耗处理器设计的评估板,由核心板和评估底板组成。核心板经过专业的PCB Layout和高低温测试验证,稳…...

Ubuntu 放弃了战斗向微软投降

导读这几天看到 Ubuntu 放弃 Unity 和 Mir 开发,转向 Gnome 作为默认桌面环境的新闻,作为一个Linux十几年的老兵和Linux桌面的开发者,内心颇感良多。Ubuntu 做为全世界Linux界的桌面先驱者和创新者,突然宣布放弃自己多年开发的Uni…...

Llama-3.2V-11B-cot快速部署:单命令启动+自动加载双卡4090

Llama-3.2V-11B-cot快速部署:单命令启动自动加载双卡4090 1. 项目概述 Llama-3.2V-11B-cot是基于Meta Llama-3.2V-11B-cot多模态大模型开发的高性能视觉推理工具,专为双卡4090环境深度优化。这个工具解决了传统大模型部署中的几个关键痛点:…...

从“变速齿轮”到“创新引擎”:解码阿里“大中台、小前台”战略的演进与实战

1. 中台战略的起源与本质 第一次听说"大中台、小前台"这个概念时,我正坐在杭州一家咖啡馆里和几位阿里P8的技术专家聊天。他们用了一个特别形象的比喻:"现在的互联网公司就像一辆老式自行车,前台是拼命蹬车的双腿,…...

WordPress主题开发实战:从零开始搭建你的第一个自定义主题(2024最新版)

WordPress主题开发实战:从零开始搭建你的第一个自定义主题(2024最新版) 如果你正准备踏入WordPress主题开发的世界,这篇文章将带你从零开始构建一个完整的自定义主题。不同于简单的仿制或修改现有主题,我们将深入探讨如…...

NaViL-9B多模态模型5分钟快速部署:图文问答零基础入门教程

NaViL-9B多模态模型5分钟快速部署:图文问答零基础入门教程 1. 认识NaViL-9B多模态模型 NaViL-9B是上海人工智能实验室推出的原生多模态大语言模型,它不仅能像传统语言模型一样处理纯文本问答,还具备强大的图片理解能力。这意味着你可以上传…...

Simulink与Plecs联合仿真实现三相桥式电路能量双向流动

simulinkplecs联合仿真源件,三相桥式电路,采用母线电压外环与电流内环控制,可整流也可逆变并网,实现能量双向流动,采用SVPWM调制方式。 1.plecssimulink 2.SVPWM 3.双闭环 支持simulink2022以下版本,联系跟…...

OpenClaw自动化周报:Qwen3-32B镜像整合多平台数据

OpenClaw自动化周报:Qwen3-32B镜像整合多平台数据 1. 为什么需要自动化周报 每周五下午,我的日历总会准时弹出提醒:"撰写本周工作总结"。这个看似简单的任务,实际操作起来却异常繁琐:需要登录JIRA查看任务…...

Comsol异构电池力电热耦合模型:探索电池的多场奥秘

comsol异构电池力电热耦合模型 采用椭圆型电极颗粒模拟锂离子正负极的电极颗粒,还原真实电池的3D介观结构,耦合电化学场-热场-力学场,可模拟电流,浓度,温度,应力等多场结果在电池研究领域,深入理…...

MoveBase导航实战:Livox MID360与FAST-LIO+AMCL混合定位的调优与避障策略

1. Livox MID360雷达与FAST-LIO的实战配置 第一次用Livox MID360雷达时,我被它的非重复扫描模式惊艳到了——这种固态激光雷达能实现360无死角覆盖,特别适合狭小空间导航。但要让它在MoveBase系统中稳定工作,需要先解决几个关键配置问题。 雷…...

OpenClaw+Qwen3-VL:30B:学术论文图表解析助手

OpenClawQwen3-VL:30B:学术论文图表解析助手 1. 为什么需要论文图表解析助手 作为一名经常需要阅读大量文献的科研工作者,我深刻体会到处理论文图表的痛苦。传统的工作流程通常是:下载PDF论文→手动截图→用OCR工具识别→复制数据到Excel→…...

OpenClaw自动化测试:百川2-13B-4bits量化模型在重复任务中的稳定性

OpenClaw自动化测试:百川2-13B-4bits量化模型在重复任务中的稳定性 1. 测试背景与目标 最近在尝试用OpenClaw搭建一个本地自动化工作流时,发现一个关键问题:当AI需要反复执行相同任务时,模型响应的稳定性会直接影响自动化效果。…...