@数据库
Job
(做业) : 一个MapReduce
程序称为一个Job。app
MRAppMaster
(MR任务的主节点): 一个Job在运行时,会先启动一个进程,这个进程称为MRAppMaster,负责Job中执行状态的监控,容错,和RM申请资源,提交Task等。oop
Task
(任务): Task是一个进程,负责某项计算。code
Map
(Map阶段):Map是MapReduce程序运行的第一个阶段,Map阶段的目的是将输入的数据,进行切分。将一个大文件,切分为若干小部分!切分后,每一个部分称为1片(split
),每片数据会交给一个Task(进程),Task负责Map阶段程序的计算,称为MapTask
。在一个MR程序的Map阶段,会启动N(取决于切片数)个MapTask。每一个MapTask是并行运行。orm
Reduce
(Reduce阶段): Reduce是MapReduce程序运行的第二个阶段(最后一个阶段)!Reduce阶段的目的是将Map阶段的每一个MapTask计
算后的结果进行合并汇总!获得最终结果!Reduce阶段是可选的,Task负责Reduce阶段程序的计算,称为ReduceTask,一个Job能够经过设置,启动N个ReduceTask,这些ReduceTask也是并行运行!每一个ReduceTask最终都会产生一个结果。进程
①Mapper
:map阶段核心的处理逻辑hadoop
②Reducer
: reduce阶段核心的处理逻辑资源
③InputFormat
:输入格式it
FileInputFormat
SequnceFileInputFormat
DBInputFormat
④RecordReader
: 记录读取器io
(k-v)
⑤OutPutFormat
: 输出格式
FileOutputFormat
SequnceFileOutputFormat
DBOutPutFormat
⑥RecordWriter
: 记录写出器
⑦Partitioner
: 分区器
keyout-valueout
,为每组keyout-valueout打上标记,进行分区