Hadoop的组成

简介

Hadoop是一个分布式系统的基础框架,现在主要是指Hadoop大数据处理生态圈,在这个生态圈中有很多大数据处理框架,其中组成Hadoop的最核心框架有三个MapReduce、YARN和Hdfs,分别是分布式计算框架、资源调度框架和分布式文件系统。

HDFS

HDFS是一个分布式文件系统,主要的作用是用来解决海量数据的存储问题,将很多台机子联合起来组成一个大的文件系统,这个文件系统的存储容量可以根据机子节点的数量动态的扩容和减少。这些联合起来的机子我们称为集群,集群中的单个机子称为节点。集群中的每个节点都会承担不同角色,来保证整个集群的正常运行,HDFS中主要有三种角色:NameNode、DataNode和SecondaryNameNode。在一个集群中只有一个NamaNode和SecondaryNameNode(非高可用集群)而DataNode可以有很多个。一个节点可以同时承担多个角色,比如既是NameNode又是DataNode,只是NameNode只能有一个。

在介绍三种角色的主要作用之前,先说一下存储到HDFS中的数据是如何进行组织的。在HDFS中是以数据块的概念来存储一个文件,也就是说当一个文件上传至HDFS中后,这个文件会被以默认128M为大小分割成很多个数据块存储HDFS中的。

  • NameNode:主要是存储文件的元数据信息,比如一个文件的数据块有多少、文件大小数据块存放在哪些节点等。
  • DataNode:存放具体的数据块,以及为了防止数据出错的数据校验和。
  • SecondaryNameNode:主要是帮助NameNode备份元数据信息,需要注意的是,SecondaryNameNode并不能在NameNode掉线后自动上位顶替NameNode的工作,在非高可用集群模式下,NameNode掉线后整个集群就无法正常工作了。
MapReduce

分布式计算框架,主要解决海量数据的计算问题,遵守框架规则可以很快的编写一个分布式并行计算程序。利用MapReduce进行计算,主要是分为两个阶段,map阶段和reduce阶段。这里的map可以理解为数据映射,将一个海量数据映射到多台节点上,这些节点就可以实现并行的计算,每个节点负责一小部分数据计算,这就是map阶段。当map阶段结束后,将每个节点的计算结果进行汇总形成最终的计算结果,这就是reduce阶段。
在这里插入图片描述
比如要统计一个超大文件有多少行,在map阶段每个节点会分到一小部分数据,然后对这一小部分数据进行统计,当所有节点统计完毕后,会进入reduce阶段,map阶段所有节点的统计结果交给reduce阶段的节点,这个reduce阶段只需要将map阶段的统计结果进行累加就可以了,这样就大大提高了计算的效率,实现了并行计算。

YARN

YARN是一个资源调度框架,主要是用来管理整个集群的资源,比如内存和CPU,MapReduce计算框架也是需要向YARN申请到可用的资源才能进行计算,如果资源不够是无法启动计算的。YARN的架构思想和HDFS很像,YARN中主要包含两种角色,一个ResourceManager和若干个NodeManager。

  • NodeManager主要是分布在每个集群中的节点上,主要是管理节点的资源。
  • 而ResourceManager负责整个集群的资源管理。
  • YARN中还有一个概念是Container,Container是资源的封装,可以理解为Java中的对象,Container就是资源的对象,里面包含这个资源对象的内存、CPU、磁盘和网络等信息。MapReduce申请到的资源都是以Container形式返回。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值