MapReduce之Job工具类开发
2018-03-07 23:38
211 查看
[toc]
MapReduce之Job工具类开发
在MapReduce程序写Mapper和Reducer的驱动程序时,有很多代码都是重复性代码,因此可以将其提取出来写成一个工具类,后面再写MapReduce程序时都会使用这个工具类。
Job工具类开发
程序代码如下:
package com.uplooking.bigdata.common.utils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.mapreduce.*; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import java.io.IOException; public class MapReduceJobUtil { public static Job buildJob(Configuration conf, Class<?> jobClazz, String inputpath, Class<? extends InputFormat> inputFormat, Class<? extends Mapper> mapperClass, Class<?> mapKeyClass, Class<?> mapValueClass, Path outputpath, Class<? extends OutputFormat> outputFormat, Class<? extends Reducer> reducerClass, Class<?> outkeyClass, Class<?> outvalueClass) throws IOException { String jobName = jobClazz.getSimpleName(); Job job = Job.getInstance(conf, jobName); //设置job运行的jar job.setJarByClass(jobClazz); //设置整个程序的输入 FileInputFormat.setInputPaths(job, inputpath); job.setInputFormatClass(inputFormat);//就是设置如何将输入文件解析成一行一行内容的解析类 //设置mapper job.setMapperClass(mapperClass); job.setMapOutputKeyClass(mapKeyClass); job.setMapOutputValueClass(mapValueClass); //设置整个程序的输出 outputpath.getFileSystem(conf).delete(outputpath, true);//如果当前输出目录存在,删除之,以避免.FileAlreadyExistsException FileOutputFormat.setOutputPath(job, outputpath); job.setOutputFormatClass(outputFormat); //设置reducer,如果有才设置,没有的话就不用设置 if (null != reducerClass) { job.setReducerClass(reducerClass); job.setOutputKeyClass(outkeyClass); job.setOutputValueClass(outvalueClass); } return job; } }
相关文章推荐
- Could not locate executable null 解决办法【在windows环境下开发hadoop2.4.1或者hadoop2.5.2的mapreduce,执行job遇到的一些错误】
- mapreduce的任务切片规划机制、job提交流程、Mapreduce中的分区Partitioner与流量汇总程序开发
- Android开发工具类集合
- 基于MapReduce的HBase开发(续)
- Hadoop MapReduce Job提交后的交互日志
- Hadoop 里MapReduce里 实现多个job任务 包含(迭代式、依赖式、链式)
- Java开发常用工具类之StringUtils
- MapReduce基础开发之十三FileSystem实现本地文件上传
- java开发中常用的数字工具类
- Android开发之Activity管理工具类完整示例
- 使用java MapReduce job 批量导入大额数据到Hbase
- MapReduce基础开发之四参数传递
- Android快速开发系列 10个常用工具类
- Android快速开发系列 10个常用工具类
- 百度地图4.1_1开发教程(7)工具类
- YARN应用程序开发流程(类似于MapReduce On Yarn)本内容版权归(小象学院所有)
- MapReduce job Shuffle 过程的ERROR
- MaxCompute Studio提升UDF和MapReduce开发体验
- Android快速开发系列 10个常用工具类
- Java开发2.0:用Hadoop MapReduce进行大数据分析