【问题标题】:Streams in Java 8: simple solution to use parallelstream() on a cluster?Java 8 中的流:在集群上使用 parallelstream() 的简单解决方案?
【发布时间】:2015-05-09 12:48:51
【问题描述】:

parallelstream() 提供跨单台机器核心的流上操作的无缝并行化。

如何扩展这个逻辑,让parallelstream() 将这些操作分发到集群的所有机器上?

理想情况下:
- 我创建了一个机器集群,使用框架??
- 启动myCollection.parallelstream().filter(something).collect() 将作业分发到集群中所有机器的所有核心,并将结果返回给控制集群的机器。

【问题讨论】:

  • 如果我没记错的话,你需要提供自己的ForkJoinPool
  • 我才刚刚开始适应 Java 8,人们已经在谈论这样的事情了。我落后了;)
  • :-) 好吧,在优秀的《Java 8 in Action》一书中,作者一直说跨内核并行化的原则同样适用于跨机器并行化:所以我只希望这能实现!
  • @seinecle 我觉得没那么简单;)en.wikipedia.org/wiki/Fallacies_of_distributed_computing
  • 看看 Oracle Coherence(商业),它支持开箱即用。

标签: java parallel-processing java-8 cluster-computing java-stream


【解决方案1】:

Spark 似乎可以做你想做的事,即在节点上分配工作。 dsl 看起来类似于 java 8 流。 您还可以查看 akka 流。使用 akka 流不允许您开箱即用地做您想做的事情,但它为您提供了一个工具箱来帮助您使用漂亮的 dsl。

【讨论】:

    猜你喜欢
    • 2011-05-01
    • 2010-09-05
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2012-07-13
    • 2010-09-16
    • 2017-11-15
    相关资源
    最近更新 更多