烙印99
从Java Web应用程序(Servlet)调用MapReduce作业您可以使用Java API从Web应用程序调用MapReduce作业。这是一个从Servlet调用MapReduce作业的小例子。步骤如下:步骤1:首先创建一个MapReduce驱动程序servlet类。同时开发地图并减少服务。这是一个示例代码片段:CallJobFromServlet.java public class CallJobFromServlet extends HttpServlet { protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { Configuration conf = new Configuration(); // Replace CallJobFromServlet.class name with your servlet class Job job = new Job(conf, " CallJobFromServlet.class"); job.setJarByClass(CallJobFromServlet.class); job.setJobName("Job Name"); job.setOutputKeyClass(Text.class); job.setOutputValueClass(Text.class); job.setMapperClass(Map.class); // Replace Map.class name with your Mapper class job.setNumReduceTasks(30); job.setReducerClass(Reducer.class); //Replace Reduce.class name with your Reducer class job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(Text.class); job.setInputFormatClass(TextInputFormat.class); job.setOutputFormatClass(TextOutputFormat.class); // Job Input path FileInputFormat.addInputPath(job, new Path("hdfs://localhost:54310/user/hduser/input/")); // Job Output path FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:54310/user/hduser/output")); job.waitForCompletion(true); }}步骤2:将所有相关的jar文件(hadoop,特定于应用程序的jars)文件放置在Web服务器(例如Tomcat)的lib文件夹中。这对于访问Hadoop配置是必需的(hadoop'conf'文件夹具有配置xml文件,即core-site.xml,hdfs-site.xml等)。只需将罐子从hadoop lib文件夹复制到Web服务器(tomcat)lib目录。jar名称列表如下:1. commons-beanutils-1.7.0.jar2. commons-beanutils-core-1.8.0.jar3. commons-cli-1.2.jar4. commons-collections-3.2.1.jar5. commons-configuration-1.6.jar6. commons-httpclient-3.0.1.jar7. commons-io-2.1.jar8. commons-lang-2.4.jar9. commons-logging-1.1.1.jar10. hadoop-client-1.0.4.jar11. hadoop-core-1.0.4.jar12. jackson-core-asl-1.8.8.jar13. jackson-mapper-asl-1.8.8.jar14. jersey-core-1.8.jar步骤3:将您的Web应用程序部署到Web服务器(在Tomcat的“ webapps”文件夹中)。步骤4:创建一个jsp文件,并将servlet类(CallJobFromServlet.java)链接到表单操作属性中。这是一个示例代码片段:Index.jsp
Trigger Hadoop Job from Web Page