Hadoop是什么?
- Hadoop是一个由Apache基金会所开发的分布式系统基础架构
- 主要解决,海量数据的存储和海量数据的分析计算问题
-
广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈
image.png
Hadoop发展历史
-
Hadoop创始人Doug Cutting,为了实现与Google类似的全文搜索功能,他在Lucene框架基础上进行优化升级,查询引擎和索引引擎
image.png - 2001年年底Lucene成为Apache基金会的一个子项目
- 对于海量数据场景,Lucene框架面对与Google同样的困难,存储海量数据困难,检索海量速度慢
- 学习和模仿Google解决这些问题的办法:微型版Nutch
-
可以说Google是Hadoop的思想之源
image.png - 2003-2004年,Google公开了部分GFS和MapReduce思想的细节,以此为基础Doug Cutting等人用了2年业余时间实现了DFS和MapReduce机制,使Nutch性能飙升
- 2005年Hadoop作为Lucene的子项目Nutch的一部分正式引入Apache基金会
- 2006年3月份,MapReduce和Nutch Distributed File System(NDFS)分别被纳入到Hadoop项目中,Hadoop就此正式诞生,标志着大数据时代来临
-
名字来源于Doug Cutting儿子的玩具大象
image.png
3 Hadoop优势
-
高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据丢失
image.png -
高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点
image.png -
高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度
image.png -
高容错性:能够自动将失败的任务重新分配
image.png
Hadoop组成
image.png
image.png
image.png
HDFS架构概述
Hadoop distribution File System
- NameNode(nn):存储文件的元数据,如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode
- DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和
- Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份
YARN架构概述
Yet Another Resource Negotiator简称YARN,另一种资源协调者,是Hadoop的资源管理器
image.png
- ResourceManager(RM):整个集群资源(内存、CPU等)的老大
- NodeManager(NM):单个节点服务器资源老大
- ApplicationMaster(AM):单个任务运行的老大
- Container:容器,相当于一台独立的服务器,里面封装了任务运行所需要的资源,如内存、CPU、磁盘、网络等
说明1:客户端可以有多个
说明2:集群上可以运行多个ApplicationMaster
说明3:每个NodeManager上可以运行多个Container
MapReduce架构概述
MapReduce将计算过程分为两个阶段:Map和Reduce
1)Map阶段并行处理输入数据
2)Reduce阶段对Map结果进行汇总
image.png
HDFS、YARN、MapReduce三者关系
image.png
大数据生态体系
image.png