周末心情好,来理下整个MapReduce的工作流程,方便记忆和理解。
hadoop四大组件之一的MapReduce分布式计算系统,和HDFS-分布式存储系统,YARN-分布式操作系统(主要负责资源调度,相当于操作系统)三分天下,那么我们就将数据从HDFS输入到最后输出到HDFS来详细聊一聊Mapreduce的工作机制。
首先,上图。光说不上图都是耍流氓。数据的供给交给HDFS,资源的调配交给YARN,对数据进行鬼斧神工处理的部分就交给mapreduce了。mapreduce一般来说,可以细分为十大组件,分别为:TextInputFormat,LineRecorderReader, Mapper,shuffle(partition,sort,combiner),GroupComparator,Reducer,LineRecorderWriter,TextOutputFormat。首先我们对这是个组件做一个大概的解释:
TextInputFormat和LineRecorderReader,输入组件,主要负责从HDFS读取数据,默认是一个文件一行一行的读取,获取的数据进入map进行处理。
LineRecorderWriter和TextOutputFormat,输出组件,主要负责接收reducer处理好的数据写入DHFS,一般有多少个reduceTask就会生成几个文件。
Mapper,mapreduce编程框架中业务逻辑编写的第一个组件。mapreduce默认接收到的数据,以每行字符的偏移量为key,\t分隔,之后的其他内容为value,一般读取数据进行处理的时候,都需要将value进行切割,放在相应类型的数组中进行处理。