大数据课程D3——hadoop的MapReduce

news2025/1/4 19:51:34

文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州

 ▲ 本章节目的

⚪ 了解MapReduce的作用和特点;

⚪ 掌握MapReduce的组件;

⚪ 掌握MapReduce的Shuffle;

⚪ 掌握MapReduce的小文件问题;

⚪ 掌握MapReduce的压缩机制;

⚪ 掌握MapReduce的推测执行机制;

⚪ 掌握MapReduce的数据倾斜问题;

一、简介

1. 概述

1. MapReduce是Hadoop提供的一套进行分布式计算机制。

2. MapReduce是Doug Cutting根据Google的论文<The Google MapReduce>来仿照实现的。

3. MapReduce会将整个计算过程拆分为2个阶段:Map阶段和Reduce阶段。在Map阶段,用户需要考虑对数据进行规整和映射;在Reduce阶段,用户需要考虑对数据进行最后的规约。

2. 特点

1. 优点

a. 易于编程:MapReduce提供了相对简单的编程模型。这就保证MapReduce相对易于学习。用户在使用的时候,只需要实现一些接口或者去继承一些类,覆盖需要实现的逻辑,即可实现分布式计算。

b. 具有良好的可扩展性:如果当前集群的性能不够,那么MapReduce能够轻易的通过增加节点数量的方式来提高集群性能。

c. 高容错性:当某一个节点产生故障的时候,MapReduce会自动的将这个节点上的计算任务进行转移而整个过程不需要用户手动参与。

d. 适合于大量数据的计算,尤其是PB级别以上的数据,因此MapReduce更适合于离线计算。

2. 缺点

a. 不适合于实时处理:MapReduce要求处理的数据是静态的,实时的特点在于数据池是动态的。

b. 不擅长流式计算:MapReduce的运行效率相对较低,在处理流式计算的时候,效率更低。

c. 不擅长DAG(有向图)运算:如果希望把上一个MapReduce的运行结果作为下一个MapReduce的输入数据,那么需要手动使用工作流进行调度,而MapReduce本身并没有这种调度功能。

3. 入门案例

1. 案例:统计文件中每一个字符出现的次数(文件:characters.txt)。

2. Hadoop对Windows系统的兼容性不强,所以在Windows中运行Hadoop程序的时候需要添加一些其他的配置 - 配置之后,需要双击winutils.exe,如果出现一个黑色窗口一闪而过,那么没有任何问题;如果双击winutils.exe之后报错,那么将jar目录下的msvcr120.dll文件放到C:\\Windows\\System32目录下,然后再次双击winutils.exe工具,查看是否报错。

3. 配置环境变量:

a. 新建HADOOP_HOME。

b. 修改Path。

 c. 新建HADOOP_USER_NAME。

4. 如果运行程序的时候,出现了null/bin/winutils.exe错误,那么解决方案:

a. 先检查环境变量是否配置正确。

