mapreduce是hadoop的核心组件, 设计理念是移动计算而不是移动数据,

mapreduce的思想是'分而治之', 将复杂的任务分解成几个简单的任务去执行

1, 数据和计算规模大大减少
2, 就近计算, 移动计算
3, 小任务并行计算, 彼此间没有依赖

  

共分为4个步骤:

1, split

切分blcok, 切分为数据片段, split0, split1, split2

计算公式为:

2, map

自定义的程序, 根据业务需求来的,

map任务的多少, 根据碎片的多少来的, 即上一步切分为多少个split , 每个split位一个线程,  split传递的数据为 key-value的形式, 输出形式也为键值对

相同key的数据, 输出为一组数据, 然后将数据进行下一步, 洗牌(sharp)

3, shuffler

包括 sort 和 merger, 把mapper输出的的数据进行切分, 排序, 组合等操作, 吧key符合某种范围的输出到特定的reducer那里

过程为:

4, reduce

reduce的数量, 

一个mapreduce 默认 只有一个reduce , 可通过配置分区数来更改reduce的数量

最新文章

  1. ubuntu-Linux系统读取USB摄像头数据(gspca)
  2. bzoj3680模拟退火
  3. 首页使用page类完成生成页面内容的大部分工作
  4. 你可能不知道的java、python、JavaScript以及jquary循环语句的区别
  5. Java基础(46):选择排序的Java封装(完整可运行)
  6. SQL Server 一些重要视图2
  7. MSSQL - 通用存储过程
  8. 【Python之路】第五篇--Python基础之杂货铺
  9. axure 预览"HTTP/1.1 302 Found"
  10. Hessian探究(一)Hessian入门示例
  11. obj-c编程10:Foundation库中类的使用(2)[字符串,数组]
  12. Android之Realm详解
  13. dataTables 插件学习整理
  14. Linux(Ubuntu)使用日记------Mongodb的安装与使用
  15. 刚发现 CSS 还存在一个命名规范 B.E.M
  16. JarvisOJ Basic 握手包
  17. python 的内存回收,及深浅Copy详解
  18. nodejs的某些api~(三)net模块
  19. 用servlet打内容到网页上
  20. php 搜索附近人及SQL语句的写法

热门文章

  1. 日期函数、时间函数总结(MySQL 5.X)
  2. Android DalivkVM与JVM的比较
  3. KNN PCA LDA
  4. KMeans|| in Spark MLLib
  5. Postgresql 锁查看
  6. Backup--查看备份还原需要的空间
  7. C#DataGridView的简单使用
  8. 构造回文-C++实现
  9. C - 前m大的数 (结构体)
  10. python 函数中使用全局变量