Java Hadoop,运行任务
如何以编程方式将任务添加到hadoop并在Java应用程序中运行?Java Hadoop,运行任务,java,hadoop,Java,Hadoop,如何以编程方式将任务添加到hadoop并在Java应用程序中运行? 有什么想法吗?谢谢。在java中,这非常简单: Configuration conf = new Configuration(); Job job = new Job(conf); job.setJarByClass(YOUR_MAPPER.class); job.setMapperClass(YOUR_MAPPER.class); job.setReducerClass(YOUR_REDUCER.class); job.set
有什么想法吗?谢谢。在java中,这非常简单:
Configuration conf = new Configuration();
Job job = new Job(conf);
job.setJarByClass(YOUR_MAPPER.class);
job.setMapperClass(YOUR_MAPPER.class);
job.setReducerClass(YOUR_REDUCER.class);
job.setOutputKeyClass(YOUR_OUTPUT_KEY.class);
job.setOutputValueClass(YOUR_OUTPUT_VALUE.class);
FileInputFormat.addInputPath(job, new Path("YOUR_INPUT_PATH"));
FileOutputFormat.setOutputPath(job, new Path("YOUR_OUTPUT_PATH"));
System.exit(job.waitForCompletion(true) ? 0 : 1);
如果需要将其提交到群集,则必须将以下值添加到配置对象:
conf.set("fs.default.name", "hdfs://localhost:9000");
conf.set("mapred.job.tracker", "localhost:9001");
您应该将端口和主机名替换为集群conf目录中的配置值。您可以向Hadoop提交作业,并让它们在集群上的Java应用程序中运行。这就是你的意思吗?是的,这就是我想做的。但是怎么做呢?但是,为了在hadoop上执行作业,我每次都必须输入“bin/hadoop-jar-hadoop.jar-main.UrlFetch-input-output”。我想从我的web应用程序运行作业(例如,解析许多网站),有时控制完成并将结果传递给我的web应用程序。实际上,此代码段可以在任何应用程序中使用。