b. 如果环境变量配置正确,但是运行程序依然报错,那么可以在Driver类中添加代码:System.setProperty("hadoop.home.dir", "Hadoop的解压路

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

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

相关文章

docker存储空间报错解决(谨慎操作,会影响原来的容易镜像,不熟练切勿操作)

报错内容 [rootDream package]# docker build -t imapp . [] Building 21.0s (6/19)> [internal] load build definition from Dockerfile 0.1s> > transferring …

提升维修服务体验,轻松解决问题:揭秘上门维修小程序的关键功能与用户体验

当今社会&#xff0c;随着科技的发展&#xff0c;上门维修小程序成为了人们解决维修问题的首选。下面将介绍开发上门维修小程序时的必备功能&#xff0c;以及这些功能如何提供便利和增加用户体验。   在线维修预约功能&#xff1a;上门维修小程序提供了在线预约平台&#xff…

dreamStudio试用教程【AI绘画】

文章目录 dreamStudio 简介打开官网如下邮箱登录即可切换随机提示词新用户的试用次数目前只有25张图像&#x1f4d9; 预祝各位 前途似锦、可摘星辰 dreamStudio 简介 https://github.com/Stability-AI/StableStudio StabilityAI在官网上重磅宣布——旗下的文生图应用DreamStu…

SpringBoot(十)教你手把手自定义starter

一个月的时间&#xff0c;转眼已经到了我的SpringBoot系列的第十篇文章。还记得我的第二篇文章SpringBoot&#xff08;二&#xff09;starter介绍_springboot的starter_heart荼毒的博客-CSDN博客 曾经介绍过starter。starter除了官方提供的以外&#xff0c;我们也可以自定义。本…

【LeetCode每日一题】——766.托普利茨矩阵

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【题目进阶】八【解题思路】九【时间频度】十【代码实现】十一【提交结果】 一【题目类别】 矩阵 二【题目难度】 简单 三【题目编号】 766.托普利茨矩阵 四【题目描述…

iPhone 8 Plus透明屏有哪些场景化应用?

iPhone 8 Plus是苹果公司于2017年推出的一款智能手机&#xff0c;它采用了全新的玻璃机身设计&#xff0c;使得手机更加美观和时尚。 而透明屏则是一种新型的屏幕技术&#xff0c;可以使手机屏幕呈现出透明的效果&#xff0c;给人一种科技感十足的视觉体验。 透明屏是通过使用…

Java常用工具类

1、Date类 Date类主要用来存储时间&#xff0c;精确到毫秒&#xff0c;内部是通过一个long值来进行存储的。 2、Calendar&#xff08;日历类&#xff09; 主要用来处理时间&#xff0c;例如&#xff0c;获取时间的某个部分&#xff0c;改变时间的某个部分&#xff1b;对时间…

【go语言学习笔记】03 Go 语言深入理解

文章目录 一、指针详解1. 指针的声明和定义2. 指针的操作2.1 获取指针指向的值2.2 修改指针指向的值2.3 给指针变量分配内存 3. 指针接收者4. 什么情况下使用指针5. 指向接口的指针 二、参数传递1. 值类型2. 指针类型3. 引用类型3.1 map3.2 chan 4. 类型的零值 三、内存分配1. …

Android 9系统源码_音频管理(一)按键音效源码解析

前言 当用户点击Android智能设备的按钮的时候&#xff0c;如果伴随有按键音效的话&#xff0c;会给用户更好的交互体验。本期我们将会结合Android系统源码来具体分析一下控件是如何发出按键音效的。 一、系统加载按键音效资源 1、在TV版的Android智能设备中&#xff0c;我们…

vscode插件美化C/C++和HTML

配置html语言自动补全&#xff0c;在设置中搜索Emmet 设置->搜索 Emmet Abbreviation 验证自动补全 输入html&#xff0c;下键选择html:5&#xff0c;自动补全整个开头语言

极简在线商城系统,支持docker一键部署

Hmart 给大家推荐一个简约自适应电子商城系统&#xff0c;针对虚拟商品在线发货&#xff0c;支持企业微信通知&#xff0c;支持docker一键部署&#xff0c;个人资质也可搭建。 前端 后端 H2 console 运行命令 docker run -d --name mall --restartalways -p 8080:8080 -e co…

Maven引入本地第三方Jar包

背景 引入第三方的Jar包&#xff0c;本来是在项目结构的库里面引入的jar包&#xff0c;但是用maven打包时报错&#xff0c;所以后面想着用maven引入本地地址的方式。 解决方法 1.将Jar包放到根目录里面&#xff0c;我这边放在了lib文件中,如图所示&#xff1a; 2.在pom文件…

深空物联网通信中视频流的智能多路TCP拥塞控制|文献阅读|文献分析和学习|拥塞控制|MPTCP|SVC

前言 那么这里博主先安利一些干货满满的专栏了&#xff01; 首先是博主的高质量博客的汇总&#xff0c;这个专栏里面的博客&#xff0c;都是博主最最用心写的一部分&#xff0c;干货满满&#xff0c;希望对大家有帮助。 高质量博客汇总https://blog.csdn.net/yu_cblog/categ…

【CAS6.6源码解析】ST的默认淘汰策略 MultiTimeUseOrTimeoutExpirationPolicy

本篇文章是对上篇文章【深度解析票据淘汰与过期策略】的一个补充&#xff0c;上篇文章主要分析了TGT的默认淘汰策略配置&#xff0c;ST的配置有TGT的默认配置有一些差异化&#xff0c;特别是ST是基于MultiTimeUseOrTimeoutExpirationPolicy这样一种淘汰策略&#xff0c;本文将详…

精密划片机行业发展趋势

划片机行业的发展趋势主要包括以下几个方面&#xff1a; 高精度、高效率的切割技术&#xff1a;随着半导体芯片的尺寸不断增大&#xff0c;切割的精度和效率要求也越来越高。因此&#xff0c;行业将继续推动切割技术的创新和发展&#xff0c;以提高划片效率和精度。 自动化和智…

百度地图点标记加调用

先看效果 PHP代码 <?phpnamespace kds_addons\edata\controller;use think\addons\Controller; use think\Db;class Maps extends Controller {// 经纬度计算面积function calculate_area($points){$totalArea 0;$numPoints count($points);if ($numPoints > 2) {f…

Blazor前后端框架Known-V1.2.9

V1.2.9 Known是基于C#和Blazor开发的前后端分离快速开发框架&#xff0c;开箱即用&#xff0c;跨平台&#xff0c;一处代码&#xff0c;多处运行。 Gitee&#xff1a; https://gitee.com/known/KnownGithub&#xff1a;https://github.com/known/Known 概述 基于C#和Blazor…

(学习笔记1)类和对象详解(C++)

类和对象 1.类的定义语法类的定义方式 2.类的访问限定符2.1 访问限定符的特点2.2 struct与class的区别 3. 三大特性3.1 封装4.类的作用域5.类的实例化6.类对象模型7.this指针7.1 this指针的特性7.2 this指针相关问题 1.类的定义 类是面向对象语言特有的语法&#xff0c;在面向…

数组中重复的数字_剑指 Offer 03

文章目录 题目描述法一 哈希表 题目描述 法一 哈希表 int findRepeatNumber(vector<int>& nums){unordered_map<int, bool> map;for(const int& num:nums){if(map[num]) return num;map[num]true;}return -1;}

c++游戏制作指南 模板(权当预告)

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f35f;欢迎来到静渊隐者的csdn博文&#xff0c;本文是c游戏制作指南的一部&#x1f35f; &#x1f355;更多文章请点击下方链接&#x1f355; &#x1f368; c游戏制作指南&#x1f3…