MapReduce

MapReduce读取Mysql统计分析再将结果写入mysql中供动态可视化 MapReduce读取Mysql统计分析再将结果写入mysql中供动态可视化 1.前言 最近做一个小项目,其中一个功能是,使用hadoop的MapReduce程序来读取Mysql数据库的某表数据,然后MR进行类别统计,然后再将统计结果写入mysql的另一张表中,最后使用jsp页面调用Echarts读取数据库来动态可视化结果。 先上一张效果图: 本篇先介绍MapReduce读取Mysql统计分析再... 阅读详情

所需的组件

HDFS 分布式存储系统

MapReduce 分布式计算系统

YARN hadoop 的资源调度系统

Common 以上三大组件的底层支撑组件,提供基础工具包和 RPC 框架等

mapreduce功能

Mapper负责“分”
分解计算任务,规模大大缩小;
“计算向数据靠近” ;
这些小任务可以并行计算。

Reducer负责“汇总” map阶段的结果
~~

不同函数的功能

~~
一、Combiner函数
本地化的reducer
二、Partitioner函数
决定着Map节点的输出将被分区到哪个Reduce节点
三、什么是shuffle
怎样把map task的输出结果有效地传送到reduce端?
map输出之前,在内存里经过sort和combiner,再将所有的输出集合到partitioner进行划分到不同的reducer,在每个分区(partition)中,再进行内存中排序,再运行combiner,最后输出到HDFS。

Map处理
public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable>
Reduce处理
public class WordCountReducer extends Reducer <Text, IntWritable, Text, IntWritable>
Job配置
public class WordCountDriver
//关联使用的Mapper类
job.setMapperClass(WordCountMapper.class);
//关联使用的Reducer类
job.setReducerClass(WordCountReducer.class);

WordCountMapper类

public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable>{
//对数据进行打散
protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
//输入数据 hello world love work
String line = value.toString();
//对数据切分
String[] words=line.split(" ");
//写出<hello, 1>
for(String w:words) {
//写出reducer端
context.write(new Text(w), new IntWritable(1));
}}}

WordCountReducer类

public class WordCountReducer extends Reducer <Text, IntWritable, Text, IntWritable>{
protected void reduce(Text Key, Iterable values, Context context) throws IOException, InterruptedException {
//记录出现的次数
int sum=0;
//累加求和输出
for(IntWritable v:values) {
sum +=v.get();
}
context.write(Key, new IntWritable(sum));
}
}

WordCountDriver类

public class WordCountDriver {
public static void main(String[] args) throws IllegalArgumentException, IOException, ClassNotFoundException, InterruptedException {
// 设置root权限
System.setProperty(“HADOOP_USER_NAME”, “root”);
//创建job任务
Configuration conf=new Configuration();
Job job=Job.getInstance(conf);
//指定jar包位置
job.setJarByClass(WordCountDriver.class);
//关联使用的Mapper类
job.setMapperClass(WordCountMapper.class);
//关联使用的Reducer类
job.setReducerClass(WordCountReducer.class);
//设置Mapper阶段输出的数据类型
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(IntWritable.class);
//设置Reducer阶段输出的数据类型
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
//设置数据输入路径和文件名
FileInputFormat.setInputPaths(job, new Path(“c:\in\aa.txt”));
//设置数据输出路径
FileOutputFormat.setOutputPath(job, new Path(“c:\out”));
//提交任务
Boolean rs=job.waitForCompletion(true);
//退出
System.exit(rs?0:1);
}
}

mapreduce分布式运算框架详解 (MAPREDUCE详解) MapReduce快速入门 如何理解map、reduce计算模型 Mapreudce程序运行演示 Mapreduce编程规范及示例编写 Mapreduce程序运行模式及debug方法 MapReduce高级特性 Mapreduce程序的核心机制 MapReduce的序列化框架 MapReduce的排序实现 MapReduce的分区机制及自定义 Mapreduce的数据压... 阅读详情

相关推荐

MapReduce总结

MapReduce是一种可用于数据处理的编程模型。MapReduce程序本质上是并行运行的,优势在于处理大规模数据集。本文介绍了Hadoop MapReduce的架构,并结合具体例子介绍MapReduce的工作过程,以更深入的了解MapReduce。

Bob Liu的程序人生 2334

基于hadoop的电商销售预测分析系统HDFS+MapReduce+springboot或springcloud+Echarts

基于hadoop的电商销售预测分析系统

集美大bug的博客 3917

Visual Studio 2015 插件开发 从入门到放弃(一)

必需知识:C#和Visual Studio (1)安装 Visual Studio 2015 的时候选择 Visual Studio 扩展性工具(Visual Studio Extensibility Tools)。对于已经安装好 Visual Studio 2015 的小伙伴,可以找VS2015的安装包,或者在程序与功能中找VS2015双击,在VS2015界面中选择 修改,再选择

AncientPeople的博客 2万+

Mapreduce数据分析实例

数据包 百度网盘 链接:https://pan.baidu.com/s/1v9M3jNdT4vwsqup9N0mGOA 提取码:hs9c 复制这段内容后打开百度网盘手机App,操作更方便哦 1、 数据清洗说明: (1) 第一列是时间; (2) 第二列是卖出方; (3) 第三列是买入方; (4) 第四列是票的数量; (5) 第...

