我有3个.java文件
1) Mapper.java
2) Reducer.java
3) Driver.java
我正在尝试使用Driver类在命令行编译hadoop mapreduce程序,但它显示如下错误
Driver.java:39: error: cannot find symbol
job.setMapperClass(Mapper.class);
^
symbol: class Mapper
location: class Driver
Driver.java:40: error: cannot find symbol
job.setReducerClass(Reducer.class);
如何解决上述错误.Below是Driver类中的run方法
public boolean runnerParsing(String inputPath, String outputPath) throws IOException, ClassNotFoundException, InterruptedException {
Configuration conf = new Configuration();
Job job = new Job(conf, "Parsing");
job.setJarByClass(Driver.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
job.setMapperClass(Mapper.class);
job.setReducerClass(Reducer.class);
//job.setNumReduceTasks(0);
job.setInputFormatClass(TextInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);
FileInputFormat.addInputPath(job, new Path(inputPath));
FileOutputFormat.setOutputPath(job, new Path(outputPath));
return job.waitForCompletion(true);
}
答案 0 :(得分:0)
这就是我的想法:
您是否可以添加mapper和reducer类以进行提问?
答案 1 :(得分:0)
您需要编译所有java文件,如下所示:
javac -classpath /usr/local/hadoop/hadoop-core-1.2.1.jar -d compiled_classes Driver.java Mapper.java Reducer.java
请注意,根据您安装Hadoop的方式,您的类路径值可能会略有变化。
如果您需要进一步的帮助,请查看本文可能对您有所帮助: http://www.bigdatatutes.com/getting-started-with-big-data/
答案 2 :(得分:0)
在Garry Tukington和Gabriele Modena撰写的“使用Hadoop的大数据”的第3章中,有模式Top N的示例,其中TopTenHashTag类的驱动程序代码中有此指令,并引用了另一个Java类: / p>
job.setJarByClass(HashTagCount.class);
在我的PC中,两个文件HashTagCount.java和TopTenHashTag.java都位于:/ home / hduser / playground / src
我的编译命令如下(并且对我有用):
javac -classpath $ HADOOP_HOME / share / hadoop / common / lib / activation-1.1.jar:$ HADOOP_HOME / share / hadoop / common / hadoop-common-2.7.1.jar:$ HADOOP_HOME / share / hadoop / common / lib / :/ usr / hadoop / hadoop-2.7.1 / share / hadoop / mapreduce / -d操场/ classes7操场/src/TopTenHashTag.java \ Playground / src / HashTagCount.java
这是创建.jar文件的命令: jar -cvf游乐场/TopTenHashTag.jar -C游乐场/ classes7/。
最后这是启动mapreduce作业的命令:
hadoop jar /home/hduser/playground/TopTenHashTag.jar com.learninghadoop2.mapreduce.TopTenHashTag / user / hduser / inxYZ / outHashXYZ