思考小问题

统计一个100G大小的文件进行词频的解决方法

方法一:如果小文件可以编写一个小程序,进行遍历,统计词频。

方法二:编写一个多线程程序,实现并发,比上一个方法更加有效,但是要防止多个线程重复提交(同步互斥问题)。

方法三:程序交给多台服务器去完成,痛点:需要大量人工参与。

方法四:通过MapReduce框架自动化完成

MapReduce

特点:易于编程(有两个接口ma--大任务分成小任务,任务分解,reduce---任务汇总),良好的扩展,高容错性,适合离线处理

是一个编程框架:只需要程序员去设计map,reduce函数

MapReduce语义:相同的key为一组,调用一次reduce方法,在方法内迭代这一组数据的计算

输入(key,val)数据集----》map映射成一个中间结果(k,v)---》reduce(k,v).

先map处理结果作为reduce的输入(线性关系),map的输入的是大数据集的分片split(split窗口机制,大小可以调整,默认split大小近似block大小),默认框架以行为单位,可以实现分布式并行运算。

map的数量取决于split的数量

reduce的数量取决于程序员的设计partition

大数据实训02--MapReduce原理与开发

MapTask

map的数量一般比reduce多。

框架内部实现机制(分区,排序,写入磁盘)

map生成<key,value,partition分区>数据,用缓冲区(buffer in memory)暂时存储,积累一定量后一次性写入磁盘。

partition的个数决定reduce的个数,reduce连接网络到各个map中拉取分区。

MapReduce编程模型

Input---->Splitting--->Mapping--->Shuffling--->Reducing--->final result

Mapping:生成键值对

shuffing (洗牌):分组、排序、拉取数据

大数据实训02--MapReduce原理与开发

 版本区别:

Hadoop 1.x 提现计算向数据移动(移动计算)问题:压力过大,单点故障

Hadoop 2.x :yarn提供资源管理和调度(RM,AM)

持续更新.......

相关文章:

  • 2021-04-24
  • 2021-12-29
  • 2022-12-23
  • 2021-11-16
  • 2022-12-23
  • 2021-12-24
  • 2022-02-27
猜你喜欢
  • 2021-12-03
  • 2022-01-09
  • 2021-07-24
  • 2021-12-31
  • 2021-07-26
  • 2021-08-28
  • 2023-03-18
相关资源
相似解决方案