第十六期:简单的介绍一下大数据中最重要的MapReduce

MapReduce是分布式运行的,由两个阶段组成:Map和Reduce,Map阶段是一个独立的程序,有很多个节点同时运行,每个节点处理一部分数据。

 

简单的介绍一下大数据中最重要的MapReduce
MapReduce执行流程图

概述

MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题。

MapReduce是分布式运行的,由两个阶段组成:Map和Reduce,Map阶段是一个独立的程序,有很多个节点同时运行,每个节点处理一部分数据。

Reduce阶段是一个独立的程序,有很多个节点同时运行,每个节点处理一部分数据。

使用

MapReduce框架都有默认实现,用户只需要覆盖map()和reduce()两个函数,即可实现分布式计算,非常简单。

这两个函数的形参和返回值都是,使用的时候一定要注意构造。

简单的介绍一下大数据中最重要的MapReduce

执行流程(此处举例说明)

  1. 一个文本(在HDFS上面保存,两个block)中每一个单词的出现的次数: 
  2.     hello you hello marry 
  3.     hello me really 
  4.             ----->block-1 
  5.              
  6.     hello kate ready 
  7.     xiao wang hello tomcat 
  8.             ----->block-2 

1.获取每一个block块中的文本,遍历所有,回去其中的一行str

因为要统计的是每一个单词i的次数,所以还需要直到文本中有哪些单词,可以根据字符串的特点,使用split()进行切割。

  1. String[] words=str.split(""); 

根据要求,需将每一个单词i转换为的形式,k为单词本身,v为单词出现的次数。

2.因为mr的计算是分布式的 ,每一个map(称之为一个mapper task)计算其中的一个block块数据。

  1. map阶段: 
  2.     输入<K1,V1> 
  3.         k1,偏移量,v1,当前行文本内容 
  4.         map()函数操作 
  5.     输出<K2,V2> 
  6.         k2,具体单词,v2,单词对应的统计项,比如次数 
  7.     输出<K2,V2> 
  8. shuffle阶段 
  9. 研究后发现,如果按照<key,1>这种方式向reduce输出数据的时候,会有 
  10. 大量的冗余数据。 
  11. 比如map阶段之后有5个hello,则输出<hello,1>,<hello,1>,<hello,1>, 
  12. <hello,1>,<hello,1>5次,实际上会对网络造成一定的压力,能不能对 
  13. 这5个<hello,1>进行一个进入reduce之前的本地组合?比如成为 
  14. <hello,5>或者<hello,[1,1,1,1,1]>. 
  15. 这个过程成为shuffle,洗牌重组阶段,达到上述的结果,称之为规约。 
  16. >>>shuffle阶段,也就是对map的输出进行重新洗牌: 
  17. 分区、分组、排序 
  18. <K2,V2>...===><K2,V2s> 
  19. reduce阶段 
  20. 接收map的输出结果<key,values> 
  21. 对这个结果进行汇总统计,针对values,进行简单的累加,计算得出key 
  22. 对应的次数 
  23. reduce针对一个key调用一次reduce()函数 
  24. =====>reduce 阶段 
  25. 输入<K2,V2> 
  26.     K2,就是map的输出的K2,V2s是map经过shuffle之后的结果集 
  27.     reduce()函数操作 
  28. 转化为<K3,V3>   

经过上述操作之后,系统会将计算结果输出给用户,一般会先存储(落地)到hdfs,然后反馈给用户。

到此为止,MapReduce执行完毕,接下来就可以进行大数据的其他一系列操作了。


阅读目录(置顶)(长期更新计算机领域知识)https://blog.csdn.net/weixin_43392489/article/details/102380691

阅读目录(置顶)(长期更新计算机领域知识)https://blog.csdn.net/weixin_43392489/article/details/102380882

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424978.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【perl】simpleHTTP

【perl】simpleHTTP 类似Python SimpleHTTPServer #!/usr/bin/perl # https://metacpan.org/pod/HTTP::Server::Simple # https://metacpan.org/pod/distribution/CGI/lib/CGI.pod package WebServer;use strict; use warnings FATAL > all; use HTTP::Server::Simple::CGI;…

【数据结构与算法】快排、归并 O(nlogn) 基于比较

冒泡、插入、选择 O(n^2) 基于比较 快排、归并 O(nlogn) 基于比较 计数、基数、桶 O(n) 不基于比较 一、分治思想 1.分治思想&#xff1a;分治&#xff0c;顾明思意&#xff0c;就是分而治之&#xff0c;将一个大问题分解成小的子问题来解决&#xff0c;小的子问题解决了&…

第四章切比雪夫不等式、大数定理、中心极限定理

切比雪夫不等式 设随机变量X具有数学期望E(X)μ&#xff0c;方差D(X)σ2&#xff0c;对于任意ε>0&#xff0c;都有P{|X−μ|≥ε}≤σ2ε2方差越大&#xff0c;X落在区间外的概率越大&#xff0c;X的波动也就越大&#xff0c;与方差的意义统一了。等价公式P{|X−μ|<ε}…

第十七期:记一次生产环境SQL Server服务器卡顿问题解决--内存分配不当

概述 最近有台数据库做了迁移&#xff0c;然后运维人员过了一段时间发现这台服务器非常卡&#xff0c;连远程登录都要很久&#xff0c;下面记录下其中的解决过程。 1、查看资源情况 可以发现内存爆满了&#xff0c;而排名第一的正是sqlserver的进程 2、查看sqlserver内存分配…

Python的dnspython库使用指南

因为平时在测试DNS的时候有些操作手动完成不方便&#xff0c;所以需要用到脚本&#xff0c;而在Python里dnspython这个用于DNS操作的库十分强大&#xff0c;但是无奈网上大部分资料只列举了少部分的用法&#xff0c;所以记录一下我平时使用到的功能&#xff0c;基本上已经能应付…

