1. MapReduce初步了解

1. hadoop生态系统
1. MapReduce初步了解
2. YARN
1)YARN 一个集群部署多个框架。公共资源调度管家。
主流框架,支持主流YARN. 负载混搭,共享底层存储。
3. Mapreduce 执行流程
1. MapReduce初步了解
由图我们可以看到, MapReduce存在以下4个独立的实体。

  1. JobClient:运行于client node,负责将MapReduce程序打成Jar包存储到HDFS,并把Jar包的路径提交到Jobtracker,由Jobtracker进行任务的分配和监控。
  2. JobTracker:运行于name node,负责接收JobClient提交的Job,调度Job的每一个子task运行于TaskTracker上,并监控它们,如果发现有失败的task就重新运行它。
  3. TaskTracker:运行于data node,负责主动与JobTracker通信,接收作业,并直接执行每一个任务。
  4. HDFS:用来与其它实体间共享作业文件。

各实体间通过以下过程完成一次MapReduce作业。

  1. JobClient通过RPC协议向JobTracker请求一个新应用的ID,用于MapReduce作业的ID
    J2) obTracker检查作业的输出说明。例如,如果没有指定输出目录或目录已存在,作业就不提交,错误抛回给JobClient,否则,返回新的作业ID给JobClient
  2. JobClient将作业所需的资源(包括作业JAR文件、配置文件和计算所得得输入分片)复制到以作业ID命名的HDFS文件夹中
  3. JobClient通过submitApplication()提交作业
  4. JobTracker收到调用它的submitApplication()消息后,进行任务初始化
  5. JobTracker读取HDFS上的要处理的文件,开始计算输入分片,每一个分片对应一个TaskTracker
  6. TaskTracker通过心跳机制领取任务(任务的描述信息)
  7. TaskTracker读取HDFS上的作业资源(JAR包、配置文件等)
  8. TaskTracker启动一个java child子进程,用来执行具体的任务(MapperTask或ReducerTask)
  9. TaskTracker将Reduce结果写入到HDFS当中

5. MapReduce 计算原理
1. MapReduce初步了解
1、Map任务处理

1.1 读取HDFS中的文件。每一行解析成一个<k,v>。每一个键值对调用一次map函数。 <0,hello you> <10,hello me>

1.2 覆盖map(),接收1.1产生的<k,v>,进行处理,转换为新的<k,v>输出。          <hello,1> <you,1> <hello,1> <me,1>

1.3 对1.2输出的<k,v>进行分区。默认分为一个区。详见《Partitioner》

1.4 对不同分区中的数据进行排序(按照k)、分组。分组指的是相同key的value放到一个集合中。 排序后:<hello,1> <hello,1> <me,1> <you,1> 分组后:<hello,{1,1}><me,{1}><you,{1}>

1.5 (可选)对分组后的数据进行归约。详见《Combiner》

2、Reduce任务处理

2.1 多个map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点上。(shuffle)详见《shuffle过程分析》

2.2 对多个map的输出进行合并、排序。覆盖reduce函数,接收的是分组后的数据,实现自己的业务逻辑, <hello,2> <me,1> <you,1>

处理后,产生新的<k,v>输出。

2.3 对reduce输出的<k,v>写到HDFS中。

3.实例:
Mapper的输入数据(k1,v1)格式是:默认的按行分的键值对<0, 2010012325>,<11, 2012010123>
Reducer的输入数据格式是:把相同的键合并后的键值对:<2001, [12, 32, 25…]>,<2007, [20, 34, 30…]>.
Reducer的输出数(k3,v3)据格式是:经自己在Reducer中写出的格式:<2001, 32>,<2007, 34>…

其中,由于输入数据太小,Map过程的第1阶段这里不能证明。但事实上是这样的。结论中第一点验证了Map过程的第2阶段:“键”是每一行的起始位置(单位是字节),“值”是本行的文本内容。另外,通过Reduce的几行

reference:
1.https://blog.****.net/qq_32941881/article/details/81505069
2. https://www.jianshu.com/p/ca165beb305b
3. https://www.cnblogs.com/ahu-lichang/p/6645074.html