本文共 2608 字,大约阅读时间需要 8 分钟。
通过SDK提交MR作业的步骤如下:
步骤三:
对main方法进行改进 ,主要包括两部分:package com.aliyun.odps.examples.mr;import com.aliyun.odps.Odps;import com.aliyun.odps.account.Account;import com.aliyun.odps.account.AliyunAccount;import com.aliyun.odps.data.TableInfo;import com.aliyun.odps.mapred.JobClient;import com.aliyun.odps.mapred.MapperBase;import com.aliyun.odps.mapred.ReducerBase;import com.aliyun.odps.mapred.RunningJob;import com.aliyun.odps.mapred.conf.JobConf;import com.aliyun.odps.mapred.conf.SessionState;import com.aliyun.odps.mapred.utils.InputUtils;import com.aliyun.odps.mapred.utils.OutputUtils;import com.aliyun.odps.mapred.utils.SchemaUtils;/* * 该示例展示了MapReduce程序中的基本结构 * */public class WordCount { public static class TokenizerMapper extends MapperBase { } /** * A combiner class that combines map output by sum them. */ public static class SumCombiner extends ReducerBase { } /** * A reducer class that just emits the sum of the input values. */ public static class SumReducer extends ReducerBase { } public static void main(String[] args) throws Exception { // /额外添加的代码// String endpoint = "your_endpoint"; String accessId = "your_access_id"; String accessKey = "your_access_key"; String project = "your_project"; Account account = new AliyunAccount(accessId, accessKey); Odps odps = new Odps(account); odps.setDefaultProject(project); odps.setEndpoint(endpoint); SessionState.get().setOdps(odps); SessionState.get().setLocalRun(false); // /// JobConf job = new JobConf(); job.setMapperClass(TokenizerMapper.class); job.setCombinerClass(SumCombiner.class); job.setReducerClass(SumReducer.class); // /额外添加的代码// // 资源名称列表,多个资源用逗号分隔 job.setResources("test13.jar"); // // job.setMapOutputKeySchema(SchemaUtils.fromString("word:string")); job.setMapOutputValueSchema(SchemaUtils.fromString("count:bigint")); InputUtils.addTable(TableInfo.builder().tableName("wc_in").build(), job); OutputUtils.addTable(TableInfo.builder().tableName("wc_out").build(), job); RunningJob rj = JobClient.runJob(job); rj.waitForCompletion(); }}
转载地址:http://rkbbl.baihongyu.com/