Jos*_*rla 5 hadoop scala mapreduce machine-learning computer-vision
我正在构建Spark框架的增强功能(http://www.spark-project.org/).Spark是加州大学伯克利分校的一个项目,可以在RAM中快速完成MapReduce.Spark是用Scala构建的.
我正在构建的增强功能允许在映射器计算时共享一些数据.这可能很有用,例如,如果每个映射器都在寻找最佳解决方案,并且他们都希望共享当前最佳解决方案(尽早删除不良解决方案).解决方案在传播时可能会略微过时,但这仍然可以加快解决方案的速度.通常,这称为分支定界方法.
我们可以分享单调增加的数字,但我们也可以共享数组和字典.
我们还在研究机器学习应用程序,其中映射器描述本地自然梯度信息,然后在所有节点之间共享新的最佳当前最优解决方案.
这种增强的其他一些好的实际应用是什么?只需在映射器之间进行一些信息共享,Map Reduce计算可以从中受益哪些真实有用的应用程序.什么应用程序现在使用MapReduce或Hadoop,但由于Map阶段的独立性限制,它们只是有点太慢了?
好处可以是加速地图阶段,或改进解决方案.
我正在构建的增强功能允许映射器在计算时共享一些数据。
Apache Giraph基于Google Pregel,后者基于BSP,用于图形处理。在BSP中,进程之间在通信阶段存在数据共享。
Giraph 依赖于 Hadoop 来实现。一般来说,MapReduce 中的映射器之间没有通信,但在 Giraph 中,映射器在 BSP 的通信阶段相互通信。
您可能还对Apache Hama感兴趣,它实现了 BSP,并且不仅仅可以用于图形处理。
映射器不在 MR 中进行通信可能存在某种原因。您在提升时考虑过这些因素吗?
这种增强功能在现实世界中还有哪些其他好的应用?
图处理是我能想到的一件事,类似于Giraph。查看 BSP 的不同用例,其中一些可能适用于此类增强。我也很感兴趣其他人对此有何评论。