一文了解Hadoop
课工场 | 2021-09-01 14:08:24  980 浏览

自从上次小编了解完大数据是啥,并且在招聘网站上看到大数据相关岗位的薪资之后,小编就开始了第18次奋发图强努力学习,虽然前17次奋发图强均已失败告终,但是这一次有薪资诱惑加持,相信小编一定能够坚持下去的。

本周小编学习了大数据的必修课Hadoop,今天给大家分享一些关于Hadoop的知识。

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,是一个专门用于应对海量数据的存储和计算的东东。Hadoop这个英文单词并不在英语字典中,它没有具体的实际意义,为什么叫这个名字呢?是因为作者的儿子有一个宝贝玩具大象名字叫Hadoop,所以他开发的这个系统就叫Hadoop。突然感觉到技术大牛的生活就是如此的枯燥且朴实。

其他的关于Hadoop的版本、历程、花边故事等等凑字数行为就不多介绍了,废话少说,直接上干货。

Hadoop作为一个分布式系统,它有三个最重要组成部分:HDFS、YARN、MapReduce在介绍它们之前,首先我们再来复习一遍分布式,分布式说白了就是有一堆机器组成的一个整体,它们之间通过网络互相连接,每一个机器称为一个节点,所有的节点连在一起组成了分布式的系统。这种分布式结构也称为集群。

HDFS

它是一个分布式文件系统,它和我们windows上的文件系统很像,比如说在windows中,我们为了不让麻麻发现我安装了游戏,往往会将游戏软件放到很深的文件路径下,并且文件名也是诸如“xxx学习资料””学习资源”等等。它可能会有一个完整的路径“D://学习资料/学习资源/英雄联盟.exe”。实际上这就是windows上的文件系统,它可以用来保存各种文件,并且可以通过路径的方式来访问这些文件。

同样HDFS也是一个类似的文件系统,但是它的不同点在于它是分布式的。在windows上我们都知道,某个路径下的文件,它的物理形态也同样的在这台电脑的硬盘上。而HDFS上的文件,它肯定是在这个系统上,但是你要问它我这个文件到底在哪个机器上,它会告诉你,你的文件在物理上被切分成了多块,分布在多台机器上。

“那文件都被你切坏了,我还能用吗!”,别担心,绝对能用。这些机制在HDFS的底层中全部定义好了,使用HDFS可以直接把它当做一个普通的文件系统就可以了,它也提供类似windows路径的方式来访问文件。我们在使用的过程大可不必关心底层内容,如:文件到底被分了多少块、副本文件在哪、使用的时候怎么合并等等这些问题。当然如果你要去面试Hadoop相关岗位,还是要去了解底层实现原理的。

由于分布式的特性,HDFS的扩展十分方便,只需增加机器,就可以给存储系统扩容。所以HDFS在机器够的情况下,可以轻松储存海量数据。

HDFS它是一个文件系统,也就是所有的节点机器一起组成了这个整体的文件系统,增加机器只会增加该系统的存储容量和存储节点。它总是保持一个整体的文件系统。

MapReduce

是一个分布式计算框架,它是一套专门应对大数据的计算模式,它将一个处理大量数据的计算任务分解为Map和Reduce两个阶段来执行,将计算任务分配给集群中的每个节点,实现多节点并行计算。Map阶段并行处理输入数据,Reduce阶段对Map结果进行汇总。

YARN

是一个通用的资源管理系统,它其中的ResourceManager统一对集群中的资源进行调度和管理,而NodeManager对集群中每一个节点的资源进行调度和管理。也就是说ResourceManager是工程总设计师负责整个集群,NodeManager是包工头只负责自己机器这一亩三分地。MapReduce计算过程中所需要的资源,通常就是通过YARN来进行资源的调度和分配,当然YARN之所以能坐上管理位置还是得益于它比较公平,它不会让集群中一台节点承担大部分的任务,而是经常会将任务“平均”的分给各个节点。当然资源调度的方式有很多,也因情况而定。

总结一下,总之Hadoop有三板斧来处理大数据,使用HDFS轻松处理大数据的存储,使用MapReduce+YARN轻松处理大数据的计算。他们之间的关系可以简单的理解为:当我有一个大数据处理的任务,首先我将数据放在HDFS上,使用MapReduce这种计算模式来进行数据处理,其中YARN调用集群中节点资源一起参与计算,最后得出结果。



标签: