Java Servlet执行Hadoop MapReduce作业并显示结果

Java Servlet执行Hadoop MapReduce作业并显示结果,java,servlets,hadoop,mapreduce,apache-pig,Java,Servlets,Hadoop,Mapreduce,Apache Pig,我有一个tomcat服务器,有几个servlet,一个mapreduce作业(使用hadoop编写),还安装了pig,所有这些都与hadoop位于同一集群中 现在我需要servlet能够执行mapreduce程序(或pig脚本),并显示mapreduce程序返回的结果。是否需要创建一个servlet来执行mapreduce作业并返回结果 ++我认为,通过简单地调用exec或ProcessBuilder,就可以让servlet执行mapreduce作业(或pig脚本)。如果我错了,请在这里纠正我

我有一个tomcat服务器,有几个servlet,一个mapreduce作业(使用hadoop编写),还安装了pig,所有这些都与hadoop位于同一集群中

现在我需要servlet能够执行mapreduce程序(或pig脚本),并显示mapreduce程序返回的结果。是否需要创建一个servlet来执行mapreduce作业并返回结果

++我认为,通过简单地调用exec或ProcessBuilder,就可以让servlet执行mapreduce作业(或pig脚本)。如果我错了,请在这里纠正我

++但是,mapreduce作业(或pig脚本)会在HDFS中生成结果,因此我不确定如何返回结果并将其反馈给servlet。一种解决方案,对我来说似乎是业余且低效的,就是再次使用ProcessBuilder(或exec)将结果从HDFS复制到本地,并从本地读取结果


如果您能提出任何建议,我将不胜感激

您可以使用hdfs的REST接口从hdfs获取文件

剩下的url看起来像

http://something.net:50070/webhdfs/v1/path/to/output
顺便说一句,要提交作业,您还可以使用oozie的客户端api来提交,而不是“exec”。Oozie的客户端api要好得多。

那么你想再写一个吗?