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

Hive中Map和Reduce阶段的分工

在Hive查询执行过程中,Map和Reduce阶段有明确的分工,但实际情况要复杂一些。

基本分工原则

  1. ​Map阶段​​:

    • 主要职责是读取输入数据并进行初步处理
    • 输出键值对形式的数据
  2. ​Reduce阶段​​:

    • 接收Map阶段输出的键值对
    • 对相同键的值进行聚合/计算
    • 输出最终结果

实际执行中的复杂情况

1. Map阶段也可以进行计算

在Hive中,Map阶段并非只是简单输出键值对,它也可以进行部分计算:

  • ​Map端聚合(Map-side Aggregation)​​:

    • 当启用hive.map.aggr=true
    • Map任务会在本地先对相同键的值进行部分聚合
    • 例如对于SELECT city, COUNT(1) FROM tb GROUP BY city
      • Map任务会维护一个HashMap,对相同city的计数进行本地累加
      • 输出(city, partial_count)而非原始
http://www.xdnf.cn/news/95419.html

相关文章:

  • MySQL通用性能优化模板(MySQL General Performance Optimization Template)
  • MyBatis-Plus 使用 Wrapper 构建动态 SQL 有哪些优劣势?
  • 爱普生SG-8200CG可编程晶振成为工业自动化领域的理想选择
  • Tailwind CSS 实战:基于 Kooboo 构建个人博客页面
  • vue3中slot(插槽)的详细使用
  • JVM 生产环境问题定位与解决实战(七):实战篇——OSSClient泄漏引发的FullGC风暴
  • 事业单位体检心电图不合格类型有哪些
  • 视频监控从安装到优化的技术指南,视频汇聚系统EasyCVR智能安防系统构建之道
  • 如何使用 uv 构建 Python 包并本地安装
  • 配色之道:解码产品设计中的UI设计配色艺术
  • 卷积神经网络:视觉炼金术士的数学魔法
  • SQL进阶知识:四、索引优化
  • C# 使用Windows API实现键盘钩子的类
  • Java虚拟机面试题:JVM调优
  • 网页布局新视角:全局居中的魅力与应用
  • Jsoup、Selenium 和 Playwright 的含义、作用和区别
  • SpringBoot整合SSE,基于okhttp
  • Java面试:探索Spring Boot与微服务的深度挑战
  • 01 ubuntu中wps桌面快捷键无法使用
  • C++23 新特性:令声明顺序决定非静态类数据成员的布局 (P1847R4)
  • C++学习:六个月从基础到就业——STL算法(一) 基础与查找算法
  • JS通过GetCapabilities获取wms服务元数据信息并在SuperMap iClient3D for WebGL进行叠加显示
  • C++语言速成,语法及示例宝典汇总整理
  • 状态模式(State Pattern)详解
  • Hooks的使用限制及原因
  • 单例模式:确保唯一实例的设计模式
  • mall-cook 本地运行
  • 基于MTF的1D-2D-CNN-LSTM-Attention时序图像多模态融合的故障识别,适合研究学习(Matlab完整源码和数据),附模型研究报告
  • VUE Element-ui Message 消息提示组件自定义封装
  • Android Cordova 开发 - Cordova 解读初始化项目(index.html meta、Cordova.js、config.xml)