编写主程序 编写主类,设置 Mapper 和 Reducer 任务输出的 key 和 value 的类 型,指定自定义分区和数量,打包成 jar 文件时,因为程序引用了 poi 之类的第三方 jar 包,如果用 mvn 不会打包把第三方的 jar 包,所以 在 eclipse 中可以通过导出成 runnable jar file 的方式导出 jar 文件,然 后运行 jar 文件验证结果。 7
时间: 2024-03-22 19:40:27 浏览: 62
Mapper类和Reducer类代码编写所需的全部基本jar包
好的,这是一个关于编写主程序的问题,我来给您讲解一下。
首先,我们需要在主程序中指定 Mapper 和 Reducer 任务输出的 key 和 value 的类型,以及自定义分区和数量等信息。可以定义主程序如下:
```java
public class MyJob {
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
Job job = Job.getInstance(conf, "myJob");
job.setJarByClass(MyJob.class);
job.setMapperClass(MyMapper.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(Text.class);
job.setReducerClass(MyReducer.class);
job.setOutputKeyClass(NullWritable.class);
job.setOutputValueClass(Text.class);
job.setPartitionerClass(MyPartitioner.class);
job.setNumReduceTasks(3);
FileInputFormat.addInputPath(job, new Path("input"));
FileOutputFormat.setOutputPath(job, new Path("output"));
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}
```
其中,`MyMapper` 和 `MyReducer` 分别是 Mapper 和 Reducer 的类名,`Text` 表示输出的 key 和 value 的类型,`MyPartitioner` 是自定义的分区类名,`3` 是需要的分区数量。
接下来,我们需要将程序打包成 jar 文件并运行。在 Eclipse 中,可以通过导出成 Runnable JAR File 的方式导出 jar 文件。具体操作如下:
1. 在 Eclipse 中,选择 File -> Export -> Java -> Runnable JAR file;
2. 在弹出的窗口中,选择需要导出的项目、导出的路径和文件名,并选择 Extract required libraries into generated JAR;
3. 点击 Finish,等待程序导出完成;
4. 在命令行中运行 jar 文件,并指定输入输出路径,例如:`hadoop jar myjob.jar input output`。
运行结束后,可以在输出路径中查看生成的结果文件。
希望这个解答对您有所帮助。
阅读全文