Hadoop实现AbstractJob简化Job设置
来源:互联网 发布:淘宝买家怎么升心快 编辑:程序博客网 时间:2024/06/11 11:34
在 hadoop 中编写一个job一般都是采用下面的方式:
Job job=new Job();job.setXxx();...
这样感觉代码很多,而且参数还不好控制。比如,我想对输入的参数进行控制,还要自己写一些控制解析之类的代码,如下:
而且上面只是大概的判断下,没有很精确的判断。有没有比较好的方法可以不用设置,而且减少代码量呢?
其实可以实现Mahout中的AbstractJob类即可,如下:
package mahout.fansy.bayes.transform;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.Mapper;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;import org.apache.hadoop.util.ToolRunner;import org.apache.mahout.common.AbstractJob;import org.apache.mahout.math.VectorWritable;public class TFText2VectorWritable extends AbstractJob {@Overridepublic int run(String[] args) throws Exception {addInputOption(); addOutputOption(); addOption("splitCharacter","sc", "vector split character,default is ','", ","); if (parseArguments(args) == null) { return -1; } Path input = getInputPath(); Path output = getOutputPath(); String sc=getOption("splitCharacter"); Job job=prepareJob(input,output,FileInputFormat.class,Mapper.class,LongWritable.class,Text.class, null, Text.class,VectorWritable.class,SequenceFileOutputFormat.class); job.getConfiguration().set("sc", sc); if(job.waitForCompletion(true)){ return 0; }return -1;}/** *实现AbstractJob * @param args * @throws Exception */public static void main(String[] args) throws Exception {String[] arg=new String[]{"-i","safdf","-sc","scccccccc","-o","sdf"};ToolRunner.run(new Configuration(), new TFText2VectorWritable(),arg);}}
红色方框里面的内容,即是设置的参数;
同时调用prepareJob方法可以简化Job的参数设置。比如设置Mapper、MapperOutPutKey等等都要一行代码,现在全部只需一行即可;如果要设置参数以供Mapper和Reducer中使用,可以使用job.getConfiguration().set("sc", sc)来进行设置。
转自:http://blog.csdn.net/fansy1990
- Hadoop实现AbstractJob简化Job设置
- Hadoop输入参数设置--AbstractJob简化
- ERROR common.AbstractJob: Unexpected SIMILARITY_EUCLIDEAN_DISTANCE while processing Job-Specific Opt
- 设置hadoop Job允许map task失败的比例
- Hadoop使用JobControl设置job之间的依赖关系
- 设置hadoop Job允许map task失败的比例
- 设置hadoop Job允许map task失败的比例
- Hadoop:hadoop.job.ugi
- Hadoop:hadoop.job.ugi
- Hadoop: hadoop.job.ugi
- Hadoop Job Tuning
- Hadoop Job Tuning
- hadoop job error-1
- Hadoop Job Scheduling
- Hadoop Job Tuning
- Hadoop Job Tuning
- hadoop job 重要性能参数
- Hadoop Job Tuning
- Struts2 学习笔记18 拦截器原理分析
- Jquery UI学习笔记(3)
- ZOJ 2850和ZOJ 1414
- 递归创建二叉树 java实现
- windows下eclipse跑junit报错:CreateProcess error=206
- Hadoop实现AbstractJob简化Job设置
- Ext.Function.flexSetter
- 液晶显示器 选购攻略
- CSS定位问题
- Linux cp命令出现omitting directory
- 拿rails4学《应用rails进行web敏捷开发 第四版》会遇到的问题
- CentOS PPTP VPN服务器快速安装教程
- hdu 4550 卡片游戏
- android sqlite中在同一个数据库中建两个表的问题