Spark大数据处理技术
夏俊鸾 刘旭晖 邵赛赛 等
序
2009年的时候,Netflix公司举办了一个叫作Netflix Prize的推荐算法比赛。这个比赛匿名公布了Netflix五十万用户对近两万部电影的一亿个评分数据,希望参赛者能够开发出更好的推荐算法,以提高推荐系统的质量。这个比赛的奖金有一百万美元。一百万美元看似很多,但是和一个更好的推荐算法给Netflix带来的效益相比,实则九牛一毛。
高昂的奖金和Netflix提供的真实数据吸引了不少的参赛者,其中也包括了来自加州大学伯克利分校(UC Berkeley)的博士生Lester Mackey。Lester师从机器学习领域泰斗Michael Jordan,在一个叫作AMPLab的大数据实验室里进行博士研究。AMPLab和大多数学术界实验室不同的地方在于实验室内有多个教授和他们带领的学生一起合作。这些研究人员来自不同的领域,包括机器学习、数据库、计算机网络、分布式系统等。当时,要想提高算法研究迭代的效率,需要利用多台机器的分布式建模。在尝试了当时业界最流行的Hadoop MapReduce后,Lester发现自己的时间并不是花在提高算法效率上,而是耗费在MapReduce的编程模型和低效的执行模式上。这个时候,他向实验室内部的另外一名进行分布式系统研究的学生Matei Zaharia求助。
当时年纪轻轻的Matei在业界已经小有名望。他在雅虎和Facebook实习期间做了很多Hadoop早期的奠基工作,包括现今Hadoop系统内应用最广的fair scheduler调度算法。在和Lester的思维碰撞中,Matei总结了Hadoop MR的不足,开始设计了第一个版本的Spark。这个版本完全为了Lester定制,只有几百行的代码,使得Lester可以高效率地进行分布式机器学习建模。
Lester所在的The Ensemble团队最后和BellKor's Pragmati…