weixin_30877181的博客 1851

Golang中使用Qt库(therecipe/qt)+QtDesigner + Goland (一) 环境搭建

搭建的目的只是刚好看到有这么一个模块, 还有给使用Go的人需要用到调试界面的时候用一下,真正开发界面并不建议用,没必要, 还有缺点就是在windows平台下编译偏慢, 还有其他一些UI纯Go开发的UI -

听我一言的博客 1万+

YOLOv5+Astra Pro Plus深度相机:手把手教你实现实时目标检测(附ROS配置技巧)

本文详细介绍了如何将YOLOv5目标检测算法与Astra Pro Plus深度相机结合,构建实时目标检测系统。内容涵盖从硬件选型、环境搭建、ROS配置到YOLOv5部署与深度信息融合的完整流程,并分享了性能优化、避障算法等实战技巧,帮助开发者在机器人视觉等场景中快速实现智能感知应用。

weixin_28292761的博客 389

基于hadoop和echarts的教育大数据可视化系统 毕设完整的代码

基于hadoop和echarts的教育大数据可视化系统 毕设完整的代码

机器学习深度学习业余选手 2189

centos7搭建LNMP环境-编译安装&yum安装-超详细

文章目录1. 首先了解编译安装和yum安装的区别。2. yum安装准备工作---切换阿里云yum源3. 编译安装lnmp4.yum安装lnmp5. lnmp一键安装6. 一些报错7. 笔记8. 参考文章 1. 首先了解编译安装和yum安装的区别。 windows下安装centos虚拟机,之前写过。传送门~~ 编译安装: 可以按需安装,想安在哪个目录下就安在哪个目录下。 可以设定参数 可安装自己想要的版本 yum安装: 安装的方便快捷 不需要考虑包的依赖 可以直接使用service nginx st

最美不过下雨天 9349

基于hadoop和echarts的教育大数据可视化系统 毕设完整的代码+数据集

基于hadoop和echarts的教育大数据可视化系统 毕设完整的代码+数据集

3835

spark 适配达梦数据库

spark 适配达梦数据库 版本 spark3.0.0 scala2.12.10 DM Database Server 64 V8 步骤一: 引驱动包: SBT方式: "com.dameng" % "Dm8JdbcDriver18" % "8.1.0.157", maven方式: <dependency> <groupId>com.dameng</groupId> <artifactId>Dm8JdbcDriver18</artifac

_@Eva@_的博客 2091

从零搭建 AI 运维 Agent:告警自动诊断 + 修复的完整技术方案

适合读者:管理 5-50 台服务器的运维/SRE 工程师、技术负责人 技术栈:FastAPI + React + PostgreSQL + Redis + DeepSeek 关键词:AI运维、AIOps、自动化运维、智能告警、告警修复、Runbook自动化、DevOps、SRE、DeepSeek运维

weixin_38359457的博客 1640

MAPREDUCE详解

1. MAPREDUCE原理篇(1) Mapreduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架; Mapreduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上; 1.1 为什么要MAPREDUCE (1)海量数据在单机上处理因为硬件资源限制,无法胜任 (2)而一旦将单机版程序扩展到集群来分布式运行,将极大增加程序的复杂度和开发难度 (3)引入mapreduce框架后,开发人员

woaini886353的博客 1万+

Gemini 3.1 Flash本地部署实操:Ollama+Open WebUI零门槛运行指南

大型语言模型(LLM)本地运行是指将模型权重下载至本地设备,通过推理引擎完成离线推理的过程;其核心原理依赖量化压缩(如GGUF格式)与轻量级运行时(如Ollama)实现CPU/GPU高效加载;技术价值在于低延迟响应、数据隐私可控及免网络依赖;典型应用场景包括办公提效(邮件/周报生成)、学生学习辅助、产品原型验证等边缘AI任务;本文聚焦Gemini 3.1 Flash这一面向消费级硬件优化的轻量模型变体,结合Ollama模型管理与Open WebUI图形界面,提供从环境准备、模型拉取到流式对话的完整新手实操路

weixin_32238157的博客 494

mapreduce的工作原理

虽然新框架(如 Spark)在性能上更优,但 MapReduce 仍是 Hadoop 生态的核心组件,理解其原理对学习大数据技术至关重要。的思想,将大数据任务分解为多个小任务,并行处理后再合并结果。如果某个 Task 执行过慢,集群会启动相同任务的备份,取最先完成的结果。:在 Reduce 阶段前,数据按键排序,便于归约处理。在 Map 阶段后,先对本地数据进行聚合,减少网络传输。:处理输入数据,生成键值对(Key-Value)。:合并 Map 阶段的输出,生成最终结果。读取输入分片,逐行处理数据,生成。

2301_81748087的博客 1738

【ANSYS Workbench仿真】命令流:压力渗透pressure penetration

