第一章 Hadoop概述
1.1 Hadoop是什么
-
Hadoop是一个有Apache基金会所开发的分布式系统基础架构
-
主要解决海量数据存储和海量数据分析计算的问题
-
广义上来说,Hadoop通常指的是一个更加广发的概念–Hadoop生态圈
1.2 Hadoop发展历史
- Hadoop创始人Doug cutting ,为了实现google类似 的全文搜索功能,他在Lucene框架的基础上进行优化升级,查询引擎和搜索引擎.
- 2001年年底,Lucene成为了Apache的一个子项目
- 对于海量数据的场景,Lucene框架面对一个与google同样的困难,存储海量数据困难,检索海量速度慢
- 学习和模仿google解决这些问题的办法:微型版本Nutch
- 可以说google是hadoop的思想之源 gfs=>hdfs Map-reduce ==>Mr Bigtable =>Hbase
- 2003-2004年google 公开了部分gfs哈mapreduce思想的细节,以此为基础的dougcutting等人用2年业余时间,实现了gfs和MapReduce机制,是nutch性能飙升
- 2005年Hadoop作为Lucene的子项目nutch的一分部正式引入Apache基金会
- 2006年3月,MapReduce和nutch distributed file system (NDFS) 分别被纳入到Hadoop项目中,Hadoop就此诞生,标志着大数据时代的来临
1.3 Hadoop三大发行版本
Apache Cloudera Hortonworks
Apache版本最开始的版本,对于入门学习最好 2006
cloudera 内部集成了很多大数据框架,对应产品CDH 2008
Hortonworks 文档很好,对应的产品 HDP 2011
现在Hortonworks已经被cloudera收购了,推出了新的品牌 CDP
Apache Hadoop
官网地址:http://hadoop.apache.org
下载地址:https://hadoop.apache.org/releases.html
Cloudera Hadoop
官网地址:https://www.cloudera.com/downloads/cdh
下载地址:https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_6_download.html
- 2008 年成立的 Cloudera 是最早将 Hadoop 商用的公司,为合作伙伴提供 Hadoop 的商用解决方案,主要是包括支持、咨询服务、培训。
- 2009 年 Hadoop 的创始人 Doug Cutting 也加盟 Cloudera 公司。Cloudera 产品主要为 CDH,Cloudera Manager,Cloudera Support
- CDH 是 Cloudera 的 Hadoop 发行版,完全开源,比 Apache Hadoop 在兼容性,安全性,稳定性上有所增强。Cloudera 的标价为每年每个节点 10000 美元。
- Cloudera Manager 是集群的软件分发及管理监控平台,可以在几个小时内部署好一个 Hadoop 集群,并对集群的节点及服务进行实时监控。
Hortonworks Hadoop
官网地址:https://hortonworks.com/products/data-center/hdp/
下载地址:https://hortonworks.com/downloads/#data-platform
- 2011 年成立的 Hortonworks 是雅虎与硅谷风投公司 Benchmark Capital 合资组建。
- 公司成立之初就吸纳了大约** 25 名至 30 名专门研究 Hadoop 的雅虎工程师,上述****工程师均在 2005 年开始协助雅虎开发 Hadoop**,贡献了** **Hadoop80%**的代码。
- Hortonworks 的主打产品是 Hortonworks Data Platform(HDP),也同样是 100%开源的产品,HDP 除常见的项目外还包括了 Ambari,一款开源的安装和管理系统。
- 2018 年 Hortonworks 目前已经被 Cloudera 公司收购。
1.4 Hadoop优势(4高)
-
高可靠性
Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或者存储出现了故障,也不会导致数据丢失
-
高扩展性:
在集群之间分配任务数据,可方便的扩展数以千计的节点
-
高效性
在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度
-
高容错性
能够自动将失败的任务重新分配
1.5 Hadoop的组成
Hadoop1.x 2.x 3.x 的变化
- Hadoop1.x的组成
- MapReduce 计算+资源调度
- HDFS 数据存储
- Common 辅助工具
- Hadoop2.x组成
- MapReduce 计算
- Yarn 资源调度
- HDFS 数据存储
- Common 辅助工具
- Hadoop3.x 与2.x一样
2.x以后 增加了yarn 只负责资源的调度工作,MapReduce只负责运算
1.51 HDFS的架构概述
Hadoop Distributed File System 简称 HDFS ,是一个分布式文件系统
HDFS架构概述
- NameNode(nn)
- 存储文件的元数据,比如,文件名,文件目录结构,文件属性(生成时间,副本数,文件权限)
- 存储每个文件的块列表和块所在的DataNode等
- DataNode(dn)
- 在本地文件系统存储文件块数据,以及块数据的校验和
- Secondary NameNode(2nn)
- 每间隔一段时间对NameNode元数据备份
1.52 Yarn架构概述
Yet Another Resource Negotiator 简称 YARN 另一种资源协调者 是Hadoop的资源管理器
- ResourceManager(RM)
- 整个集群资源(内存,cpu等)的老大
- NodeManager(NN)
- 单个节点服务器资源的老大
- ApplicationMaster(AM)
- 单个任务运行的老大
- Container
- 容器,相当于一台独立的服务器,里面封装了任务运行所需要的资源 比如cpu,内存 磁盘 网络等等
客户端可以有多个,集群上可以运行多个ApplicationMaster 每个NodeManager上可以有多个Container
1.53 MapReduce架构概述
MapReduce将计算过程分为两个阶段:Map和Reduce
- map阶段并行处理输入数据
- Reduce阶段对map结果进行汇总