目录
一、大数据简史
过程一:Hadoop思想之源:2003年Google的三驾马车(未开源)
问题一:大量的网页怎么存储(运用冗余防止数据丢失) 提出:分布式文件系统GFS
问题二:Page-Rank的计算问题(单台机器不够算) 分布式计算框架Map-Reduce
问题三:如何快速查到数据(响应时间仅为0.01秒,甚至更快) NoSql数据库系统Bigtable(论文发表于2006年)
过程二:2006年Hadoop开源(基于雅虎团队):
实现一:GFS ----------- Hadoop HDFS
实现二:Map-Reduce ---------- Hadoop MapReduce
实现三:Bigtable ---------- Hbase
过程三:大数据应用:数据仓库时代
标志事件:Hive、Hbase等的开源与应用。
过程四:2012年:从Yarn到百花齐放
2014年2月,Spark逐渐代替MapReduce成为Hadoop的缺省执行计算引擎。
ps:yarn资源调度管理,通过ResourceManager得到请求,发送给NodeManager,最后提交给ApplicationMaster,通过这一流程来实现资源调度管理。
过程五:大数据应用:数据挖掘时代
标志事件:Spark、TensorFlow等技术的发展
二、Hadoop和Hadoop生态圈
狭义上Hadoop是由数据存储HDFS、数据计算MapReduce、资源调度yarn以及辅助工具构成。
广义上Hadoop是指Hadoop生态圈,它包括了这一技术框架的整体。
Hadoop生态圈:
三、Hadoop的三大发行版本
四、Hadoop的组成
1)Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统。(用于存储数据)
- NameNode(nn):存储文件的元数据(描述数据特征的信息)。
- DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。(实际的数据信息)
- Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。(校验元数据)
2)Hadoop MapReduce:一个分布式的离线并行计算框架。(用于离线处理计算)
- MapReduce将计算过程分为两个阶段:Map(映射,分割)和Reduce(聚合)
- Map阶段并行处理输入数据
- Reduce阶段对Map结果进行汇总
3)Hadoop YARN:作业调度与集群资源管理的框架。(用于资源调度)
- ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;(总调度)
- NodeManager(nm):单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;
- ApplicationMaster:数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。
- Container(容器):对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。(类似于docker云计算这种)
五、Hadoop的现在和未来
在以前,数据存储廉价而网络通讯昂贵,所以使用了数据存储邮寄等方式,来解决数据访问速度低下问题。(本次读取速度>网络传输速度)
而现在,网络通讯已经很发达了,甚至速度已经超越了本地化数据的速度了,所以HDFS这种本地存储方式势必在未来会被淘汰掉。
到未来的趋势或许会是存储与计算分离或者利用高效的网络通讯来加快速度。