java - Run Hadoop MapReduce Job from Dynamic Web Project on WildFly Servlet -
i have installed hadoop 2.2.0 on ubuntu 13.10 in pseudo-distributed mode in pc starts , runs correctly (only 1 datanode). i'm using eclipse kepler v4.3 maven plugin develop hadoop program , dynamic web project (web project without maven).
i have hadoop project called "hadwork" created hadwork.jar (right click on project, export, runnable jar file, option "extract required libraries generated jar"). works correctly when run job command line with: "hadoop jar hadwork.jar parameter1 parameter2 parameter3" , see correctly work progress on terminal.
now want run job dynamic web application deployed on wildfly 8.0 application server (eclipse configured run project on correct server wildfly in standalone mode). i'm writing servlet "servlethadooptest.java" don't understand how run job web application, libraries (hadoop libraries jar? hadwork jar?) need load , load it. can't use command "hadoop jar hadwork.jar parameter1 parameter2 parameter3" in servlet directly. in short, want: when click on button "startjob" on page "index.jsp", job hadwork begins work , shows "working job.." message in web page, possibly showing url track job. call mapreduce job servlet. can load hadwork.jar on application server (if so, where?).
i'm looking informations on google have not found answers yet..
there 2 options want do:
1) wrap command line call hadoop within servlet. that's super ugly easiest set up, not have mix web application code base , hadoop. here's example on how that:
string[] cmd = new string[] { <hadoop command goes here> }; process process = runtime.getruntime().exec(cmd);
2) other, better alternative package hadoop code , hadoop dependencies in servlet. stringly suggest use maven dependecy management. have following run map reduce job servlet: - package hadoop , job jar - create configuration object reflects cluster (especially dfs , mapred hosts) - implement tool
Comments
Post a Comment