2024年12月25日 MapReduce API 极客笔记
在这个部分中,我们关注MapReduce API。在这里,我们学习MapReduce编程中使用的类和方法。
在MapReduce中,Mapper类的作用是将输入的键值对映射到一组中间键值对。它将输入记录转换为中间记录。
这些与给定输出键相关联的中间记录将传递给Reducer以产生最终输出。
| 方法 | 描述 | 
|---|---|
| void map(KEYIN key, VALUEIN value, Context context) | 此方法对输入分片中的每个键值对仅调用一次。 | 
| void run(Context context) | 此方法可以被重写以控制Mapper的执行。 | 
| void setup(Context context) | 此方法仅在任务开始时调用一次。 | 
在MapReduce中,Reducer类的作用是减少中间值的集合。通过JobContext.getConfiguration()方法,它的实现可以访问作业的配置。
| 方法 | 描述 | 
|---|---|
void cleanup(Context context) | 
此方法在任务结束时只调用一次。 | 
void map(KEYIN key, Iterable<VALUEIN> values, Context context) | 
此方法对每个键只调用一次。 | 
void run(Context context) | 
此方法可用于控制Reducer的任务。 | 
void setup(Context context) | 
此方法在任务开始时只调用一次。 | 
作业类用于配置作业并提交。它还控制着执行和查询状态。一旦作业被提交,set方法会抛出IllegalStateException。
| 方法 | 描述 | 
|---|---|
Counters getCounters() | 
用于获取作业的计数器。 | 
long getFinishTime() | 
用于获取作业的完成时间。 | 
Job getInstance() | 
用于生成一个新的作业,没有任何集群。 | 
Job getInstance(Configuration conf) | 
用于生成一个新的作业,没有任何集群和提供的配置。 | 
Job getInstance(Configuration conf, String jobName) | 
用于生成一个新的作业,没有任何集群和提供的配置和作业名称。 | 
String getJobFile() | 
用于获取提交作业配置的路径。 | 
String getJobName() | 
用于获取用户指定的作业名称。 | 
JobPriority getPriority() | 
用于获取作业的调度函数。 | 
void setJarByClass(Class<?> c) | 
通过提供带有 .class 扩展名的类名来设置jar。 | 
void setJobName(String name) | 
用于设置用户指定的作业名称。 | 
void setMapOutputKeyClass(Class<?> class) | 
用于设置map输出数据的键类。 | 
void setMapOutputValueClass(Class<?> class) | 
用于设置map输出数据的值类。 | 
void setMapperClass(Class<? extends Mapper> class) | 
用于设置作业的Mapper。 | 
void setNumReduceTasks(int tasks) | 
用于设置作业的reduce任务数。 | 
void setReducerClass(Class<? extends Reducer> class) | 
用于设置作业的Reducer。 | 
本文链接:http://so.lmcjl.com/news/20125/