gpt4 book ai didi

java - 从 Java 程序运行 Hadoop 作业

转载 作者:行者123 更新时间:2023-12-01 14:59:06 28 4
gpt4 key购买 nike

我正在编写一个分布式系统,并且面临着将其连接到 Hadoop 的问题。这是我的情况:

1) 我有一个分布式系统在 3 台计算机上运行(sys1、sys2、sys3)

2) Sys2和Sys3是两个不同Hadoop集群的MasterNode。这两个Hadoop集群互不相连,各自独立运行。

3) 我的分布式系统由三个部分组成(p1、p2、p3)。

P1 位于 sys1 上,从客户端(客户端是另一个系统)接收 Mappers/Reducers 的源代码。然后 P1 将联系 P2 或 P3 并向他们发送映射器/ reducer 的代码。

4)现在的问题是P2或P3需要在Hadoop上运行作业并将结果发送回P1。

我已经使用hadoop一段时间了,知道如何编写一个简单的mapReduce程序,将其转换为JAR文件并在Hadoop上执行。问题是,在我的例子中,mapReduce 作业的源代码是在执行期间发送的,我无法从中创建 JAR 文件。我需要根据收到的代码创建一个 hadoop 作业并在 hadoop 中运行它。对于如何解决这个问题,我将不胜感激任何建议/建议?

PS。我知道一种解决方案是将接收到的映射/归约代码写入磁盘上的文件,执行所有必需的命令来制作 JAR 文件并从我的 Java 代码(使用运行时实例)中的 shell 中运行作业,然后.. .但我更喜欢能够直接从我的 Java 代码运行该作业,而不是经历上述解决方案的所有可能的麻烦。

最佳答案

使用 JavaCompiler API 怎么样? ?然后,您可以使用 JarOuptputStream 轻松地即时创建 jar 文件。

这是一篇很好的博客文章,解释了 API: JavaBeat

关于java - 从 Java 程序运行 Hadoop 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13931813/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com