【问题标题】:Distributing Scala over a cluster?在集群上分发 Scala?
【发布时间】:2012-03-27 23:47:36
【问题描述】:

所以我最近开始学习 Scala 并一直使用图形作为我的项目来改进我的 Scala,而且进展顺利 - 我已经设法轻松地并行化一些图形算法(受益于数据并行化)得益于 Scala 2.9 对并行集合的惊人支持。

但是,我想更进一步,让它不仅在单台机器上并行化,而且在多台机器上并行化。 Scala 是否像并行集合一样提供任何干净的方法来做到这一点,还是我必须等到我的关于 Actors 的书中的章节/了解更多关于 Akka 的信息?

谢谢! -kstruct

【问题讨论】:

    标签: scala graph parallel-processing distributed scala-collections


    【解决方案1】:

    尝试创建distributed collections(当前项目已冻结)。

    替代方案将是您已经提到的 Akka(最近添加了非常酷的功能:Akka Cluster),或者是成熟的集群引擎,即不是 并行集合 在任何意义上,更像是在 scala 上分发集群,但可以以某种方式在您的任务中使用 - 例如 Scoobi 用于 Hadoop,Storm 甚至 Spark(特别是 Bagel 用于图形处理)。 还有Swarm 是建立在定界延续之上的。 最后但并非最不重要的是Menthor - 作者声称它特别适合图形处理并利用 Actors。

    由于您的目标是使用图表,您还可以考虑查看最近由 twitter 开源的 Cassovary

    Signal-collect 是一个由 Akka 支持的并行数据处理框架。

    【讨论】:

    • 查看 Scrunch 以及 Hadoop
    • 感谢关于信号收集的说明!
    • Scalding 实际上看起来很棒,最终可能会使用它。
    【解决方案2】:

    你可以使用 Akka (http://akka.io)——它一直是 Scala 最先进和最强大的 Actor 和并发框架,新鲜出炉的 2.0 版允许很好的透明 actor remotinghierarchies 和 @987654324 @。进行并行计算的规范方法是创建与算法中的并行部分一样多的参与者,可选择将它们分布在多台机器上,将数据发送给它们进行处理,然后收集结果(请参阅here)。

    【讨论】:

      猜你喜欢
      • 2015-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-05
      • 1970-01-01
      • 1970-01-01
      • 2018-02-22
      相关资源
      最近更新 更多