[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运行的jarjob.setJarByClass(jobClazz);//设置整个程序的输入FileInputFormat.setInputPaths(job, inputpath);job.setInputFormatClass(inputFormat);//就是设置如何将输入文件解析成一行一行内容的解析类//设置mapperjob.setMapperClass(mapperClass);job.setMapOutputKeyClass(mapKeyClass);job.setMapOutputValueClass(mapValueClass);//设置整个程序的输出outputpath.getFileSystem(conf).delete(outputpath, true);//如果当前输出目录存在,删除之,以避免.FileAlreadyExistsExceptionFileOutputFormat.setOutputPath(job, outputpath);job.setOutputFormatClass(outputFormat);//设置reducer,如果有才设置,没有的话就不用设置if (null != reducerClass) {job.setReducerClass(reducerClass);job.setOutputKeyClass(outkeyClass);job.setOutputValueClass(outvalueClass);}return job;}
}

MapReduce之Job工具类开发相关推荐

  1. 【JDBC】JDBCUtils工具类开发

    [JDBC]JDBCUtils工具类开发 1.JDBCUtils工具类开发 2.使用JdbcUtils工具类测试DML语句 3.使用JdbcUtils工具类测试查询语句 1.JDBCUtils工具类开 ...

  2. 号称全网最快的数据库连接池HikariCP的工具类开发-HikariCPUtils

    Hikari 来自日文,是"光"的意思.作者估计是为了借助这个词来暗示这个CP速度飞快! 这个产品的口号是"快速.简单.可靠". 不再过多介绍了,有兴趣的朋友可 ...

  3. Boost 库中的实用工具类使用入门

    简介: 实用工具类开发和维护会耗费程序员的时间.Boost 通过提供几个高质量的库,从而简化了此过程,您可以将这些库轻松集成到现有的代码库中.本文简单概述一些较流行的 Boost 实用工具类,并帮助您 ...

  4. 【转】 Android快速开发系列 10个常用工具类 -- 不错

    原文网址:http://blog.csdn.net/lmj623565791/article/details/38965311 转载请标明出处:http://blog.csdn.net/lmj6235 ...

  5. Android旋转视频工具类,Android开发实现的IntentUtil跳转多功能工具类【包含视频、音频、图片、摄像头等操作功能】...

    本文实例讲述了Android开发实现的IntentUtil跳转多功能工具类.分享给大家供大家参考,具体如下: 说明:此工具类是本人开发中总结下来的,还有其它的跳转亲给我留言,希望大家一起把这个工具类打 ...

  6. Android开发之使用Handler封装下载图片工具类(源代码分享)

    如果每下载一张图片,就得重写一次Http协议,多线程的启动和handler的信息传递就显得太麻烦了,我们直接来封装一个工具类,便于我们以后在开发时随时可以调用. (1)在清单文件添加权限 <us ...

  7. Android开发常用工具类

    来源于http://www.open-open.com/lib/view/open1416535785398.html 主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前 ...

  8. Java开发小技巧(五):HttpClient工具类

    前言 大多数Java应用程序都会通过HTTP协议来调用接口访问各种网络资源,JDK也提供了相应的HTTP工具包,但是使用起来不够方便灵活,所以我们可以利用Apache的HttpClient来封装一个具 ...

  9. android dialog 隐藏状态栏_Android开发不得不收集的工具类集合

    嗨,你终于来啦 ~ 等你好久啦~ 喜欢的小伙伴欢迎关注,我会定期分享Android知识点及解析,还会不断更新的BATJ面试专题,欢迎大家前来探讨交流,如有好的文章也欢迎投稿.更新了几天Android基 ...

最新文章

  1. java.sql.SQLException: Data truncation: Truncated incorrect DOUBLE value
  2. mysql with语句_MySQL列举数据库(SHOW DATABASES语句)
  3. 用户报告性能缓慢的解决流程
  4. python 集合
  5. eclipse插件开发_开发Eclipse插件
  6. mysql视图,总结
  7. IM即时通讯项目讲解(二) 自定义实现图片选择GalleryView
  8. ShadowGun shader 解析(1)
  9. 《缠中说禅108课》30:缠中说禅理论的绝对性
  10. JPEG 原理分析及 JPEG 解码器的调试
  11. 【安信可首款4G模组CA-01直连阿里物联网平台①】产品创建
  12. 计算机怎么设置内存数据恢复,相机内存卡数据恢复的操作图解
  13. 前端~javascript~实战案例:网页表白墙/实战案例:简单实现一个备忘录~
  14. 免费的网页截屏API有哪些?
  15. python中的乘方_python乘方运算
  16. 母牛2年生小牛 5年后并死去的算法
  17. 此安装不支持该项目类型
  18. 基于vue2编写的md编辑器-Bytemd
  19. 如何使用装饰设计模式读取指定路径下的纯文本文件的实现代码
  20. Linux -- 项目服务部署学习

热门文章

  1. mysql查出的结果太大 php_如何解决PHP使用mysql_query查询超大结果集超内存问题
  2. jdk8新特性(二)Stream流式操作
  3. python 提取元组中的值_Python中的sqlite3提取与元组中的值相对应的条目 - python
  4. 引用父类成员的关键字是java_[Java] super关键字:引用父类成员
  5. 最新html取消dynsrc属性无效,HTML属性标签2
  6. 超级警探大战悍匪2java_JavaWeb之会话技术
  7. python字典类型可迭代_核心数据类型--字典
  8. linux中pushd和popd用法,在Linux中使用pushd和popd命令操作目录的用法
  9. 数据持久化mysql_Nacos数据持久化到MySQL
  10. 导出csv文件_使用 WeihanLi.Npoi 操作 CSV