Apache Spark 中的近似分布式连接
分布式、并行与集群计算
2018-05-16 v1 数据库
摘要
连接操作是并行数据处理的基础构建块。遗憾的是,在海量数据集上计算等值连接非常消耗资源。近似计算范式允许用户以精度和延迟换取昂贵的数据处理操作。因此,等值连接算子是使用近似技术进行优化的自然候选者。尽管基于采样的方法广泛用于近似,但关于输出质量,对连接进行采样是一项引人注目但充满挑战的任务。在数据集样本上执行连接的朴素方法无法保留连接输出的统计特性。为了实现这一潜力,我们在一个名为 ApproxJoin 的新算子中将 Bloom filter 草图与分层采样交织于连接计算中,从而保留连接输出的统计特性。ApproxJoin 利用 Bloom filter 避免在网络中混洗不可连接的数据项,然后应用分层采样以获得连接输出的代表性样本。我们的分析表明,ApproxJoin 具有良好的可扩展性并显著减少了数据移动,且不牺牲最终结果精度的严格误差界限。我们在 Apache Spark 中实现了 ApproxJoin,并使用微基准测试和真实世界案例研究对 ApproxJoin 进行了评估。评估表明,在相同采样率下,ApproxJoin 相比未修改的基于 Spark 的连接实现了 6-9 倍的加速。此外,加速伴随着混洗数据量的显著减少,比未修改的基于 Spark 的连接少 5-82 倍。
引用
@article{arxiv.1805.05874,
title = {Approximate Distributed Joins in Apache Spark},
author = {Do Le Quoc and Istemi Ekin Akkus and Pramod Bhatotia and Spyros Blanas and Ruichuan Chen and Christof Fetzer and Thorsten Strufe},
journal= {arXiv preprint arXiv:1805.05874},
year = {2018}
}