第2章:mapreduce

mapreduce

hadoop将数据存储在hdfs文件系统上。处理数据时,将数据提取、预处理的工作交由map任务完成,生成键值对之后传输给reduce任务执行。一般一个分片,由一个map任务来做。 map和reduce任务执行在集群中的节点。map任务输出文件一般先存在本地,再由网络传送到reduce所在的节点上进行最终处理。这个传输过程可能很费时间,为了减少传输数据量我们可以在map任务生成的结果集传输前,通过combinter 对其进行进一步处理。

  • map:数准备,过滤阶段 。
  • reduce:对处理过的数据进一步加工成目标数据。
  • mapreduce:对reduce结果进行进一步的加工整合。

横向扩展性:

  • HDFS上的每个块(基本处理单位)默认是128M,每个块是hafs操作的最小单位。
  • 每个块都会由一个Map任务去处理。
  • map任务会将中间计算结果,输出到本地磁盘。
  • reduce 的结果会被存储在HDFS上(需要占用网络带宽)

场景:用一台性能较好的计算机,假设我们要处理许多年的气象数据,每一年的数据量分别存储的不同的文件中。

  • 方式1:启动多个线程进行处理不同文件,最终汇总。因为数据文件大小不一,任务完成速度取决于最后完成的线程。当一个任务量较小的线程完成之后,只能进入等待,等待任务量较大的线程处理完成。

  • 方法2:我们将输入

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值