MapReduce

1.MapReduce: MapTask & ReduceTask  默认大小1G
   原语/语义:相同的key为一组,调用一次reduce方法,在reduce方法内迭代这一组数据进行计算
   注意key的设计,reduce的合理使用
   MapTask: key可重复(非hashMap),一个分区对应一个reduceTask,分区数决定并行数
   ReduceTask:取相同key的值,
2.Shuffer<洗牌>:
   文件采用归并算法对小文件块进行合并,使其内、外部有序
   reduce对一组分区的数据进行归并(数据只能在分区内归并)
3.MapperReduce:离线计算 
    jobTracker类似NameNode对任务进行管理
   
4.MRv1角色:
   JobTracker:
           核心、主、单点
           调度所有的作业
           监控整个集群的资源负载
    TaskTracker:与DataNode一比1
           从,自身节点资源管理
           和JobTracker心跳交互,汇报资源,获取Task
     Client:
           作业为单位,规划作业的计算分布
           提交作业资源(包含jar包)都HDFS
           最终提交作业到JobTracker
     弊端:
           JobTracker:负载过重,单点故障 
              资源与计算强耦合,其他计算框架需要重复实现资源管理
              不同框架对资源不能全局管理
  5.对MR资源解耦,产生Yarn(只对资源进行操作,计算仍为MR执行),NodeManager与DataNode 一比一
    
   App Mstr(源自于Container)约等于JobTracker 监控Container  Container约等于Jvm,会对资源大小进行限制
   一切皆由Container产生
6.MRv2:On YARN
   ResourceManager:
         主、核心,集群节点资源管理
   NodeMananger:
        与RM汇报资源,管理Container生命周期,计算框架中角色都以Container标识
   Container:存储节点NM,CPU,MEM,I/O大小,启动命令
         默认NodeManager启动线程监控Container大小,超出申请资源额度,kill
         支持Linux内核的Cgroup(linux3.x以上)
    MR:
         MR-ApplicationMaster-Container
         作业为单位,避免单点故障,负载到不同的节点
         创建Task需要和RM申请资源(Container)
       Task交由Container管理
   Client:RM-Client:请求资源创建AM
                AM-Client:与AM交互
7.MR环境搭建方案:
   
   1.配置mapred-site.xml
     
   2.配置yarn-site.xml
     
    分发mapred-site.xml和yarn-site.xml到node02-04相同目录
    scp mapred-site.xml yarn-site.xml node02:`pwd`
    scp mapred-site.xml yarn-site.xml node03:`pwd`
    scp mapred-site.xml yarn-site.xml node04:`pwd`
8.启动yarn,但只会启动node02-04的NodeManage,需要手动再启动node03和node04
  
  
















posted on 2018-03-06 18:16  xiaojiayu0011  阅读(90)  评论(0)    收藏  举报

导航