24、MapReduce与大数据集群技术解析

MapReduce与大数据集群技术解析

1. MapReduce中的迭代计算

在MapReduce里,迭代计算是一个重要的概念。用户会向迭代算法发送一组MapReduce作业,每次迭代至少包含一个作业。在每次迭代中,映射(map)函数会处理上一次迭代的结果以及初始数据输入(包括静态和动态数据),而归约(reduce)函数则会合并中间数据,输出当前迭代的动态数据。在分布式环境中,这些动态数据会存储在分布式文件系统中,作为下一次迭代的输入。通常,每次迭代通过一个作业完成,这也是原生MapReduce在迭代计算方面效率不高的原因。不过,MapReduce的扩展可以提高其在迭代计算中的效率,主要有以下两个方向:
- 创建内部数据流 :在单个MapReduce作业中创建内部数据流,所有计算都在此完成。这种方法中,归约函数的结果会直接发送给映射函数,从而降低启动成本(因为无需从文件系统读取动态数据)。
- 缓存迭代不变数据 :缓存输入数据,使得输入数据在第一次迭代时只需读取一次。

一个有趣的应用是Yucheng Low等人提出的用于分布式计算的GraphLab框架扩展。在这个应用中,图数据首先会通过特定领域知识或分布式图分区启发式方法进行过度分区。分区的元素(称为原子)数量为k,远大于机器数量。每个原子以二进制压缩的图生成命令列表(如添加顶点或添加边)的形式存储在一个独立文件中。每个原子包含与分区边界相邻的顶点和边的信息,原子索引文件包含顶点之间的连接以及其他原子文件的位置信息,该索引文件中的信息可视为一个元图,其中顶点是k个原子,边是原子之间的连接。用户在分布式文件系统上构建原子图,哈希分区技术适用于MapRedu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值