7.3.1工作流程概述 输入 Map任务 Reduce任务 输出 分片0 Shuffle mapo 分片1 mapo reduce 输出0 分片2 apo reduce O) 输出1 分片3 mapo reduce o 输出2 分片4 图7-1 MapReduce工作流程 不同的Map任务之间不会进行通信 不同的 Reduce任务之间也不会发生任何信息交换 °用户不能显式地从一台机器向另一台机器发送消息、 所有的数据交换都是通过 MapReduce框架自身去实现的 《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 7.3.1工作流程概述 分片0 map() 分片2 map() 分片1 map() 分片3 map() 分片4 map() reduce() reduce() reduce() 输出0 输出1 输出2 输入 Map任务 Reduce任务 输出 图7-1 MapReduce工作流程 Shuffle •不同的Map任务之间不会进行通信 •不同的Reduce任务之间也不会发生任何信息交换 •用户不能显式地从一台机器向另一台机器发送消息 •所有的数据交换都是通过MapReduce框架自身去实现的
7.32 MapReduce各个执行阶段 节点1 节点2 从分布式文件系统中加载文件 从分布式文件系统中加载文件 InputFormat InputFormat 文件 文件 文件 [spli] 输入RF R RR RR 输入 <key value> [ ≤ key, value> 中间结果 中间结果 key, value> <key, value Shuffle Shuffle <key, value-list> <key, value-list> Reduce Red 最终结果 最终结果 <key, value> ev. value 写入到分布 写入到分布 式文件系统 Output Format Output Format 式文件系统 (如HDFS) ←如HDFS 《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 7.3.2MapReduce各个执行阶段 InputFormat Split Split Split RR RR RR Map Map Map Shuffle Reduce OutputFormat 输入 <key,value> 中间结果 <key,value> 文件 文件 写入到分布 式文件系统 (如HDFS) InputFormat Split Split Split RR RR RR Map Map Map Shuffle Reduce OutputFormat 文件 文件 从分布式文件系统中加载文件 从分布式文件系统中加载文件 节点1 节点2 写入到分布 式文件系统 (如HDFS) 最终结果 <key,value> 最终结果 <key,value> 中间结果 <key,value> 输入 <key,value> <key,value-list> <key,value-list>
7.32 MapReduce各个执行阶段 关于 Split(分片) [block1] block 3 Lblock3Lblock6DataNode4 sata Node?block I blocks L lock 2 [ blod 6 Datanodes block 3 block ock Data Nod del[[ block 4 Iblock51 block6 DataNode block 4 A file on block1 block 2 block 3 block 4 blocks 6 HDFS HDFS以固定大小的 block为基本单位存储数据,而对于 MapReduce而言,其 处理单位是 split.。splt是一个逻辑概念,它只包含一些元数据信息,比如数据 起始位置、数据长度、数据所在节点等。它的划分方法完全由用户自己决定 《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 7.3.2MapReduce各个执行阶段 HDFS 以固定大小的block 为基本单位存储数据,而对于MapReduce 而言,其 处理单位是split。split 是一个逻辑概念,它只包含一些元数据信息,比如数据 起始位置、数据长度、数据所在节点等。它的划分方法完全由用户自己决定。 关于Split(分片)
7.32 MapReduce各个执行阶段 Map任务的数量 Hadoop为每个sp创建一个Map任务,spt的多少决定了Map任务的 数目。大多数情况下,理想的分片大小是一个HDFS块 A file on HDFS block block 2 block 3 block 4 blocks block6 olit 1 split 2 split3 split 4 Reduce任务的数量 最优的 Reduce任务个数取决于集群中可用的 Reduce任务槽(slot的数目 通常设置比 reduce任务槽数目稍微小一些的 Reduce任务个数(这样可 以预留一些系统资源处理可能发生的错误) 《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 7.3.2MapReduce各个执行阶段 Reduce任务的数量 •最优的Reduce任务个数取决于集群中可用的reduce任务槽(slot)的数目 •通常设置比reduce任务槽数目稍微小一些的Reduce任务个数(这样可 以预留一些系统资源处理可能发生的错误) Map任务的数量 •Hadoop为每个split创建一个Map任务,split 的多少决定了Map任务的 数目。大多数情况下,理想的分片大小是一个HDFS块