开发者学堂课程【高校精品课-长安大学 -基于混合式教学的云计算课程建设:平台服务 开源 Hadoop】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1073/detail/15482
平台服务 开源 Hadoop
内容介绍
一、Hadoop 2.0简述
二、Hadoop 2.0体系结构
三、HDFS 体系架构
四、HDFS 保障可靠性的措施
五、YARN 体系架构
六、YARN 任务执行过程
七、YARN 编程模板
一、Hadoop 2.0简述
1.本节课介绍 Hadoop 开源云平台。
从云计算概念提出以后,很多的 IT 厂商都推出了自己的面向数据处理的云计算平台,但都是商业形的云平台。对于想要研究技术的个人或科研团体来说,无法获得更多的了解。而 Hadoop 的出现给这种需求带来了很大的帮助。
2.在工业界,把以前的版本称作 Hadoop 1.0,而以后的版本称作 Hadoop 2.0,下面主要介绍Hadoop2.0
3.将 Hadoop 2.0部署至集群后,通过调用 Hadoop 2.0程序库,能够用简单的编程模型来处理分布在不同机器上的大规模数据集。
4.由于采用客户-服务器模式,Hadoop 2.0很容易从一台机器扩展至成千上万台机器,并且每台机器都能提供本地计算存储和本地计算。
5.考虑到集群中每台机器都可能会出问题(如硬件失效), Hadoop 2.0本身从设计.上就在程序层规避了这些问题
6.Google 云计算组件和 Hadoop 及其相关项目之间的对应关系
二、Hadoop 2.0体系结构
1.公共组件 Common
定位:为其他模块提供公共组件服务,为程序员取得集群服务的编程接口,降低了 Hadoop设计的复杂性,减少了其他模块之间的核心,增强了 Hadoop 健壮性
2.分布式文件系统 HDFS
提供了高容错、高扩展、高可靠的分布式存储
3.分布式操作系统 Yarn
提供分布式操作系统的基本功能,一方面管理整个集群的计算资源(CPU、内存等),另一方面提供用户程序访问系统资源的 API
三、HDFS 体系架构
Hadoop 典型包络一般和商用。一般的只有一个 NameDode ,商用的至少有两个 NameDode 。 DateNode则有很多个。当客服要访问文件时,客服端首先从 NameDode 获得组成文件的数据块的列表,然后从 DateNode 上来读取文件数据。这个方式和 JFS 很像似。
四、HDFS 保障可靠性的措施
1.冗余备份
2.副本存放
3.心跳检测安全模式
4.数据完整性检测
5.空间回收
6.元数据磁盘失效
7、快照
五、YARN 体系架构
1.Yarn 依旧是 master/slave 结构
2.主进程 ResourceManager 是整个集群资源仲裁中心
3.从进程 NodeManager 管理本机资源 ResourceManager 和从属节点的进程 NodeManager 组成了 Hadoop 2.0的分布式数据计算框。
六、YARN 任务执行过程
YARN 在执行时包含以下独立实体,一个是 Client 客户端,负责向集群提交作业,ResourceManager 负责资源管理和调度,还有 Schenuler 资源的仲裁模块,ApplicationManager 选定启动和监管 AppliacationMaster,而AppliacationMaster 任务执行和监管中心。DodeManager 管理和监管 Container执行具体任务。Container 是自然结合体。
整个过程:首先 Client 客户端回向主进程 ResourceManager 中的,ApplicationManager 提交文任务,ApplicationManager 按照某种策略选中DodeManager 中的某个 Container 来执行这个应用程序的 AppliacationMaster,这是第二步。
AppliacationMaster 会向 Schenuler 申请资源,Schenuler 会根据所有DodeManager发来的资源信息和集群的调度策略以 Container 为单位给AppliacationMaster 分配计算资源。然后向选定的 DodeManager 发送任务信息(程序代码,数据位置等)。选中的 DodeManager 会启动管理 Container 计算任务。
处于计算状态的 Container 会向 DodeManager 报告计算进度,DodeManager 将信息汇总给 AppliacationMaster,AppliacationMaster 根据信息给出任务进度,当所有任务都完成后,AppliacationMaster 会把所有信息汇报给ApplicationManager。ApplicationManager 模块就可以通知 Clien t客户端任务结束。这是基本的执行步骤。
3.执行规程中有可能任务失败,如果是 AppliacationMaster 失败,ApplicationManager 会选一个 Container 再次选择执行任务中的AppliacationMaster。如果是节点失败了,AppliacationMaster 首先向 Schenuler再次申请资源,根据资源从新分配节点上的任务。
七、YARN 编程模板
ApplicationMaster 是一个可变更的部分,只要实现不同的 ApplicationMaster, 就可以实现不同的编程模式。
MapReduce 模板
MapReduce 类型的 ApplicationMaster
distributedshell 模板
distributedshel 类型的 ApplicationMaste
示例模板
Yarn 的示例编程为"distributedshell",该程序可以将给定的 shell 命令分布到机器执行
MapReduce 模板
Map 把任务分解成为多个任务,Reduce 把分解后多任务处理的结
果汇总起来,得到最终结果