Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hadoop,运行任务_Java_Hadoop - Fatal编程技术网

Java Hadoop,运行任务

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

如何以编程方式将任务添加到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.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应用程序。实际上,此代码段可以在任何应用程序中使用。