MapReduce API

MapReduce API

在这个部分中,我们关注MapReduce API。在这里,我们学习MapReduce编程中使用的类和方法。

MapReduce Mapper类

在MapReduce中,Mapper类的作用是将输入的键值对映射到一组中间键值对。它将输入记录转换为中间记录。

这些与给定输出键相关联的中间记录将传递给Reducer以产生最终输出。

Mapper类的方法

方法 描述
void map(KEYIN key, VALUEIN value, Context context) 此方法对输入分片中的每个键值对仅调用一次。
void run(Context context) 此方法可以被重写以控制Mapper的执行。
void setup(Context context) 此方法仅在任务开始时调用一次。

MapReduce Reducer类

在MapReduce中,Reducer类的作用是减少中间值的集合。通过JobContext.getConfiguration()方法,它的实现可以访问作业的配置。

Reducer类的方法

方法 描述
void cleanup(Context context) 此方法在任务结束时只调用一次。
void map(KEYIN key, Iterable<VALUEIN> values, Context context) 此方法对每个键只调用一次。
void run(Context context) 此方法可用于控制Reducer的任务。
void setup(Context context) 此方法在任务开始时只调用一次。

MapReduce作业类

作业类用于配置作业并提交。它还控制着执行和查询状态。一旦作业被提交,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。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程