hadoop-mapreduce词频统计
一、Map Reduce主要阶段

二、词频统计示例
0.MapReduce 词频统计(Word Count)示例图

1. Input 阶段(输入阶段)
输入数据是一段文本,如下:
Hadoop is a big data framework.
Hadoop can store vast data.
Hadoop processes big data.
Hadoop can analyze vast data.
Hadoop is easy.
2. Split 阶段(数据分割阶段)
输入数据被切分为更小的部分,每个部分对应一行文本。
作用:将输入数据分配给不同的 Mapper 任务,实现并行处理。
Split 1: Hadoop is a big data framework.
Split 2: Hadoop can store vast data.
Split 3: Hadoop processes big data.
Split 4: Hadoop can analyze vast data.
Split 5: Hadoop is easy.
3. Mapper Phase(映射阶段)
每个 Mapper 任务读取一个输入块,应用用户定义的 Map 函数。
Map 函数会将输入文本解析为单词,并为每个单词输出一个键值对(Key-Value Pair),形式为 <单词, 1>。
例如:
- 输入:Hadoop is a big data framework.
- 输出:<Hadoop, 1>, <is, 1>, <a, 1>, <big, 1>, <data, 1>, <framework, 1>
作用:Map 阶段的任务是将原始数据转化为键值对,并提取有用信息。
Mapper 输出:Split 1: <Hadoop, 1>, <is, 1>, <a, 1>, <big, 1>, <data, 1>, <framework, 1>
Split 2: <Hadoop, 1>, <can, 1>, <store, 1>, <vast, 1>, <data, 1>
Split 3: <Hadoop, 1>, <processes, 1>, <big, 1>, <data, 1>
Split 4: <Hadoop, 1>, <can, 1>, <analyze, 1>, <vast, 1>, <data, 1>
Split 5: <Hadoop, 1>, <is, 1>, <easy, 1>
4. Shuffle and Sort 阶段(洗牌和排序阶段)
洗牌(Shuffle):
将 Mapper 阶段输出的键值对,根据键(单词)进行分组。
所有相同键的键值对被发送到同一个 Reducer 任务。
例如:来自不同 Mapper 的 <Hadoop, 1> 被收集到一起:<Hadoop, [1, 1, 1, 1, 1]>
排序(Sort):
对每个键值对按照键排序(升序)。
图中展示了 Hadoop、is、a 等单词被分组和排序。
作用:实现数据分布和排序,为 Reduce 阶段的处理做好准备。
5. Reduce Phase(归约阶段)
Reduce 函数对每个键及其关联的值列表进行聚合计算。
示例:
- 输入:<Hadoop, [1, 1, 1, 1, 1]>
- Reduce 计算:对列表中的值进行累加:1 + 1 + 1 + 1 + 1 = 5
- 输出:<Hadoop, 5>
其他 Reduce 结果:
- <is, 2>
- <a, 1>
- <big, 2>
- <data, 4>
- <framework, 1>
- <easy, 1>
作用:Reduce 阶段将分组后的数据进行汇总、聚合、统计,生成最终结果。
6. output阶段(输出阶段)
a, 1
analyze, 1
big, 2
can, 2
data, 4
easy, 1
framework, 1
Hadoop, 5
is, 2
processes, 1
store, 1
vast, 2
三、过程总结

