中文

基于数据局部性的 Hadoop 作业调度

分布式、并行与集群计算 2015-06-02 v1

摘要

在 Hadoop 中,作业调度是一个独立的模块,用户可以基于实际的应用需求设计自己的作业调度器,从而满足特定的业务需求。目前,Hadoop 拥有三种调度器:FIFO、计算能力调度和公平调度策略,它们均采用简单考虑数据局部性的任务分配策略。它们既不能很好地支持数据局部性,也不能完全适用于所有作业调度场景。本文中,我们考虑了资源预取(resources-prefetch)的概念,并提出了一种基于数据局部性的作业调度算法。通过估计完成任务所需剩余时间,并与传输一个资源块的时间相比较,来为任务分配预选候选节点。然后我们从未完成的作业队列中预选一个非本地 map 任务作为资源预取任务。获取预选 map 任务的资源块信息,从候选节点中选择最近的资源块并通过网络传输到本地。从而我们确保了足够好的数据局部性。最后,我们设计了一个实验并证明资源预取方法能够保证良好的作业数据局部性,并在一定程度上减少作业完成时间。

关键词

引用

@article{arxiv.1506.00425,
  title  = {Hadoop Scheduling Base On Data Locality},
  author = {Bo Jiang and Jiaying Wu and Xiuyu Shi and Ruhuan Huang},
  journal= {arXiv preprint arXiv:1506.00425},
  year   = {2015}
}