当前位置: 首页 > news >正文

MapReduce入门教程

这可不是目录

  • 入门
    • 定义与说明
      • 数据分析
      • Map和Reduce阶段的任务
      • <Kn,Vn>分析
      • MapReduce的数据类型
      • 其他说明(持续更新)
    • 开发案例(持续更新)
      • 自定义的wordcount
      • csv文件操作
      • 序列化操作

入门

定义与说明

数据分析

以下未数据分析示意图
在这里插入图片描述

Map和Reduce阶段的任务

  • Map阶段的任务:一个map通常处理一个切片,当数据量过大时会存在多个map
  • Reduce阶段的任务:对Map输出的键值对进行汇总、聚合,但reduce的数量根据输出要求决定
  • Map和Reduce没有一一对应的关系
  • 一个job允许有多个·Map和多个Reduce,部分情况允许没有Reduce

<Kn,Vn>分析

接上述Map和Reduce阶段的任务和数据分析

Map

一般而言,Map阶段会产生两个<k,v>键值对
<k1,v1>通常表示数据的输入,k1:偏移量(不重要,一般指输入);v1:原始数据
<k2,v2>是这个Map阶段的切片输出,k2:类别(按需要切分);v2:自定义输出的切片结果

Reduce

一般而言,Reduce阶段会产生两个<k,v>键值对
<k3,v3>一般是承接的map阶段的输入,k3:来自于k2,和k2类型相同;v3:集合形式的v2
<k4,v4>MapReduce的输出,k4:一般来源于k3,和k3类型相同;v4:自定义的汇总、聚合输出

MapReduce的数据类型

在这里插入图片描述
使用时可以考虑先转String类型进行操作,在进行输出时,可以再转为MapReduce的数据类型

其他说明(持续更新)

  • org.apache.hadoop.mapred是Hadoop 1.x的版本
  • 打包时,请将所有需要的jar包一起
  • 每一阶段的输出类型必须是hadoop定义的类型(如上)
  • k1一般不重要,基本是你的文件或者数据输入
  • Reduce阶段一般是最后的输出阶段,当然前提是你的MapReduce流程中含有Reduce

开发案例(持续更新)

自定义的wordcount

这可不是链接 = =

csv文件操作

这可不是链接 = =

序列化操作

这可不是链接

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 白骑士的Matlab教学进阶篇 2.1 数据可视化
  • 【无标题】Unity Asset Hunter 插件
  • 【总结】TCP/IP四层模型的理解
  • PHP多商家营销活动平台系统小程序源码
  • 如何写好提示词?《Midjourney常用关键词大全》-附关键词文件
  • HTTP、HTTPS、SOCKS5 三种协议特点详解
  • 华为od(D卷)最大社交距离
  • 数学中常用的解题方法
  • cassandra-driver,一个超强大的Python库
  • vue3仿飞书头像,根据不同名称生成不同的头像背景色
  • 安卓开发中的AppCompat框架使用详解
  • 笔记结构设计:构建清晰、有逻辑的编程学习笔记
  • opencv-python图像增强二:图像去雾(暗通道去雾)
  • 【OpenCV】window 下 VS Code 配置OpenCV
  • 【阿旭机器学习实战】【38】支持向量机SVM实现手写数字识别,模型训练、评估,以及参数调优全流程
  • JS 中的深拷贝与浅拷贝
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • C++入门教程(10):for 语句
  • Cookie 在前端中的实践
  • echarts花样作死的坑
  • ECMAScript入门(七)--Module语法
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Java反射-动态类加载和重新加载
  • PAT A1050
  • PHP的Ev教程三(Periodic watcher)
  • 基于游标的分页接口实现
  • 前端面试之闭包
  • 如何合理的规划jvm性能调优
  • 学习笔记TF060:图像语音结合,看图说话
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (1)Hilt的基本概念和使用
  • (C++17) std算法之执行策略 execution
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (Git) gitignore基础使用
  • (Oracle)SQL优化基础(三):看懂执行计划顺序
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)ssm高校实验室 毕业设计 800008
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (四)JPA - JQPL 实现增删改查
  • (转)树状数组
  • . Flume面试题
  • .NET 发展历程
  • .net 中viewstate的原理和使用
  • .NET 中创建支持集合初始化器的类型
  • .NET和.COM和.CN域名区别
  • 。Net下Windows服务程序开发疑惑
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • ::前边啥也没有
  • @JsonSerialize注解的使用
  • @transaction 提交事务_【读源码】剖析TCCTransaction事务提交实现细节