IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hadoop基础学习笔记系列(八)MapReduce框架、设计原则约束、实例 -> 正文阅读

[大数据]Hadoop基础学习笔记系列(八)MapReduce框架、设计原则约束、实例


理念:Bring computation to DATA

框架

何时使用?

  • 数据需要经常update——DBMS
  • 需要扫描数据——MR

用户定义

  • 所有数据都会被转换成键值对的形式(基本单元)<key,value>
  • mapper(独立可分,在数据上运行):应用到数据的function,输入:数据,输出:键值对
  • reducer:应用到中间数据的function,输入:键值对,输出:结果

Hadoop能够处理其中间的协调工作,会将map function应用在数据所在的位置(可复制、分布式),根据key来shuffle、group数据形成中间数据,然后使用reduce function来获取最终结果。
![[Pasted image 20220215171030.png]]

栗子:汇总文章词语

JAVA:MR英语单词频次统计案例-----wordcount_tianqinglei的博客-CSDN博客
Python:Mapreduce+python实现简单的词频统计_ElsaWu的布袋子-CSDN博客

原则

原则上

  • 每个data spit一个mapper
  • 每个核一个reducer
    但可以根据task改变。如果每个reducer产出的结果很多,可以少于核的个数。

好的键值

  • 简单
  • 能够让reducer获得正确的输出

任务分解

  • mappers:简单可分
    • common mappers:
      • filter(子数据集)
      • identity(传递数据)
      • splitter(汇总计数)
  • reducers:易于合并

设计

  • 合成键:当有两个域需要被group,并使用value来存其他信息
  • 级联(cascade)
  • bin keys into ranges
  • combiner map输出前可以聚合结果减少shuffle

设计约束

  • 必须符合键值对的范式
  • 不存储中间数据
  • 需要编程,需要debug
  • 无法迭代(有些算法需要)

一些栗子

key可以是多个item(合成键),例如汇总多天的词频,可以使用<date word,count>

cascade

![[Pasted image 20220215204010.png]]

join:基于key组合表

  1. fileA词,词频 fileB日期,词,词频
    A:key:word;value:total-count
    B:key:date,word;value:day-count
  2. 把date放在value(因为需要输出)
    A:key:word;value:total-count
    B:key:word;value:date day-count
  3. reducer可以通过一个key对应几个value来确定是来自A还是B

向量乘法:A x B

<index, number>

计算成本,要考虑:

  • map()需要输出多少<index, number>?
  • 有多少index需要shuffle?

如果是两个N维向量相乘,2N indices,N pairs,N个group会被shuffle到reducer

Group越多,shuffle的成本越高

如何降低shuffle成本?

  • combine map in mapper
  • 例如,在统计词频时候,可以先在map的结果里把一篇文章的词频汇总好,再shuffle进入reducer进行汇总
  • 例如,在向量乘法计算时,可以将N维向量划分为一些bin,比如r=10个一组,划分为N/10个bin,新的key使用bin的index,向量的数字可以放在value里面。

平衡

  • 如果r减小,N/r增大,shuffle成本提高,但是reducer的复杂度会下降。
  • 基于数据和硬件

扩展到矩阵运算,keys中需要有行号和列号

其他

  • 延伸MR做数据处理:Pig、HIVE(类SQL接口)
  • 提供交互性和持续性:Spark
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-16 13:11:15  更:2022-02-16 13:11:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:49:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码