天天看点

颠覆大数据分析之第二章结束语

颠覆大数据分析之第二章结束语

译者:黄经业    购书

本章讨论了一些业务场景,以及它们在bdas框架中的实现。同时还介绍了什么是bdas框架,并重点介绍了spark, shark,以及mesos。spark在那些涉

颠覆大数据分析之第二章结束语

及到优化的场景中非常有用——比如说ooyala希望基于约束条件来动态地选择最优的cdn,以便提升视频的用户体验。必须注意的是,正如第一章所说的,众所周知,约束及变量过多的优化问题是很难在hadoop mr中解决的。随机法要更适合hadoop。不过你应当时刻牢记一点,hadoop很难解决优化问题指的是它很难高效地实现规模化。

诸如mpi这些传统的并行编程工具或者spark这类的新范式则非常适用于这类优化的问题,它们能够高效地进行扩展。另有数位研究人员也同时指出,hadoop并不擅长迭代式机器学习算法,包括发明了spark的伯克利的研究人员,以及graphlab的研究人员,还有加州大学圣巴巴拉分校的mapscale团队。satish narayana srirama教授在他的论文中就这个问题进行了深入的讨论(srirama等2012)。最主要的原因就是它缺少长期存活的mr以及内存编程的支持。每一次mr迭代都要启动新的mr作业,并将数据从hdfs中拷贝到内存里,然后进行迭代,再将数据写回到hdfs,检查迭代是否终止…每次迭代都重复这些会带来显著的开销。

mpi提供了一个叫做all-reduce的结构,它使得值可以在集群节点间累加和广播。hadoop上唯一的一个解决了一类优化问题的高效实现来自于vowpal wabbit的团队,他们提供了基于hadoop的all-reduce结构的一个实现(agarwal等2013)。

对于另一类稍微不同的场景shark则非常有用:它可以不用进行预计算就能执行大规模的低延迟即席查询。ooyala在视频数据上进行的这类查询就非常明显,比如某个国家的移动用户的热门内容或者其它的动态趋势的查询。

mesos是一个可以管理集群资源的资源管理器,这个集群可能会运行着多种框架,包括hadoop, spark, 或者storm。在数据仓库环境中这个非常有用,比如说,hadoop可以用于etl而spark可以用来运行机器学习算法。 

继续阅读