对与流体接触的part添加边界压力,使流体压力渗透点的接触应力与流体压力相等,以便得到真实的变形结果,就需要用到“pressure penetration”。 但是在ansys中,只能通过ADPL的形式添加,即在workbench中添加命令流的形式。此文主要介绍了**压力渗透的添加要点**和**命令流使用说明**。

路边小M's Blog 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

MapReduce算法步骤

计算步骤 : 第1步:InputFormat InputFormat到 hdfs 上 读取数据将 数据 传给Split 第2步:Split Split 将数据 进行 逻辑切分, 将数据 传给RR 第3步:RR RR: 将传入的 数据 转换成 一行一行 的数据,输出行首字母偏移量和 偏移量对应的数据 将数据 传给MAP (偏移量:每个字符移动到当前文档的...

最慢的步伐不是跬步,而是徘徊;最快的脚步不是冲刺,而是坚持 8560

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

MapReduce中加强内容

课程大纲(MAPREDUCE详解) MapReduce快速入门 如何理解map、reduce计算模型 Mapreudce程序运行演示 Mapreduce编程规范及示例编写 Mapreduce程序运行模式及debug方法 MapReduce高级特性 Mapreduce程序的核心机制

qq_35866738的博客 1696

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【Hadoop】MapReduce详解

MapReduce详解MapReduce介绍MapReduce的基本编程模型MapReduce的计算过程1. Map阶段可以概括为5个步骤:2. Reduce节点也可以分为5个步骤:设置ReduceTask并行度(个数)关于分片(Split)关于ShuffleMap端的shuffleReduce端的ShuffleShuffle流程详解补充问题:MapReduce分区相关问题理解1.Partition的原理和作用2.Partition的使用3.分组的概念和使用分组排序的步骤4.Combiner的使用概念实现步

小哲的博客 9447

HADOOP-MapReduce简介

MapReduce是什么?MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。它极大的方便编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。它的实现是map函数和Reduce函数组成。这种编程模型在很长时间以前就出现了,但在以前这个编程模型不是非常火热。当GOOGLE将几篇关于MapReduce的文章发布出来之后,这个编程模型变得异常火爆,Hadoop的

Q 9902

Hadoop之MapReduce总结

第1章 MapReduce概述 1.1 MapReduce定义 1.2 MapReduce优缺点 1.2.1 优点 1.2.2 缺点 MapReduce核心思想 MapReduce核心编程思想,如下图 1)分布式的运算程序往往需要分成至少2个阶段。 2)第一个阶段的MapTask并发实例,完全并行运行,互不相干。 3)第二个阶段的ReduceTask并发实例互不相干,但是他们的数据依赖...

Li_Jian_Hui_的博客 7810

mapreduce实践篇

mapreduce实践篇MAPREDUCE实例编写及编码规范编程规范 用户编写的程序分成三个部分:Mapper,Reducer,Driver(提交 运行mr程序的客户端) Mapper的输入数据是KV对的形式(KV类型可以自定义) Mapper的输出数据是KV对的形式(KV的类型可自定义) Mapper中的业务逻辑写在map()方法中 map()方法(maptask进程)对每一个一个简单的Mapre

A__loser的博客 1489

MapReduce完整流程

上一篇文章介绍了MapReduce编程模型 这次我们介绍MapReduce完整流程 Map阶段其实主要就是将输入的文件切割成一个个的(K,V)对,主要是******maptask工作机制****** (1)Read阶段:MapTask通过用户编写的RecordReader,从输入InputSplit中解析出一个个key/value。 (2)Map阶段:该节点主要是将解析出的key/value交给用户编写map()函数处理,并产生一系列新的key/value。 (3)Collect收集阶段:在用户编写map

莲芸轩的书房 6564

MapReduce的shuffle机制

MapReduce原理篇 1.1 MapReduce的shuffle机制 1.1.1 概述:  mapreduce中,map阶段处理的数据如何传递给reduce阶段,是mapreduce框架中最关键的一个流程,这个流程就叫shuffle;  shuffle: 洗牌、发牌——(核心机制:数据分区,排序,缓存);  具体来说:就是将maptask输出的处理结果数据,分发给reducetask,并在分发的过程中,对数据按key进行了分区和排序; 1.1.2 主要流程: Shuffle缓存流程: shu.

eyexin2018的博客 2119

MapReduce和yarn的联系

MapReduce和yarn 1.Mapreduce是什么? Mapreduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架; Mapreduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上; inputFormat:MapReduce框架使用InputFormat模块做Map前的预处...

Alano1994的博客 3291

MapReduce编程

一、MapReduce编程规范 MapReduce的开发一共又八个步骤,其中Map阶段分为2个步骤,Shuffle阶段4个步骤,Reduce阶段分为2个步骤。 1.1 步骤流程 Map阶段2个步骤 设置InputFormat类,将数据切分为key-value(k1和v1)对,输入到第二步; 自定义Map逻辑,将第一步的结果转换为另外的Key-Value(k2和v2)对,输出结果。 Shuffle阶段的4个步骤 对输出的Key-Value进行分区; 对不同分区的数据按照相同的Key排序; (可选)对

HeiSeXingYe的博客 3932
上一篇: Spark
下一篇: Flume的安装和实际使用
javaeee1
博客等级 码龄9年 1粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值