我编写了一个使用 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);