leetcode 42 接雨水 单调栈

接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图&#xff0c;在这种情况下&#xff0c;可以接 6 个单位的雨水&#xff08;蓝色部分表示雨水…

第十八期:网页禁止复制粘贴怎么办?教你六招轻松搞定

经常在网上遇到一些无法复制的文章&#xff0c;那么问题来了&#xff0c;有什么办法可以绕开这种限制&#xff0c;将网页内容轻松下载回来呢&#xff1f; 经常在网上遇到一些无法复制的文章&#xff0c;那么问题来了&#xff0c;有什么办法可以绕开这种限制&#xff0c;将网页内…

[Leetcode][第99题][JAVA][恢复二叉搜索树][中序遍历]

【问题描述】[困难] 【解答思路】 1. 显示中序遍历 时间复杂度&#xff1a;O(N) 空间复杂度&#xff1a;O(N) class Solution {public void recoverTree(TreeNode root) {List<Integer> nums new ArrayList<Integer>();inorder(root, nums);int[] swapped find…

复盘二进制的习题(2)

338 Counting Bits。输入一个整数n&#xff0c;对于 0 ≤ i ≤ num&#xff0c;计算每个数的二进制1的个数。例如&#xff1a;num 5 返回 [0,1,1,2,1,2]。希望能在O(n)的时间内完成。这里有动态规划的思想。 思路一&#xff1a; 十进制数二进制表示0000010011(0的bits)20101…

c#XML的基本使用

创建XML文档 static void Main(string[] args){//1.引入命名空间//2.创建XML文档对象XmlDocument xmldoc new XmlDocument();//3.创建第一行描述信息&#xff0c;添加到xmldoc文档中XmlDeclaration xmldec xmldoc.CreateXmlDeclaration("1.0", "utf-8", …

第四十一期:深度解析5G核心网建设难点和挑战

目前核心网处于架构转型和业务转型的关键期。在架构层面&#xff0c;NFV、CU分离、边缘计算等技术的成熟推动核心网络架构转型&#xff0c;控制面进一步集中&#xff0c;转发面进一步下沉。 目前核心网处于架构转型和业务转型的关键期。在架构层面&#xff0c;NFV、CU分离、边缘…

linux 进入一个中文乱码的目录的方法

bash命令&#xff1a;cd ls | awk NRxxx awk命令&#xff1a;获取第xxx行的目录名称&#xff0c;加上NR表示从第一行开始读的行号取 NR已经读出的记录数&#xff0c;就是行号&#xff0c;从1开始 用|把ls的结果传给后面的awk命令&#xff0c;连接上前面的cd就能进入啦 导引号…

[Leetcode][第696题][JAVA][计算二进制子串][分组]

【问题描述】[简单] 【解答思路】 1. 按字符分组 将字符串 ss 按照 00 和 11 的连续段分组&#xff0c;存在counts 数组中&#xff0c;例如 s 00111011&#xff0c;可以得到这样的counts 数组&#xff1a;counts{2,3,1,2}。 这里counts 数组中两个相邻的数一定代表的是两种…

第五章数理统计--样本和抽样分布

从今天开始要学习数理统计。 概率论&#xff1a;是专门研究随机现象的一门学科&#xff0c;定量描述随机现象及其规律。 数理统计&#xff1a;数理统计的研究对象是数据&#xff0c;包括对数据的采集、整理、分析、建模。主要任务是获取样本、描述样本&#xff0c;从样本得到…

Scrapy安装报错

python3 pip 安装Scrapy在win10 安装报错error: Microsoft Visual C 14.0 is required. Get it with "Microsoft Visual C Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools 问题描述 当前环境win10&#xff0c;python_3.6.1&#xff0c;64…

第四十三期:2020年企业面临的20大数据安全风险

为了帮助企业为日益增长的确定性风险做好准备&#xff0c;以下我们总结了企业2020年可能面临的20种数据安全风险。 如今&#xff0c;数据安全已成为公司、消费者和监管机构的头等大事。 近年来数据泄露和隐私事故越来越普遍&#xff0c;而且代价高昂。Risk Based Security的一…

[Leetcode][第93题][JAVA][复原IP地址][剪枝][回溯]

【问题描述】[中等] 【解答思路】 1. 递归 回溯剪枝 复杂度 class Solution {static final int SEG_COUNT 4;List<String> ans new ArrayList<String>();int[] segments new int[SEG_COUNT];public List<String> restoreIpAddresses(String s) {segmen…

函数嵌套

目录 一、函数的嵌套定义二、函数的嵌套调用一、函数的嵌套定义 函数内部定义的函数&#xff0c;无法在函数外部使用内部定义的函数。 def f1():def f2():print(from f2)f2()f2() # NameError: name f2 is not defined def f1():def f2():print(from f2)f2()f1() from f2 现在…

第六章 参数估计

依据样本推出总体分布的参数&#xff0c;方法有两种&#xff1a;矩估计和极大似然估计。  参数估计的形式有&#xff1a;点估计和区间估计。  点估计&#xff1a;构造合适的统计量θˆθˆ(X1,X2,...Xn)用来估计未知参数θ&#xff0c;θˆ称为参数θ的点估计量。  当给定…

第四十四期:1.3万亿条数据查询如何做到毫秒级响应?

知乎&#xff0c;在古典中文中意为“你知道吗?”&#xff0c;它是中国的 Quora&#xff0c;一个问答网站&#xff0c;其中各种问题由用户社区创建&#xff0c;回答&#xff0c;编辑和组织。 图片来自 Pexels 作为中国最大的知识共享平台&#xff0c;我们目前拥有 2.2 亿注册用…