Hadoop教程
HBase
Hive
Pig
Sqoop
Spark

MapReduce API

在本节中,我们重点介绍MapReduce API。在这里,我们了解MapReduce编程中使用的类和方法。

MapReduce Mapper类

在MapReduce中,Mapper类的作用是将输入键值对映射到一组中间键值对。它将输入记录转换为中间记录。
这些与给定输出键关联的中间记录,并传递给Reducer以获得最终输出。

Mapper类的方法

void cleanup(Context context) 此方法在任务结束时仅调用一次。
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作业类

Job类用于配置作业并提交。它还控制执行和查询状态。提交作业后,set方法将引发IllegalStateException。

作业类的方法

方法 说明
Counters getCounters() 此方法用于获取作业的计数器。
long getFinishTime() 此方法用于获取作业的完成时间。
Job getInstance() 此方法用于生成没有任何群集的新Job。
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) 此方法用于设置地图输出数据的键类。
void setMapOutputValueClass(Class <?> class) 此方法用于设置地图输出数据的值类别。
void setMapperClass(Class <?extends Mapper> class) 此方法用于设置作业的映射器。
void setNumReduceTasks(int tasks) 此方法用于设置作业的缩减任务数量
void setReducerClass(Class <?extended Reducer> class) 此方法用于设置作业的减速器。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4