zoukankan      html  css  js  c++  java
  • YARNMR 大数据第二天

    大数据第二天
    
    1.YARN(管理和调度集群中的各类资源)
    	1.1 产生的背景:
    			1.直接源于MR版本1的缺陷(如:单点故障、难以支持MR之外的计算框架等)
    			2.多计算框架各自为站,数据共享困难(如:MR离线计算框架   Storm实时计算框架	Spark内存计算框架)
    	1.2 架构(采用master-slave结构)
    			ResourceManager(管理和调配YARN集群的资源)
    				特性:整个集群只有一个
    				作用:
    						处理客户端请求
    						启动和监控ApplicationMaster
    						监控NodeManager
    						资源分配和调度
    				容错性:存在单点故障(正在实现HA 即主备架构  主一旦挂掉,备切换)
    			NodeManager(执行计算作业)
    				特性:可以多个
    				作用:
    						单个节点上的资源管理和任务管理
    						处理来自ResourceManager的命令
    						处理来自ApplicationMaster的命令
    				容错性:失败后,RM将失败任务告诉对应AM,由AM决定如何处理失败的任务
    			ApplicationMaster(负责应用程序的管理)
    				特性:每个应用有一个
    				作用:
    						数据切分
    						任务监控和容错
    				容错性:失败后由RM负责重启;AM需处理内部任务的容错问题;会自动保存已经运行完成的任务,重启后无需重新运行
    			Container(对任务运行环境的抽象)
    				系列信息:
    						任务启动命令
    						任务运行环境
    						任务运行资源
    	1.3 原理
    		1.客户端client发送任务请求给ResourceManager
    		2.ResourceManager收到请求后根据资源占用情况分配对应NodeManager
    		3.NodeManager收到ResourceManager的命令后开辟一个ApplicationMaster
    		4.ApplicationMaster对任务分析和数据切分后,将要占用的资源情况发送给ResourceManager
    		5.ResourceManager根据实时的资源占用情况进行动态分配资源
    		6.ApplicationMasterna拿到资源后再跟对应的NodeManager进行通信
    		7.NodeManager得到计算任务后,分配对应的Container容器来执行对应的Task任务
    	1.4 调度策略
    		a.双层调度策略
    			RM将资源分配给AM
    			AM将资源进一步分配给各个任务
    		b.基于资源预留的调度策略
    			当资源不够时,会为任务预留,直到资源充足
    	1.5 YARN与计算框架的关系
    		如果YARN是安卓系统的話,那么计算框架就是系统中的一个APP
    		其中计算框架有:
    				基于离线计算框架————MR
    				基于内存计算框架————Spark
    				基于流式计算框架————Storm
    
    2.MapReduce(基于离线计算框架)
    	2.1 MapReduce特点:
    			易于编程
    			良好的扩展性
    			高容错性
    			适合海量数据的离线处理
    	2.2 基本过程
    			Map阶段-Shuffle-Reduce阶段
    			Map阶段:
    				输入数据格式解析————InputFormat
    				输入数据处理————Mapper
    				数据分组————Partitioner
    			Reduce阶段:
    				数据处理————Redecer
    				数据输出格式————OutputFormat
    	2.3 基本思想
    			大文件分为若干个小文件,计算各个小文件得到结果,然后再汇总输出
    	2.4 架构
    			采用YARN架构
    	2.5 应用场景
    			简单的数据统计 比如:网站的PV UV
    			搜索引擎建索引
    			海量数据查找
    			复杂的数据分析算法实现 比如:聚类、分类、推荐、图算法
    	2.6 Java编程
    		1.导jar包(旧包兼容2.0,新包不一定支持)
    		2.编写mapper
    		3.编写reduce
    		4.打包
    		5.发布
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    		
    		
    		
    		
    		
    		
    		
    		
    		
    

      

  • 相关阅读:
    TreeSet类的排序问题
    TreeSet()详解
    css中vertical-align垂直居中的认识
    CSS3 float深入理解浮动资料整理
    层叠顺序与层叠上下文
    jquery.zclip轻量级复制失效问题
    文章转载利用border、transparent实现微风
    转载利用线性渐变实现晴天、多云特效
    转载利用伪元素单个颜色实现 hover 和 active 时的明暗变化效果
    MUI-最接近原生App体验的前端框架
  • 原文地址:https://www.cnblogs.com/ciade/p/4993861.html
Copyright © 2011-2022 走看看