【Hadoop学习笔记】认识Hadoop

认识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三者如何配合工作

参考资料

相关推荐
冷崖7 分钟前
const 与 constexpr
c++·学习
wenjie学长14 分钟前
[UE学习笔记]—划时代意义的两大功能—lumen和Nanite
笔记·学习·ue·三维数字化
好奇龙猫15 分钟前
日语学习-日语知识点小记-构建基础-JLPT-N3阶段-二阶段(6):文法運用
学习
文火冰糖的硅基工坊19 分钟前
[人工智能-大模型-43]:模型层技术 - 强化学学习:学习的目标、收敛条件、评估依据、应用到的模型、应用场景 - 通俗易懂。
人工智能·学习
摇滚侠23 分钟前
Spring Boot 3零基础教程,WEB 开发 国际化 Spring Boot + Thymeleaf 笔记45
spring boot·笔记·后端
奋斗的牛马1 小时前
FPGA—ZYNQ学习Helloward(二)
单片机·嵌入式硬件·学习·fpga开发
degen_1 小时前
第二次进入PEICORE流程
c语言·笔记
qq_386322692 小时前
华为网路设备学习-34(BGP协议 九)BGP路由 选路规则二
服务器·学习·华为
尘似鹤2 小时前
设计一个状态机
学习·状态模式·嵌入式软件
Voyager_42 小时前
算法学习记录03——二叉树学习笔记:从两道题看透后序位置的关键作用
笔记·学习·算法