暑假第四周总结
暑假的第四周,除了收尾小学期以外,就是了解关于hadoop
一、什么是hadoop
- Hadoop是一个由Apache基金会所开发的分布式系统基础架构
- 主要解决,海量数据的__存储__和海量数据的__分析计算__问题。
- 广义上来说,HADOOP通常是指一个更广泛的概念——HADOOP生态圈
二、hadoop的发展史
- Lucene--Doug Cutting开创的开源软件,用java书写代码,实现与Google类似的全文搜索功能,它提供了全文检索引擎的架构,包括完整的查询引擎和索引引擎
- 2001年年底成为apache基金会的一个子项目
- 对于大数量的场景,Lucene面对与Google同样的困难
- 学习和模仿Google解决这些问题的办法 :微型版Nutch
- 可以说Google是hadoop的思想之源(Google在大数据方面的三篇论文) GFS --->HDFS Map-Reduce --->MR BigTable --->Hbase
- 2003-2004年,Google公开了部分GFS和Mapreduce思想的细节,以此为基础Doug Cutting等人用了2年业余时间实现了DFS和Mapreduce机制,使Nutch性能飙升
- 2005 年Hadoop 作为 Lucene的子项目 Nutch的一部分正式引入Apache基金会。2006 年 3 月份,Map-Reduce和Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项目中
- 名字来源于Doug Cutting儿子的玩具大象
- Hadoop就此诞生并迅速发展,标志这云计算时代来临
三、hadoop的优势
- 高可靠性:因为Hadoop假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理。
- 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
- 高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。
- 高容错性:自动保存多份副本数据,并且能够自动将失败的任务重新分配。
四、Hadoop组成
- Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统。
- Hadoop MapReduce:一个分布式的离线并行计算框架。
- Hadoop YARN:作业调度与集群资源管理的框架。
- Hadoop Common:支持其他模块的工具模块。
五、HDFS架构概述
- NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
- DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。
- Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
六、YARN架构概述
- ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;
- NodeManager(nm):单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;
- ApplicationMaster:数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。
- Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。
七、MapReduce架构概述
MapReduce将计算过程分为两个阶段:Map和Reduce
- Map阶段并行处理输入数据
- Reduce阶段对Map结果进行汇总
下周装虚拟机