如何在eclipse中运行mapreduce程序

clj7thdc  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(328)

我在服务器上有一个hadoop环境,现在我在本地pc上开发,我在eclipse中编写了一个mapreduce类(只覆盖mapper类),并且在main方法中设置了相应的配置,现在我想在eclipse中运行我的程序,但是在“debug as:junit test”中遇到了一个问题,错误信息如下:
java.lang.exception:方法main不应该有参数。。。。。。

java虚拟机启动器

找不到主类:TestMapReducedCodeAndCompressSelfSetting.class。程序将退出。

66bbxpm5

66bbxpm51#

要在windows机器上运行eclipse中的map reduce,需要下载hadoop-7682java文件。在conf文件中引用这个文件,如下所示。
config.set(“fs.file.impl”,“com.assignment.winlocalfilesystem”);
这里winlocalfilesystem是java类。
附上一个样本代码供您参考。

Configuration config = new Configuration();
    config.set("mapreduce.input.keyvaluelinerecordreader.key.value.separator", " ");
    config.set("mapred.textoutputformat.separator", " --> ");
    config.set("fs.file.impl", "com.assignment.WinLocalFileSystem");

    String inputPath="In\\VISA_Details.csv";
    Path inPath=new Path(inputPath);
    String outputPath = "C:\\Users\\Desktop\\Hadoop Learning\\output\\run1";
    Path outPath=new Path(outputPath);

    Job job = new Job(config,"VISA: Total count on each day");
    job.setInputFormatClass(TextInputFormat.class);
    job.setOutputFormatClass(TextOutputFormat.class);

    job.setMapOutputKeyClass(Text.class);
    job.setMapOutputValueClass(Text.class);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(Text.class);

    job.setMapperClass(VisaMapper.class);
    job.setReducerClass(VisaReducer.class);

    FileInputFormat.setInputPaths(job, inPath );
    FileOutputFormat.setOutputPath(job, outPath);

    System.out.println(job.waitForCompletion(true));

相关问题