1.Hadoop是什么
Apache基金会所开发的分布式系统基础架构
2.Hadoop解决什么
海量数据的存储和海量数据的分析计算问题。
3.Hadoop生态圈
我们一般指Hadoop并不单单指这个基础框架,而是指基于这个框架的整个生态圈。
image
4.Hadoop 发展历史
-
Lucene - 实现了类似Google的全文检索引擎,包括完整的查询引擎与索引引擎。
-
2001年底成为Apache子项目。
-
对于海量数据的场景,Lucene面对与Google同样的困难,存储数据困难、检索速度慢!
-
学习模仿Google解决问题的办法:微型版Nutch
-
可以说Google是Hadoop的思想之源。
-
2003-2004年,Google公开了部分GFS(google file system)和MapReduce思想的细节,以此为基础,Nutch实现了DFS和MapReduce机制,Nutch性能飙升。
-
2005年,Hadoop作为Lucene的子项目,Nutch的一部分,正式引入Apache。
-
2006年,Map-Reduce和Nutch Distributed File System(NDFS)分别被纳入成为Hadoop的项目中。
-
名字来源于作者Doug Cutting儿子的顽疾大象。
5.Hadoop的优势
-
高可靠 - Hadoop底层维护多个副本(最低3),所以即使某个计算元素或存储出现故障,也不会导致数据丢失
-
高扩展 - 在集群分配任务数据,可方便的扩展数以千计的节点(动态添加和删除节点)
-
高效性 - 在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。
-
高容错 - 能自动将失败的任务重新分配。
6.Hadoop的组成
-
Hadoop 1.x的组成
-
HDFS - 数据存储
-
MapReduce - 计算+资源调度(cpu、内存、磁盘)
-
Common - 辅助工具
-
-
Hadoop 2.x的组成
-
HDFS - 数据存储
-
Common - 辅助工具
-
MapReduce - 计算
-
Yarn - 资源调度
-
注意这里 1.x和2.x的明显区别
在Hadoop1.x时代 MapReduce同时处理业务逻辑计算与资源调度,耦合性较大,在Hadoop2.x时代,增加Yarn,Yarn只负责资源调度,MapReduce只负责计算。
6.1 HDFS 架构概述
-
NameNode(nn)
存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表和块所在的DataNode等。
<u style="box-sizing: border-box;">可以理解这是一个所有数据的目录</u>
-
<u style="box-sizing: border-box;">DataNode(dn)</u>
<u style="box-sizing: border-box;">在本地文件系统存储文件块数据,以及块数据的校验和。</u>
<u style="box-sizing: border-box;"><u style="box-sizing: border-box;">具体的数据文件</u></u>
-
<u style="box-sizing: border-box;">Secondary NameNode(2nn)</u>
<u style="box-sizing: border-box;">用于监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS的元数据快照。</u>
<u style="box-sizing: border-box;">****<u style="box-sizing: border-box;">辅助NameNode工作</u>****</u>
<u style="box-sizing: border-box;">****6.2 Yarn(雅恩)的架构概述****</u>
<u style="box-sizing: border-box;">****
image
****</u>
-
<u style="box-sizing: border-box;">****ResoureManager 整个集群中,资源管理的老大****</u>
-
<u style="box-sizing: border-box;">****NodeManager 单个节点的资源老大****</u>
-
<u style="box-sizing: border-box;">****AppMstr 任务执行的保证,申请资源等****</u>
-
<u style="box-sizing: border-box;">****Container 将资源封装,按照任务进行分配,如VM在你的电脑分配N个虚拟机运行你的系统****</u>
<u style="box-sizing: border-box;">****6.3 MapReduce架构概述****</u>
<u style="box-sizing: border-box;">****MapReduce将计算过程分为两个阶段:Map和Reduce****</u>
-
<u style="box-sizing: border-box;">****Map - 并行处理输入数据****</u>
-
<u style="box-sizing: border-box;">****Reduce - 对Map的结果进行汇总****</u>
<u style="box-sizing: border-box;">****[图片上传失败...(image-f1228c-1589938830278)]****</u>
<u style="box-sizing: border-box;">****7.大数据技术的生态体系****</u>
<u style="box-sizing: border-box;">****
image
****</u>
<u style="box-sizing: border-box;">****8.大数据应用举例****</u>
<u style="box-sizing: border-box;">****
image
****</u>
<u style="box-sizing: border-box;">****用户购买一个产品->服务器接收请求,生成订单、日志等->日志采集模块收集整理->推送到HDFS存储->SparkStreaming实时计算(多维度,用户属性、产品属性、相关性等一系列算法)->生成分析结果->由推荐系统将用户购买的产品相关的产品推送给用户。****</u>
-














网友评论