Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java程序运行Hadoop作业_Java_Hadoop_Mapreduce - Fatal编程技术网

从Java程序运行Hadoop作业

从Java程序运行Hadoop作业,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我正在编写一个分布式系统,并且面临着将其连接到Hadoop的问题。我的情况如下: 1) 我有一个分布式系统运行在3台计算机上(sys1、sys2、sys3) 2) Sys2和Sys3是两个不同Hadoop集群的主节点。这两个Hadoop集群互不连接,各自独立运行 3) 我的分布式系统有三个部分(p1、p2、p3) P1位于sys1上,从客户端接收映射器/还原器的源代码(客户端是另一个系统)。P1随后将联系P2或P3,并向他们发送映射器/还原器的代码 4) 现在的问题是P2或P3需要在Hadoop

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

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

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

3) 我的分布式系统有三个部分(p1、p2、p3)

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

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

我使用hadoop已经有一段时间了,我知道如何编写一个简单的mapReduce程序,将其转换为JAR文件并在hadoop上执行。问题是,在我的例子中,mapReduce作业的源代码是在执行期间发送的,我无法从中生成JAR文件。我需要用收到的代码制作一个hadoop作业,并在hadoop中运行它。如果您能就如何解决这个问题提出建议,我将不胜感激

另外,我知道一个解决方案是将接收到的map/Reduce代码写入磁盘上的文件,执行所有必需的命令以生成JAR文件,并从我的Java代码(使用运行时实例)在shell中运行作业,然后。。。但是,我更希望能够直接从Java代码运行作业,而不必经历上述解决方案可能出现的所有问题。

如何使用?然后,您可以轻松地使用

下面是一篇很好的解释API的博客文章:

编译完jar后,应该可以通过Hadoop的Java API来帮助运行作业。谢谢大家。我终于能够成功地使用JavaCompilerAPI动态编译代码,并从中生成一个JAR文件。谢谢