2013-07-02 34 views
0

我有一個Tomcat服務器,有幾個小服務程序,一個MapReduce工作(使用Hadoop寫的),也有安裝了豬,都坐在同一個集羣,其中的Hadoop在不在。的Servlet執行的Hadoop MapReduce工作,並顯示結果

現在我需要我的servlet能夠執行mapreduce程序(或豬腳本),並顯示mapreduce程序返回的結果。無論如何要讓servlet執行mapreduce作業並找回結果嗎?

++我認爲這是可能使我的servlet通過簡單地調用exec或的ProcessBuilder執行MapReduce工作(或豬腳本)。如果我錯了,請在這裏糾正我。

++然而,MapReduce工作(或豬腳本)產生在HDFS的結果,這就是我不確定如何取回結果,並給他們回servlet。一種對我來說似乎是業餘和低效的解決方案是再次使用ProcessBuilder(或exec)將結果從HDFS複製到本地,並從那裏讀取結果。

非常感謝您可能會分享的任何建議。

+0

所以你想寫另一個[Hue](https://github.com/cloudera/hue)? – zsxwing

回答

1

您可以使用REST接口HDFS從HDFS得到的文件。

其餘網址看起來可能就像

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

BTW,提交你也可以使用Oozie的的客戶端API提交的,而不是「執行」的作業。 Oozie的客戶端API更好。