YARN-MR 大数据第二天

大数据第二天

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.发布

























		
		
		
		
		
		
		
		
		

  

posted @ 2015-11-25 10:29  ciade  阅读(562)  评论(0编辑  收藏  举报