MapReduce框架:快速数据分析适用性探究
1. 引言
如今,随着移动设备与互联网的持续连接,用户生成数据的性质发生了变化,变得更加实时化。例如,纽约证券交易所每天产生约1TB的新交易数据,Facebook托管着约100亿张照片,占用1PB的存储空间,互联网档案馆存储约2PB的数据,并且每月以20TB的速度增长。
传统的批量数据处理方式太慢,无法快速生成报告,因为积累的数据可能在几小时甚至几分钟内就失去了价值。快速数据处理需要流处理和在线聚合。
在MapReduce(MR)中,用户将计算表达为两个函数:Map和Reduce。Map函数接受一个输入对,生成一组中间键/值对;Reduce函数接受一个中间键和该键对应的一组值,将这些值合并成一个可能更小的值集。MR模型的主要优点是它能在通用硬件上利用计算和I/O并行性,并且可以随着数据集的增大轻松扩展。Hadoop是一个用于分布式计算环境的开源MR框架。
Hadoop项目由Apache管理,源于Nutch项目,它发布了Hadoop分布式文件系统(HDFS)和MapReduce框架。下面是Hadoop的详细执行环境:
1. Map任务 :每个Map函数会从HDFS获取一部分输入数据(输入分片),将输出缓冲在内存中。在写入磁盘之前,线程会将数据按对应的Reducer分区,在每个分区内按键进行内存排序。Hadoop允许用户指定一个合并器函数,对排序后的Map输出进行处理,以减少写入本地磁盘和传输到Reducer的数据量。当内存缓冲区达到溢出阈值时,会创建新的溢出文件,任务结束前,这些溢出文件会合并成一个分区并排序的输出文件,Map输出在写入磁盘时会被压缩。
2.
超级会员免费看
订阅专栏 解锁全文
500

被折叠的 条评论
为什么被折叠?



