分布式作业调度、管理和报告
-
19-09-2019 - |
题
我最近玩了 Hadoop 它对 MapReduce 作业的调度、管理和报告印象深刻。它似乎使新作业的分配和执行变得非常无缝,使开发人员能够专注于其作业的实施。
我想知道Java领域中是否存在一些对于作业的分布式执行来说不容易表达为MapReduce问题的东西?例如:
需要任务协调和同步的工作。例如,它们可能涉及任务的顺序执行,但同时执行某些任务也是可行的:
.-- B --. .--A --| |--. | '-- C --' | Start --| |-- Done | | '--D -------------'
您想要分配但不提供任何输出来减少的 CPU 密集型任务 - 例如图像转换/调整大小。
那么有没有一个Java框架/平台可以提供这样的分布式计算环境呢?或者使用 Hadoop 可以接受/实现这种事情吗?如果是的话,对于此类工作是否有任何模式/指南?
解决方案
我从此发现 春季批次 和 Spring批量集成 这似乎满足了我的许多要求。我会让你知道我的进展如何。
其他提示
看一眼 石英. 。我认为它支持远程管理作业和集群多台机器来运行作业等功能。
我猜您正在寻找一个用于 CPU 密集型任务的工作流程引擎(也知道“科学工作流程”,例如 http://www.extreme.indiana.edu/swf-survey)。但我不确定你希望它的分布程度如何。通常所有工作流引擎都存在“单点故障”。
我相信很多问题都可以表达为map-reduce问题。
对于无法修改以适应结构的问题,您可以考虑使用 Java 来设置自己的结构 执行服务. 。但它仅限于一个 JVM,而且级别相当低。然而,它将允许轻松的协调和同步。
不隶属于 StackOverflow