运行一个Hadoop Job所需要指定的属性
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所需要指定的属性相关推荐
- 计算机管理没有指定运行,如何限制电脑只运行一个软件?只打开指定软件?
有时候我们处于计算机安全的考虑,会禁止电脑运行某些软件,或者只让电脑运行一个软件,只让电脑打开一个程序,或者只让电脑访问特定网站等.大势至电脑文件防泄漏软件同样集成了这两个功能,可以实现只让电脑安装某 ...
- Mac上运行第一个Hadoop实例
之前转过 一篇文章 ,介绍如何配置伪分布式的Hadoop.不过在Mac上的配置方法和Linux上有一点点区别.另外,本篇还从头介绍了一下创建和运行Hadoop工程的方法. 配置Hadoop 首先确保 ...
- apt-get安装问题:请尝试不指明软件包的名字来运行“apt-get -f install”(也可以指定一个解决办法)。
正在读取软件包列表... 完成 正在分析软件包的依赖关系树... 完成 您可能需要运行"apt-get -f install"来纠正下列错误: 下列的软件包有不能满足的依赖关系: ...
- Amazon EMR(Elastic MapReduce):亚马逊Hadoop托管服务运行架构Hadoop云服务之战:微软vs.亚马逊...
http://s3tools.org/s3cmd Amazon Elastic MapReduce (Amazon EMR)简介 Amazon Elastic MapReduce (Amazon EM ...
- HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo
26 集群使用初步 HDFS的设计思路 l 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: l 在大数据系统中作用: 为各类分布式 ...
- HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo...
26 集群使用初步 HDFS的设计思路 l 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: l 在大数据系统中作用: 为各类分布式 ...
- docker部署python web应用_在 Docker 中运行一个 Python 的 Web 应用
几周前, Elastic Beanstalk声明在AWS云中配置和管理Docker容器.在本文中,我们通过一个简单的注册表单页面应用去理解Docker部署过程,该表单使用Elastic Beansta ...
- vue怎么运行html,怎样运行一个vue.js项目
怎样运行一个vue.js项目? 下载并安装node,安装过程很简单,一路"下一步"就可以了,安装完成之后,打开命令行工具,输入 node -v,如下图,如果出现相应的版本号,则说明 ...
- 一个操作系统的实现(1):分析linux下如何运行一个执行文件
分类: 操作系统实现 本文只为整理思路,供自己日后参考.现在就从从一个执行文件a.out的运行开始,自上而下地分析linux是如何运行一个执行文件的. 1.首先,需要了解一下a.out这个目标文件.a ...
最新文章
- poj3508(高精度模拟减法)
- 能进这个Java组织的都是大神,现在只有三个中国人
- mysql table combine_Mysql系列-性能优化神器EXPLAIN使用介绍及分析
- make -j 的并行任务个数选择
- 为什么说Java是2021年最值得学的技术?
- java wav 切割_WAV音频定长分段切取
- hadoop SecondNamenode
- 查看eclipse 内存使用情况
- 瞧一瞧,看一看,微信应用号(小程序)
- python定时重新初始化类_如何重新初始化类对象
- 账户余额“蒸发”暴露网银安全哪些漏洞?
- Python3使用BFS实现湖北省到全国省级行政区
- 项目中常用字典表 —— 各个国家简称映射
- PyCharm创造起名自动生成起名·创造者·日期·时间模板
- 苹果智能家居—HomeKit,带给您不一样的生活体验
- 微信查询四六级成绩代码
- minecraft pythonapl_Minecraft API
- Android判断是否为模拟器(实测夜神通过)
- 利用OBS和手机摄像头录课(录屏/录像)时的方法与参数设置
- 【12】MV剪辑案例【13】宣传片剪辑案例
热门文章
- MySQL分区表概念以及优缺点
- Leecode 260. 只出现一次的数字 III——Leecode每日一题系列
- android文件加解密开发,Android文件加密解密的实现
- linux vi模式替换,linux基础命令之:vi模式下查找和替换
- 模拟inode号耗尽、EXT和XFS类型文件恢复(详细图解)
- 分级显示HTML,SSM框架下,以tree结构分级显示数据
- ale插件 vim_Vim之代码异步检测插件 ALE -- 实时检查verilog等代码的正确性
- android内容提供者_挖穿Android第三十九天
- 2021年东港二中高考成绩查询,辽宁省东港二中2021届英语高考模拟试卷1(新课改原创2020版,供2021年课改省份考生使用)...
- h.264 html播放,浏览器 – 我如何播放H264视频?