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