参考资料
https://www.youtube.com/watch?v=aReuLtY0YMI
相关文章:
hadoop-mapreduce词频统计
一、Map Reduce主要阶段 二、词频统计示例 0.MapReduce 词频统计(Word Count)示例图 1. Input 阶段(输入阶段) 输入数据是一段文本,如下: Hadoop is a big data framework. Hadoop can store vast data. Hadoop processes big …...
精心修炼Java并发编程(JUC)-volatile与synchronized关键字
volatile volatile 是 JVM 提供的 最轻量级的同步机制,中文意思是不稳定的,易变的,用 volatile 修饰变量是为了保证变量在多线程中的可见性,它表达的含义是:告诉编译器,对这个变量的读写,需要基…...
【ROS2】ROS2 与 ROS1 编码方式对比(Python实现)
目录 一、初始化和关闭节点二、发布者三、订阅者四、服务端五、客户端六、参数管理七、日志记录八、生命周期管理 ROS2 在 Python 编程中引入了一些新的概念和 API,这些变化使得代码更加模块化和易于维护。特别是 rclpy 库提供了更丰富的功能和更好的错误处理机制&a…...
ElasticSearch的下载和基本使用(通过apifox)
1.概述 一个开源的高扩展的分布式全文检索引擎,近乎实时的存储,检索数据 2.安装路径 Elasticsearch 7.8.0 | Elastic 安装后启动elasticsearch-7.8.0\bin里的elasticsearch.bat文件, 启动后就可以访问本地的es库http://localhost:9200/ …...
城市轨道交通运营控制指挥中心设计方案
为某城市轨道交通运营控制指挥中心(OCC)的设计提供方案时,我们需要考虑到多个方面的需求,包括系统架构、设备选择、功能实现、数据流与监控、通信管理等。以下是一个综合性的设计方案,涉及系统硬件和软件的选择、布局规划、安全性等方面,以确保指挥中心的高效运作、实时监…...
多目标优化算法:多目标河马优化算法(MOHOA)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6,提供完整MATLAB代码
一、河马优化算法 河马优化算法(Hippopotamus optimization algorithm,HO)由Amiri等人于2024年提出的一种模拟自然界中河马觅食行为的新型群体智能优化算法。该算法由Mohammad Hussein Amiri等人于2024年2月发表在Nature旗下子刊《Scientifi…...
线程与进程的个人理解
进程(Process): 一个程序在执行时,操作系统为其分配的资源(如内存、CPU 时间等)构成了一个进程。每个进程都有自己的独立的地址空间、堆栈和局部变量,它们之间不共享内存(除非通过特…...
vscode的项目给gitlab上传
目录 一.创建gitlab帐号 二.在gitlab创建项目仓库 三.Windows电脑安装Git 四.vscode项目git上传 一.创建gitlab帐号 二.在gitlab创建项目仓库 图来自:Git-Gitlab中如何创建项目、创建Repository、以及如何删除项目_gitlab新建项目-CSDN博客) 三.Windows电脑安…...
企业微信定位打卡
废话少说:定位修改软件链接奉上 一、定位打卡原理 GPS定位:企业微信可以利用手机的GPS功能进行定位,这是一种基于卫星的定位技术,能够提供相对精确的位置信息,通常精确度在20米以内。这种方式耗电较大,且在…...
libaom 源码分析:码率控制介绍
码率控制 命令行码率控制选项:可以看到码率控制包括丢帧、resize、超分、码控模式、目标码率、目标上限下限(类似 x264、x265 中的 VBV)、码控偏置、GOP 码率等。Rate Control Options:--drop-frame=<arg> Temporal resampling threshold (buf %)--resize-mo…...
RK3568平台开发系列讲解(DMA篇)DMA engine使用
🚀返回专栏总目录 文章目录 一、申请DMA channel二、配置DMA channel的参数三、获取传输描述(tx descriptor)四、启动传输沉淀、分享、成长,让自己和他人都能有所收获!😄 📢DMA子系统下有一个帮助测试的测试驱动(drivers/dma/dmatest.c), 从这个测试驱动入手我们了解…...
C++中的函数对象
C 中函数对象的定义和特点 定义:函数对象(Function Object)也叫仿函数(Functor),是一个类,这个类重载了函数调用运算符()。当创建这个类的对象后,可以像使用函数一样使用这个对象&am…...
Linux指标之平均负载(The Average load of Linux Metrics)
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…...
盛最多水的容器
本节将数组与坐标轴共同组成一个容器,通过改变容器的两个端点使容器装的水最多,容器两个端点不断移动可以通过左右指针算法解决. 问题描述: 给定两个非负整数k1,k2...km每个数代表坐标中的一个点(i,ki).在坐标内绘制m条垂线,垂直线i的两个端点分别为(i,k1)和(i,0)找出其中的两…...
光伏功率预测!Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型时序预测
目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型多变量时序光伏功率预测 (Matlab2023b 多输入单输出) 1.程序已经调试好,替换数据集后,仅运行一个main即可运行,数据格式…...
java全栈day10--后端Web基础(基础知识)
引言:只要能通过浏览器访问的网站全是B/S架构,其中最常用的服务器就是Tomcat 在浏览器与服务器交互的时候采用的协议是HTTP协议 一、Tomcat服务器 1.1介绍 官网地址:Apache Tomcat - Welcome! 1.2基本使用(网上有安装教程,建议…...
使用爬虫时,如何确保数据的准确性?
在数字化时代,数据的准确性对于决策和分析至关重要。本文将探讨如何在使用Python爬虫时确保数据的准确性,并提供代码示例。 1. 数据清洗 数据清洗是确保数据准确性的首要步骤。在爬取数据后,需要对数据进行清洗,去除重复、无效和…...
Burp入门(4)-扫描功能介绍
声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址:burp功能介绍(1)_哔哩哔哩_bilibili 本文介绍burp的主动扫描和被动扫描功能。 一、主动扫描 工作原理: 主动…...
Tourtally:颠覆传统的AI智能旅行规划革命
# Tourtally:颠覆传统的AI智能旅行规划革命 在快速变化的旅行科技世界里,一个划时代的平台正在重新定义我们探索世界的方式。让我们一起认识 Tourtally,这个由人工智能驱动的旅行规划助手,正在彻底改变旅行体验。 ## 旅行规划的…...
chrome允许http网站打开摄像头和麦克风
第一步 chrome://flags/#unsafely-treat-insecure-origin-as-secure 第二步 填入网址,点击启用 第三步 重启 Chrome:设置完成后,点击页面底部的 “Relaunch” 按钮,重新启动 Chrome 浏览器,使更改生效。...
多目标粒子群混合储能优化配置【附算法】
✨ 长期致力于混合储能、优化配置、风光互补微电网、多目标粒子群算法、CRITIC-TOPSIS研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)风光-负荷多场景…...
从五管OTA到两级运放:在Cadence IC617中如何规划你的设计指标与晶体管尺寸(gm/id方法详解)
从五管OTA到两级运放:gm/id设计方法在Cadence IC617中的策略性应用 在模拟集成电路设计中,运算放大器的设计始终是工程师面临的核心挑战之一。特别是当设计需求从简单的五管OTA扩展到更复杂的两级运放时,设计者需要处理的不仅仅是晶体管尺寸的…...
小熊派gd32f303实战指南(9)— 硬件I2C驱动AT24C02 EEPROM从零到一
1. 硬件I2C与AT24C02基础认知 第一次接触硬件I2C时,我也被那些专业术语搞得一头雾水。简单来说,I2C就像两个人用摩斯密码交流——只需要两根线(SDA数据线和SCL时钟线),就能让主设备(GD32F303)和…...
终极指南:如何一键下载国家智慧教育平台电子课本PDF
终极指南:如何一键下载国家智慧教育平台电子课本PDF 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目地址: …...
基于ChatGPT与Telethon的Telegram频道智能评论机器人开发指南
1. 项目概述与核心价值 如果你在运营Telegram频道,或者需要管理多个社群,肯定遇到过这样的场景:频道里每天都有大量新消息,你想保持活跃度、引导讨论,但手动回复每一条消息不仅耗时耗力,还很难保证回复的质…...
AI伦理实战:从偏见、可解释性到隐私保护的工程化解决方案
1. 项目概述:当AI从实验室走向现实,我们面临什么?几年前,我还在实验室里为一个模型的准确率提升0.5个百分点而兴奋不已。那时,“伦理”这个词,对我们这些埋头调参的工程师来说,似乎还停留在哲学…...
PHP反序列化漏洞实战:从CTFshow F5杯‘eazy-unserialize’两道题,到文件包含与协议利用的完整避坑指南
PHP反序列化漏洞实战:从CTF题目到真实漏洞利用的深度解析 在CTF竞赛中,PHP反序列化漏洞一直是Web安全方向的热门考点。这类漏洞不仅考验选手对PHP语言特性的理解,更要求具备将多个知识点串联运用的能力。本文将以一道典型CTF题目为例…...
实战指南:5分钟掌握ImageToSTL图片转3D模型技术
实战指南:5分钟掌握ImageToSTL图片转3D模型技术 【免费下载链接】ImageToSTL This tool allows you to easily convert any image into a 3D print-ready STL model. The surface of the model will display the image when illuminated from the left side. 项目…...
NomNom终极指南:3个技巧让你轻松掌控《无人深空》存档
NomNom终极指南:3个技巧让你轻松掌控《无人深空》存档 【免费下载链接】NomNom NomNom is the most complete savegame editor for NMS but also shows additional information around the data youre about to change. You can also easily look up each item indi…...
大模型上手指南:从跑通到解剖,一步步深入核心机制!
本文提供了一套从零开始、由浅入深的实践路径,指导读者如何系统性地分析和学习大模型。首先通过配置环境、加载本地模型并成功进行推理,让读者直观感受模型运行。接着,结合运行结果回顾 Transformer、Tokenization 等核心概念,并探…...
