认识Hadoop
从网上找的课程做的笔记,有些图是自己理解画的,可能不正确,可以作为参考,有疑问的地方请直接指出,共同交流。
Hadoop是由Apache基金会开发的一个分布式系统基础架构
,主要解决海量数据的存储
和海量数据的分析计算
问题。
Hadoop发展历史
创始人:Doug Cutting
开发原由:实现与Google类似的全文搜索功能,在Lucene框架基础上进行优化升级,查询引擎和搜索引擎。
2001年底,Lucene成为Apache基金会的一个子项目。Lucene的问题:存储海量数据困难,检索海量数据速度慢
为解决Lucene短板,Doug Cutting借鉴Google的三篇论文,奠定了Hadoop的基础框架。分别是GFS、Map-Reduce、BigTable。对应到Hadoop里,分别是HDFS、MR、HBase。
2003-2004:Doug Cutting 等人实现DFS和MapReduce机制。
2005:Hadoop作业Lucene子项目Nutch的一部分正式引入Apache基金会。
2006.3: Map-Reduce和Nutch Distributed File System(NDFS)分别被纳入到Hadoop项目,Hadoop诞生。
Hadoop 发行版本
Apache Hadoop
最基础,最原始,入门友好。
Cloudera Hadoop
Cloudera 公司,2008年成立,推出CDH,集成了很多大数据框架,收费。
Hortonworks Hadoop
Hortonworks 公司,2011年成立,推出HDP,文档友好。收费。
Cloudera和Hortonworks合作(2018年,Hortonworks被cloudera收购),推出新的版本: CDP。收费。
Transwarp Data Hub(TDH)
研发公司:星环科技
FusionInsight Hadoop
研发公司:华为
Hadoop优势
- 高可靠性
一份数据,多个节点上缓存。 - 高扩展性
可以动态添加、删除服务器。 - 高效性
计算任务并行工作。 - 高容错性
自动将失败的任务重新分配。
Hadoop组成
hadoop2.x相比hadoop1.x,把MapReduce的功能进行了拆分,资源调度抽出来封装成了Yarn,专门用于内存、CPU等资源调度,做到了程序功能高内聚、低耦合。
HDFS
Hadoop Distributed File System,分布式文件系统,在整个Hadoop系统中负责数据存储。一个文件可以被拆分成几份,存储在不同的服务器上。
NameNode(nn): 可以记住拆分后的文件,被存储在哪个服务器上。存储文件的元数据,如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
DataNode(dn): 具体存储数据的服务器。在本地文件系统存储文件块数据,以及块数据的校验和。
Secondary NameNode(2NN):辅助NameNode工作。每隔一段时间对NameNode元数据备份。可以防止NameNode挂掉导致集群瘫痪。
YARN
Yet Another Resource Negotiator,另一种资源协调者,是Hadoop的资源管理器。
ResourceManager(RM): 负责管理整个集群的资源,例如:CPU、内存、网络等。
NodeManager(NM):负责管理单个节点上的资源。
ApplicationMaster(AM):负责单个任务的运行。
Container:容器,相当于一台独立服务器,封装任务运行的资源。
MapReduce
MapReduce是负责Hadoop中的计算的部分,分为Map和Reduce。
Map阶段并行处理输入数据。
Reduce阶段对Map结果进行汇总。
举例,从Hadoop系统中找文件,这个过程如下图所示:
HDFS、YARN、MapReduce三者如何配合工作
参考资料
-
Hadoop入门
-
Apache Hadoop
-
Cloudera Hadoop
官网地址:https://www.cloudera.com/downloads.html
下载地址:https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_6_download.html