1.Hadoop是什么?
1)Hadoop是一个有Apache基金会所开发的分布式系统基础架构。
2)Hadoop主要解决海量数据的存储和海量数据的分析计算问题。
2.Hadoop发展历史:
1)Lucene 是 Doug Cutting 开创的开源软件,java编写,实现与Google类似的全文搜索功能;
2)Lucene 2001年底成为 Apache 基金会的一个子项目;
3)对于大数量的场景,Lucene 面对与 Google 同样的困难,
Lucene 学习和模仿Google解决这些问题的办法 : 微型版 Nutch (一个开源Java实现的搜索引擎)
4)2003-2004年,Google公开了部分 DFS 和 Mapreduce 的思想,以此为基础 Doug Cutting 等人用两年业余时间实现了 DFS 和 Mapreduce 机制 ,使 Nutch 性能飙升 。
5)2005年 Hadoop 作为 Lucene的Nutch其中一部分 正式引入Apache基金会。2006年3月份 Mapreduce和 Nutch Distributed File System(NDFS) 分别被纳入成为Hadoop的项目中
6)Hadoop名字来源于 Doug Cutting 儿子的玩具大象
Hadoop就此诞生
3.Hadoop的优势
1)高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障也不会导致数据的丢失
(一个集群节点只有一个副本,多了没用)
2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
3)高效性:在Mapreduce 的思想下,Hadoop是并行工作的,以加快任务处理速度
4)高容错性:能够自动的将失败的任务重新分配
4.Hadoop的组成
Hadoop1.X:
Hadoop中的Mapreduce同时处理业务逻辑运算和资源调度,耦合性较大。
Hadoop2.X
在Hadoop2.X 新增加了 Yarn,Yarn只负责资源调度 , Mapreduce只负责计算
5.HDFS(数据存储)架构概述
NameNode(nn):存储文件的元数据,如文件名、文件目录结构、文件属性,以及每个文件的块列表和块所在的DataNode 等。(这部分说白了就是大纲或者目录的意思)。
DataNode(dn): 在本地文件系统存储文件块数据,以及块数据的校验和。(这部分才是真正的要存储的数据)。
Secondary NameNode(2nn) : 用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照
6.Yarn(资源调度)架构概述
1)ResourceManager(rm) : 处理客户端请求Request、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;
2)NodeManager(nm): 单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;
3)ApplicationMaster(App Mstr):数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错;
4)Container:对任务运行环境的抽象,封装了CPU 、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。
7.Mapreduce(计算)架构概述
Mapreduce将计算分为两个阶段:Map和Reduce
Map 阶段并行处理输入数据
Reduce 阶段对Map结果进行汇总
第一天就先这样吧,有什么不对或需要补充的一定要告诉我。
文章里包含摘抄的还有自己的理解,图因为是自己画的所以很丑。