Hadoop源码分析一架构关系简介

 更新时间:2021年09月02日 15:15:43   作者:huserblog  
本篇是Hadoop源码分析系列文章第一篇,主要介绍一下Hadoop的基础简介以及框架关系,后续本系列文章会持续更新,有需要的朋友可以借鉴参考下

1、 简介

Hadoop是一个由Apache基金会所开发的分布式系统基础架构

Hadoop起源于谷歌发布的三篇论文:GFS、MapReduce、BigTable。其中GFS是谷歌的分布式文件存储系统,MapReduce是基于这个分布式文件存储系统的一个计算框架,BigTable是一个分布式的数据库。hadoop实现了论文GFS和MapReduce中的内容,Hbase的实现了参考了论文BigTable。

2、 hadoop架构

hadoop主要有三个组件

HDFS、YARN和MapReduce。其中YARN是hadoop2.x版本推出的。本文基于hadoop2.7.6分析。

HDFS是基于谷歌的GFS实现的,它是一个分布式的文件系统。YARN是一个资源管理系统,主要负责管理集群内的cpu和内存等资源,为MapReduce等计算任务分配资源。MapReduce即上文提到的计算框架。

hadoop的这三个组件间的关系如下图:

在这里插入图片描述

在hadoop1.x中YARN和MapReduce是集成在一起的,没有单独的资源管理,MapReduce执行时需要的资源由其自身的服务来确定。在2.x版本后将资源管理独立了出来,将资源管理和计算进行解耦合,使得大数据的其他计算框架也可以使用hadoop的资源管理系统。这样可以保证集群内的资源的统一调配。

3、 源码分析思路

在分析hadoop之前需要配置部署一个hadoop平台

然后先从hdfs开始分析,hdfs是yarn和MapReduce的根基。

hdfs是一个文件系统,它涉及的角色较多,主要会先从namenode开始解析,namenode属于hdfs的中心节点,hdfs的所有角色都与其有交互。

解析namenode,首先需要解析其启动过程,namenode的启动过程较为复杂,与其他角色也有交互,所以在这个过程中也会解析其他的角色与节点。

然后使用一个文件的上传与下载,来解析hdfs的文件操作。

解析完了hdfs之后在继续解析yarn和MapReduce,因为者两个原本就是在一起协同工作的,所以解析这两个的时候需要一起解析。解析yarn和MapReduce的时候,使用一个MapReduce程序,以其在整个框架中的执行流程来分析这个两个框架。

以上就是Hadoop源码分析一架构关系简介的详细内容,本系列下一篇文章传送门Hadoop源码分析二安装配置过程详解

后续Hadoop源码分析系列文章的资料请持续关注脚本之家!

相关文章

  • Java中的关键字synchronized 详解

    Java中的关键字synchronized 详解

    这篇文章主要介绍了Java中的关键字synchronized,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Java多线程之scheduledThreadPool的方法解析

    Java多线程之scheduledThreadPool的方法解析

    这篇文章主要介绍了Java多线程之scheduledThreadPool的方法解析,queue是DelayedWorkQueue,但通过后面的分析可以知道,最大线程数是不起作用的,最多会起核心线程数的数量,需要的朋友可以参考下
    2023-12-12
  • springboot中的静态资源加载顺序优先级

    springboot中的静态资源加载顺序优先级

    这篇文章主要介绍了springboot中的静态资源加载顺序优先级,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • SpringBoot如何使用feign实现远程接口调用和错误熔断

    SpringBoot如何使用feign实现远程接口调用和错误熔断

    这篇文章主要介绍了SpringBoot如何使用feign实现远程接口调用和错误熔断,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 基于javaweb+jsp的游泳馆会员管理系统(附源码)

    基于javaweb+jsp的游泳馆会员管理系统(附源码)

    这篇文章主要介绍了基于javaweb+jsp的游泳馆会员管理系统,开发工具eclipse/idea/myeclipse/sts等均可配置运行,此源代码社和课程设计,大作业及毕业设计项目,需要的朋友可以参考下
    2022-04-04
  • SpringBoot 如何将项目打包成 jar 包

    SpringBoot 如何将项目打包成 jar 包

    这篇文章主要介绍了SpringBoot如何将项目打包成jar包,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • java实现文件的断点续传

    java实现文件的断点续传

    这篇文章主要为大家详细介绍了java实现文件的断点续传,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • SpringBoot整合MyBatis四种常用的分页方式(详细总结)

    SpringBoot整合MyBatis四种常用的分页方式(详细总结)

    这篇文章详细给大家总结了SpringBoot整合MyBatis四种常用的分页方式,文中通过代码示例为大家介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • java Quartz定时器任务与Spring task定时的几种实现方法

    java Quartz定时器任务与Spring task定时的几种实现方法

    本篇文章主要介绍了java Quartz定时器任务与Spring task定时的几种实现方法的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • java使用swing绘制国际象棋棋盘

    java使用swing绘制国际象棋棋盘

    这篇文章主要为大家详细介绍了java使用swing绘制国际象棋棋盘,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05

最新评论