背景
又是一个周末一天一天的过的好快,今天的任务干啥呢,索引总结一些mr吧,因为前两天有面试问过我?我当时也是简单说了一下,毕竟现在写mr程序的应该很少很少了,废话不说了,结合官网和自己理解写起。
官网 https://hadoop.apache.org/docs/r3.3.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html
简单分析
一个mr作业通常数据会被切割成多个数据块通过map任务来并行处理,就是说我们在处理文件的时候,首次我们写入文件会被分割成多个块,hdfs文件设计支持的语义 write-once-read-more,block块是128m默认 https://hadoop.apache.org/docs/r3.3.0/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html Data Blocks 位置。然后在我们读取的时候也就是提交mr 作业后namenode会根据元数据管理然后从不同的datanode得知数据位置,从而进行读取。mr框架包含一个单独的master ResouceManager,每个集群结点一个工作NodeManager,每个应用一个MRAppMaster。
Input 和output,接受《key,value》最后落地《key,value》形式,需要实现Writetable接口,还要实现WritebaleCompare接口因为要对比排序。
public class WordCount {
public static class TokenizerMapper
extends Mapper
推荐阅读