gpt4 book ai didi

java - Hadoop Java程序始终以独立模式运行

转载 作者:可可西里 更新时间:2023-11-01 16:34:07 24 4
gpt4 key购买 nike

我编写了一个使用 Hadoop 的 Java 程序。我使用“java -jar prog.jar”从命令行执行我的程序,我可以看到它以独立模式运行。我可以这么说,因为 JobTracker 和 TaskTracker 守护进程不需要运行我的程序就能成功执行。如果我使用“hadoop jar prog.jar”(关闭 map/reduce 守护进程)执行我的程序,它自然不会工作。

我希望我的 java 程序以伪分布式模式执行,但我感觉它找不到配置文件。我尝试将其执行为“java -cp/usr/hadoop-1.1.1/conf -jar prog.jar”,以便将其指向配置文件所在的位置,但仍然没有骰子。

我感觉类路径有问题。我是菜鸟,所以任何帮助表示赞赏。谢谢,

这是我使用配置对象开始工作的代码片段。

    Configuration config = new Configuration();     
Job job = new Job(config);
job.setJobName("Test");
job.setJarByClass(MyMapper.class);

job.setMapperClass(MyMapper.class);
job.setReducerClass(MyReducer.class);

job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);

job.setMapOutputKeyClass(LongWritable.class);
job.setMapOutputValueClass(Text.class);

job.setInputFormatClass(MyInputFormat.class);

FileInputFormat.addInputPath(job, new Path("hdfs://hadoop0.hq.net:54310/" + saFileName));
FileOutputFormat.setOutputPath(job, new Path("hdfs://hadoop0.hq.net:54310/" + saFileName + "-output"));

job.waitForCompletion(true);

最佳答案

I execute my program from the command line using "java -jar prog.jar" and I can see that it runs in stand alone mode.

这不是真的。 java -jar 命令用于运行独立的 java 应用程序。要运行 Hadoop 作业,您需要使用您提到的 hadoop jar 命令。

在运行任何任务之前,您需要在您的环境中设置 Hadoop。如果您还没有准备好,可以按照 this post 中的步骤进行操作或 offical documents .您可以通过运行 Hadoop 发行版提供的一些示例来验证设置:

bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'

如果上述命令运行成功,您就可以尝试自己的任务了。

编辑:您可以使用 Runtime.exec 调用 hadoop jar,如下所示:

Process p = Runtime.getRuntime().exec(cmd);
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = input.readLine();
while (line != null) {
// process output of the task
// ...
}
input.close();
// wait for the task complete
p.waitFor();
int ret = p.exitValue();
// process the task result
// ...

关于java - Hadoop Java程序始终以独立模式运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14897528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com