文章目录
1、Hadoop是什么
- 分布式系统基础架构
- 解决存储和分析计算
- 广义上,Hadoop指大数据生态圈
2、Hadoop发展历史
-
创始人Doug Cutting只是为了实现类似谷歌的全文搜索功能,在Lucene框架上进行优化升级,和谷歌公司发现了一样的困难:海量数据的存储和检索海量数据的速度慢
- Lucene在ES中会深入讲解 -
谷歌解决问题的方法:开发了微型版Nutch
-
Doug Cutting等人利用2年业余时间实现了DFS和MapReduce机制,使得Nutch性能飙升
-
2006年,NDFS和MR纳入Hadoop,标志着大数据时代的到来
3、Hadoop的三大发行版本
公司 | 年份 | 优势 | 简称 |
---|---|---|---|
Apache | 2006年 | 最基础、最原生的版本 | |
Cloudera | 2008年 | 内部集成了大量的大数据框架 | cdh |
Hortonworks | 2011年 | 文档较好 | hdp |
Hortonworks | 2018年 | 现在已经被Cloudera收购,推出新品牌 | cdp、10000美金/年 |
4、Hadoop的优势
1. 高可靠性
一份数据会在不同的服务器上存储相同的副本
2. 高扩展性
不停服务器动态扩容
后续有案例演示
3. 高效性
每个服务器只完成一个子任务,并行执行
4. 高容错性
能够自动将失败任务重新分配
5、Hadoop的组成
5.1 HDFS架构概述
用途
解决海量数据的存储
组成
-
NameNode
记录每一个文件的存储位置
存储文件的元数据(文件名、目录结构、文件属性、块列表,块所对应的DataNode) -
DataNode
管理数据具体存在哪
存储文件的文件块和校验和 -
Secondary NameNode
辅助 DataNode
每隔一段时间对NameNode的元数据进行一次备份
5.2 YARN架构概述
用途
Hadoop的资源管理器
主要管理CPU和内存
组成
-
Resource Manager
整个集群资源的老大 -
Node Manager
单节点资源的老大 -
Application Master
单个任务的老大 -
Container
容器,相当于一台独立的服务器,里面封装了运行时所需要的资源的(如:内存、磁盘、CPU、网络)
注意
-
客户端可以有多个
可以有多个客户端给Hadoop集群提交任务
通过xshell远程提交任务 -
集群上可以有多个Application Master
指可以同时跑多个任务
并行计算 -
每个Node Manager上可以有多个 Container
每个Container最低要有1g内存,1核CPU
1台服务器的1个Node Manager上有4g内存,2核CPU,最多只能并行跑2个任务
5.3 MapReduce架构概述
用途
解决海量数据的计算
计算原理
-
Map
数据被切分后会存储在不同的服务器上,先把任务做切分,拆分到不同的服务器上,再做计算。 -
Reduce
负责把结果汇总起来
5.4 HDFS、YARN、MapReduce三者关系
HDFS
- 先有数据存储在集群上
- NameNode 记录数据的元信息
- Secondary NameNode 备份 NameNode ,恢复 NameNode 一部分工作
- DataNode 处理数据实实在在的存储
YARN
- 客户端向服务器提交任务后,Resource Manager 会找一个节点,开启 Container,把 Application Master 放在节点上
- Application Master 会根据任务需要向 Resource Manager 申请资源
- Resource Manager 确认节点是否有足够的资源,有的话,开启对应的资源
MapReduce
- 开始 Map Task、Reduce Task
- Reduce阶段,将 MapTask 后的结果汇总,写入HDFS