【问题标题】:Servlet executes a Hadoop MapReduce job and display resultServlet 执行 Hadoop MapReduce 作业并显示结果
【发布时间】:2013-07-02 00:00:07
【问题描述】:

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

现在我需要我的 servlet 能够执行 mapreduce 程序(或 pig 脚本),并显示 mapreduce 程序返回的结果。有没有办法让 servlet 执行 mapreduce 作业并取回结果?

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

++ 但是,mapreduce 作业(或 pig 脚本)在 HDFS 中产生结果,我不确定如何取回结果并将它们反馈给 servlet。一种对我来说似乎很业余且效率低下的解决方案是再次使用 ProcessBuilder(或 exec)将结果从 HDFS 复制到本地,然后从那里读取结果。

非常感谢您分享的任何建议。

【问题讨论】:

  • 所以你想再写一个Hue

标签: java servlets hadoop mapreduce apache-pig


【解决方案1】:

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

REST url 看起来像

http://something.net:50070/webhdfs/v1/path/to/output

顺便说一句,要提交作业,您还可以使用 oozie 的客户端 api 来提交,而不是“exec”。 Oozie 的客户端 api 要好得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多