文章目录
1.1 Hapdoop是什么
1、Hadoop是一个由Apache开发的分布式系统基础架构
2、主要解决海量数据的存储和海量数据的分析计算(存:HDFS,算:MapReduce)
3、广义来说Hadoop通常是指一个更广泛的概念——Hadoop生态圈
1.2 发展历史
1、Lucence框架是Doug Cutting开创的开源软件,用java书写代码
2、对于海量数据的场景,Lucene面对与Google同样的困难,存储数据困难,检索速度慢
3、GFS——>HDFS Map-Reduce——>MR BigTable——>HBase
1.3 Hadoop发行版本
Apache:对于入门学习最好
Cloudera:在大型互联网企业中用得最多
Hortonworks:文档较好
1.4 优势
1、高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障也不会导致数据丢失
2、高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点
3、高效性:Hadoop是并行工作的,以加快任务处理速度
4、高容错性:能够自动将失败的任务重新分配
1.5 组成
1.5.1 Hadoop1.x和Hadoop2.x的区别
1、Hadoop1.x:MapReduce(计算+资源调度)+HDFS(数据存储)
2、hadoop2.x:MapReduce(计算)+Yarn(资源调度)+HDFS(数据存储)
1.5.2 HDFS架构概述
1、NameNode(nn):存储文件的元数据,如文件名、文件目录结构、文件属性索引
2、DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和,数据
3、Secondary NameNode(2nn):辅助程序,解决EditLog不断变大的问题
1.5.3 Yarn架构概述
1、ResourceManager(RM):管理集群所有的调度情况
- 处理客户请求
- 监控NodeManager
- 启动或监控ApplicationMaster
- 资源的分配与调度
2、NodeManager(NM):
- 管理单个节点上的资源
- 处理来自ResourceManager的命令
- 处理来自ApplicationMaster的命令
3、ApplicationMaster(AM):
- 负责数据的切分
- 为应用程序申请资源并分配给内部的任务
- 任务的监控与容错
4、Container:Yarn中的资源抽象,封装了某个节点的多维度资源,如内存、cpu、磁盘、网络等
1.5.4 MapReduce架构概述
将计算过程分为两个阶段:Map和Reduce
1、Map阶段:并行处理输入数据
2、Reduce阶段:对Map结果进行汇总