Apache Spark is an open-source in-memory cluster-computing framework. Spark decomposes an application into numerous tasks and assigns them to computing nodes for higher efficiency. However, in heterogeneous environments, some tasks become stragglers because of poor performance of some computing nodes, data skew, etc. These stragglers can affect cluster performance seriously since a job completes just when the last undertaking completions. To mitigate stragglers, Spark uses speculative execution which recognizes slow tasks and picks the node to run speculative task, but the low accuracy in identification and simple way of backing up will further extend the execution time. Then we develop an improved speculative strategy, DBMTPE (Data-Based Multiple Phases Time Estimation), which selects stragglers by estimating their remaining time and chooses a proper way to run speculative task according to the cause. Experiment results show that DBMTPE can run applications up to 10.5% faster over Spark-Native and save computing resource at the same time.
Xiaohan HuangChunlin LiYoulong Luo
YANG Zhiwei,ZHENG Quan,WANG Song,YANG Jian,ZHOU Lele