1、设置job的基础属性

Job job = new Job();
job.setJarByClass(***.class);
job.setJobName(“job name”);
job.setNumReduce(2);

2、设置Map与Reudce的类

job.setMappgerClass(*.class);
job.setReduceClass(*.class);

3、设置Job的输入输出格式

 void    setInputFormatClass(Class<? extends InputFormat> cls)void    setOutputFormatClass(Class<? extends OutputFormat> cls) 

前者默认是TextInputFormat,后者是FileOutputFormat。

4、设置Job的输入输出路径
当输入输出是文件时,需要指定路径。

InputFormat:
static void    addInputPath(JobConf conf, Path path)FileOutputFormat:
static void    setOutputPath(Job job, Path outputDir)

当输入格式是其它类型时,则需要指定相应的属性,如Gora的DataSource。

5、设置map与reduce的输出键值类型
主要有以下4个类

 void    setOutputKeyClass(Class<?> theClass)void    setOutputValueClass(Class<?> theClass)void    setMapOutputKeyClass(Class<?> theClass)void    setMapOutputValueClass(Class<?> theClass) 

(1)前面2个方法设置整个job的输出,即reduce的输出。默认情况下,map的输出类型与reduce一致,若二者不一致,则需要通过后面2个方法来指定map的输出类型。
(2)关于输入类型的说明:reduce的输入类型由output的输出类型决定。map的输入类型由输入格式决定,如输入格式是FileInputFormat,则输入KV类型为LongWriterable与Text。

6、运行程序

job.waitForCompletion()。

见以下示例:

package org.jediael.hadoopdemo.maxtemperature;import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;public class MaxTemperature {public static void main(String[] args) throws Exception {if (args.length != 2) {System.err.println("Usage: MaxTemperature <input path> <output path>");System.exit(-1);}//1、设置job的基础属性Job job = new Job();job.setJarByClass(MaxTemperature.class);job.setJobName("Max temperature");//2、设置Map与Reudce的类job.setMapperClass(MaxTemperatureMapper.class);job.setReducerClass(MaxTemperatureReducer.class);//4、设置map与reduce的输出键值类型job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);//5、设置输入输出路径FileInputFormat.addInputPath(job, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));//6、运行程序System.exit(job.waitForCompletion(true) ? 0 : 1);}
}

运行一个Hadoop Job所需要指定的属性相关推荐

  1. 计算机管理没有指定运行,如何限制电脑只运行一个软件?只打开指定软件?

    有时候我们处于计算机安全的考虑,会禁止电脑运行某些软件,或者只让电脑运行一个软件,只让电脑打开一个程序,或者只让电脑访问特定网站等.大势至电脑文件防泄漏软件同样集成了这两个功能,可以实现只让电脑安装某 ...

  2. Mac上运行第一个Hadoop实例

    之前转过 一篇文章 ,介绍如何配置伪分布式的Hadoop.不过在Mac上的配置方法和Linux上有一点点区别.另外,本篇还从头介绍了一下创建和运行Hadoop工程的方法. 配置Hadoop 首先确保  ...

  3. apt-get安装问题:请尝试不指明软件包的名字来运行“apt-get -f install”(也可以指定一个解决办法)。

    正在读取软件包列表... 完成 正在分析软件包的依赖关系树... 完成 您可能需要运行"apt-get -f install"来纠正下列错误: 下列的软件包有不能满足的依赖关系: ...

  4. Amazon EMR(Elastic MapReduce):亚马逊Hadoop托管服务运行架构Hadoop云服务之战:微软vs.亚马逊...

    http://s3tools.org/s3cmd Amazon Elastic MapReduce (Amazon EMR)简介 Amazon Elastic MapReduce (Amazon EM ...

  5. HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo

    26 集群使用初步 HDFS的设计思路 l 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: l 在大数据系统中作用: 为各类分布式 ...

  6. HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo...

    26 集群使用初步 HDFS的设计思路 l 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: l 在大数据系统中作用: 为各类分布式 ...

  7. docker部署python web应用_在 Docker 中运行一个 Python 的 Web 应用

    几周前, Elastic Beanstalk声明在AWS云中配置和管理Docker容器.在本文中,我们通过一个简单的注册表单页面应用去理解Docker部署过程,该表单使用Elastic Beansta ...

  8. vue怎么运行html,怎样运行一个vue.js项目

    怎样运行一个vue.js项目? 下载并安装node,安装过程很简单,一路"下一步"就可以了,安装完成之后,打开命令行工具,输入 node -v,如下图,如果出现相应的版本号,则说明 ...

  9. 一个操作系统的实现(1):分析linux下如何运行一个执行文件

    分类: 操作系统实现 本文只为整理思路,供自己日后参考.现在就从从一个执行文件a.out的运行开始,自上而下地分析linux是如何运行一个执行文件的. 1.首先,需要了解一下a.out这个目标文件.a ...

最新文章

  1. poj3508(高精度模拟减法)
  2. 能进这个Java组织的都是大神,现在只有三个中国人
  3. mysql table combine_Mysql系列-性能优化神器EXPLAIN使用介绍及分析
  4. make -j 的并行任务个数选择
  5. 为什么说Java是2021年最值得学的技术?
  6. java wav 切割_WAV音频定长分段切取
  7. hadoop SecondNamenode
  8. 查看eclipse 内存使用情况
  9. 瞧一瞧,看一看,微信应用号(小程序)
  10. python定时重新初始化类_如何重新初始化类对象
  11. 账户余额“蒸发”暴露网银安全哪些漏洞?
  12. Python3使用BFS实现湖北省到全国省级行政区
  13. 项目中常用字典表 —— 各个国家简称映射
  14. PyCharm创造起名自动生成起名·创造者·日期·时间模板
  15. 苹果智能家居—HomeKit,带给您不一样的生活体验
  16. 微信查询四六级成绩代码
  17. minecraft pythonapl_Minecraft API
  18. Android判断是否为模拟器(实测夜神通过)
  19. 利用OBS和手机摄像头录课(录屏/录像)时的方法与参数设置
  20. 【12】MV剪辑案例【13】宣传片剪辑案例

热门文章

  1. MySQL分区表概念以及优缺点
  2. Leecode 260. 只出现一次的数字 III——Leecode每日一题系列
  3. android文件加解密开发,Android文件加密解密的实现
  4. linux vi模式替换,linux基础命令之:vi模式下查找和替换
  5. 模拟inode号耗尽、EXT和XFS类型文件恢复(详细图解)
  6. 分级显示HTML,SSM框架下,以tree结构分级显示数据
  7. ale插件 vim_Vim之代码异步检测插件 ALE -- 实时检查verilog等代码的正确性
  8. android内容提供者_挖穿Android第三十九天
  9. 2021年东港二中高考成绩查询,辽宁省东港二中2021届英语高考模拟试卷1(新课改原创2020版,供2021年课改省份考生使用)...
  10. h.264 html播放,浏览器 – 我如何播放H264视频?