HADOOP类
(1) InputFormat:将输入的数据分割成split,并将split拆分成<k,v>作为map输入。Job.setInputFormatClass()设置,TextInputFormat将文本按行分割成split,LineRecorderReader将每行解析为<k,v>
(2) Mapper:实现map函数,将输入的<k,v>生成中间结果,通过job.setMapperClass()设置。
(3) Combiner:实现combine函数,合并中间具有相同key的键值对,通过job.setCombinerClass()设置。
(4) Partitioner:实现getPartition函数,用于在Shuffle过程中按照key将中间数据分为R份,每份由一个Reducer负责。通过job.setPartitionerClass()设置, 默认使用HashPartitioner类,使用哈希完成Shuffle过程。
(5) Reducer:实现reduce函数,将中间结果合并,得到最终结果。通过job.setReduceClass()设置。
(6) OutputFormat:负责输出最终结果。通过job.setOutputFormatClass()设置,默认使用TextOutputFormat将最终结果以文本输出。
Hadoop有四大核心模块:
Common 常用工具类报 HDFS 数据存储
YARN作业调度+资源管理平台