Hadoop3:MapReduce中的Partition原理及自定义Partition

ops/2024/9/26 3:20:24/

一、默认Partition分区配置

以WC案例来进行验证。

1、设置setNumReduceTasks

修改的代码
这行代码,确定了reduceTask的数量,也确定了分区逻辑
在这里插入图片描述

在mapper文件中,打上断点
在这里插入图片描述
计算分区的代码
这里会对每一个kv进行计算,然后,分配分区
在这里插入图片描述

2、不设置setNumReduceTasks

如果不设置这个参数
默认返回-1,则生成的分区文件就1个
在这里插入图片描述

3、总结

默认分区是根据key的hashCode对ReduceTasks个数取模得到的。用户没法控制哪个key存储到哪个分区。

那么,显然无法控制key的分区,是不能满足需求的!
所以,我们需要进行自定义Partition分区计算的逻辑。

二、自定义Partition分区

1、编写步骤

在这里插入图片描述

2、需求分析


http://www.ppmy.cn/ops/50528.html

相关文章

Java面试八股之myBatis的优缺点

myBatis的优缺点 优点: 灵活性高: MyBatis允许直接编写原生SQL语句,这意味着你可以针对特定的数据库特性进行优化,处理复杂的查询逻辑,从而更好地满足业务需求。 易于上手: 相比Hibernate等其他ORM工具&…

CVE-2023-50563(sql延时注入)

简介 SEMCMS是一套支持多种语言的外贸网站内容管理系统(CMS)。SEMCMS v4.8版本存在SQLI,该漏洞源于SEMCMS_Function.php 中的 AID 参数包含 SQL 注入 过程 打开靶场 目录扫描,发现安装install目录,进入,…

jumpserver堡垒机集群搭建

1、环境 操作系统:龙蜥os 7.9 firewall-cmd --permanent --zonepublic --remove-servicessh firewall-cmd --permanent --zonepublic --add-rich-rulerule familyipv4 source address10.90.101.1 port port22 protocoltcp accept firewall-cmd --reload2、安装NFS…

Cargo 教程

Cargo 教程 1. 引言 Cargo 是 Rust 编程语言的包管理器和构建工具。它为 Rust 项目提供了依赖管理、编译和打包等功能。本教程将详细介绍 Cargo 的基本用法,帮助您快速上手 Rust 项目开发。 2. 安装 Cargo 在开始使用 Cargo 之前,您需要确保已经安装了 Rust 编程语言。Ru…

RPC(远程过程调用):技术原理、应用场景与发展趋势

摘要: RPC(Remote Procedure Call)是一种通信协议,用于实现跨网络的进程间通信。它提供了一种简单高效的方式,使得分布式系统中的不同组件能够像调用本地函数一样调用远程函数。本篇博客将介绍RPC的基本概念&#xff0…

“Photoshop AI插件:StartAI的全面使用攻略

随着人工智能技术的飞速发展,Photoshop作为设计师们不可或缺的工具,也在不断地融入AI技术,以提升设计效率和效果。在2024年,PSAI插件StartAI因其强大的功能和易用性,成为了Photoshop用户的得力帮手。下面来给大家详细介…

【Hive】new HiveConf()时加载的配置浅析

简单看下源码: org.apache.hadoop.hive.conf.HiveConf HiveConf中有静态代码块,内容就是调用findConfigFile方法,尝试读取hive-default.xml,hive-site.xml,hivemetastore-site.xml,hiveserver2-site.xml。…

ant design vue table表格合并后每个单元格加点击事件并获取每个单元格的值

用 event.target.closest(.ant-table-row-cell-break-word).textContent 获取 {title: "ECP",dataIndex: "ecp",scopedSlots: { customRender: "ecp" },customRender(_, row) {return {child: row.ecp,attrs: {rowSpan: row.ecpRowSpan}}},custo…