菜单
  

    (5)  (可选)分组后的数据进行归约Combiner。

    第二步:reduce任务处理

    (1) 对多个map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点。一个parttition输出到一个reducer,不同parttion输出到不同reducer

    (2) 对多个map任务的输出进行合并、排序。写reduce函数自己的逻辑,对输入的key、value处理,转换成新的key、value输出。

    (3) 把reduce的输出保存到文件中。

    图2.3中所对应的blick就是HDFS上面的块文件,在hadoop2版本默认设置128MB为一个块,默认一个切片split对应一个块block,但是,切片大小也可以自己设置,根据hadoop的MapReduce源码可以看出来,决定切片split大小是有FileInputFormat类中的long splitSize=computeSplitSize (blockSize,minSize,maxSize)有三个参数决定,其中blockSize=134217728字节=128M,maxSize =2的63次幂-1;computeSplitSzie方法return Max.max(miniSize,Max.min(maxSize,blocSize)); minSize=1,maxSize<blockSize,所以,默认splitSize=128Mb。尽量使用默认大小128M,一个block对应一个split对应一个map,可以避免不同datanode之间的网络传递。一个切片split对应一个map,所以只要知道有多少个切片split就知道启用多少个map。

    上文中已经详细介绍了HDFS存储机制和MapReduce程序详细的执行过程,下文进行详细介绍一个hadoop程序如何进行完整的计算。从读取数据到MapReduce计算到输出数据。整个hadoop程序计算流程如下。

    (1).客户端提交一个mr的jar包给JobClient(提交方式:hadoop jar ...)

    (2).JobClient通过RPC和JobTracker进行通信,返回一个存放jar包的地址(HDFS)和jobId

    (3).client将jar包写入到HDFS当中(path = HDFS上的地址 + jobId)

    (4).开始提交任务(任务的描述信息,不是jar, 包括jobid,jar存放的位置,配置信息等等)

    (5).JobTracker进行初始化任务

    (6).根据任务的输入信息读取HDFS上的要处理的文件,计算文件处理的分块,然后分配MapperTask的大小。

    (7).TaskTracker通过心跳机制领取任务(任务的描述信息)

    (8).下载所需的jar,配置文件等

    (9).TaskTracker启动一个java child子进程,用来执行具体的任务( MapperTask或ReducerTask)

    (10).将结果写入到HDFS当中

     

    图2.2 MapReduce的工作流程

     

    图2.3 MapReduce执行任务流程图

    2.3 高可用HADOOP集群搭建及优化

    本节首先将对将Hadoop云平台的软硬件信息进行详细介绍,然后将对Hadoop集群的搭建和优化过程进行详细分析和测试,从最底层的Linux到Hadoop的监控界面的搭建详细研究,并在最后搭建一个完全分布式、高可靠性的Hadoop集群。

    2.3.1 集群整体架构设计

    本小节将详细介绍hadoop集群的搭建,首先将概况讲解本文hadoop集群的软件信息,接着讲解详细的集群搭建过程。设定整个hadoop集群软件配置如下表2.1所示。

    Hadoop搭建环境要求是Linux,本文选用CentOS6.6版本;JDK选用jdk1.75版本,apache-hadoop版本选用cloudera稳定版本hadoop-2.5.0-cdh5.3.6,zookeeper使用zookeeper-3.4.5-cdh5.3.6版本呢,以上均使用稳定版本的。

    表2.1 系统开发组件及软件信息表

     

    开发平台 CentOS6.6

    集成开发环境 JDK 1.7

    软件开发工具 MyEclipes

    Hadoop版本 hadoop-2.5.0-cdh5.3.6

    协调服务zookeeper

  1. 上一篇:java+mysql网上图书销售系统的设计与实现
  2. 下一篇:asp.net培训中心考试系统开发与建设
  1. 基于MATLAB的图像增强算法设计

  2. jsp+sqlserver高校二手商品交...

  3. 基于Kinect的手势跟踪与识别算法设计

  4. JAVA基于安卓平台的医疗护工管理系统设计

  5. java+mysql设备监控记录的大...

  6. 基于核独立元分析的非线...

  7. 基于Hadoop的制造过程大数据存储平台构建

  8. 中考体育项目与体育教学合理结合的研究

  9. 杂拟谷盗体内共生菌沃尔...

  10. 酸性水汽提装置总汽提塔设计+CAD图纸

  11. 大众媒体对公共政策制定的影响

  12. java+mysql车辆管理系统的设计+源代码

  13. 乳业同业并购式全产业链...

  14. 河岸冲刷和泥沙淤积的监测国内外研究现状

  15. 电站锅炉暖风器设计任务书

  16. 十二层带中心支撑钢结构...

  17. 当代大学生慈善意识研究+文献综述

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回