Incoop:实现大规模增量式MapReduce计算的创新方案
1 引言
在当今数据驱动的时代,大规模数据集的分布式处理对于众多公司和组织至关重要,它是提升运营效率的关键手段。近年来,MapReduce 范式的出现极大地推动了大规模并行数据处理的发展。然而,实际应用中输入数据集往往变化不大,传统的“单次处理”方式效率低下,而现有的增量数据处理系统又存在需要程序员采用新编程模型和 API 等问题。
为解决这些问题,我们提出了 Incoop 系统,它扩展了 Hadoop 对 MapReduce 范式的开源实现,能够以增量方式运行未修改的 MapReduce 程序。Incoop 的设计灵感来源于自调整计算的最新进展,旨在让程序员无需修改代码就能自动实现现有 MapReduce 程序的增量计算。
2 系统概述
2.1 自调整计算
自调整计算为增量计算问题提供了解决方案。它通过跟踪子计算的输入和输出之间的依赖关系,在增量运行时仅重新构建受输入更改影响的子计算。具体来说,它将计算表示为子计算的依赖图,子计算之间存在数据依赖和控制依赖。子计算还会基于其输入进行记忆化,以便在需要时重用。
自调整计算的效率取决于计算的稳定性。当对相似输入数据集执行的子计算集合相似时,我们称该计算是稳定的。为确保稳定性,计算应被划分为小的子计算,且计算之间不应存在长依赖链。虽然 MapReduce 框架天然具有并行性和短依赖链,但小的输入更改可能导致许多 MapReduce 任务的输入发生变化,从而影响稳定性。
Incoop 为简化设计和实现,未显式构建子计算的依赖图,而是通过记忆化 MapReduce 任务隐式记录图,并通过重
超级会员免费看
订阅专栏 解锁全文
1870

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



