vlambda博客
学习文章列表

新手友好 | Hadoop-架构、原理、实时计算和离线计算

回复”资源“获取更多惊喜

新手友好 | Hadoop-架构、原理、实时计算和离线计算

文章目录

一、什么是Hadoop
二、Hadoop各个组件的作用
三、Hadoop核心组件的架构
3.1、HDFS
3.2、MapReduce
3.3、YARN
四、实时计算和离线计算的过程

后端系统通常会有一些需要超大数据集分析的业务场景,比如A/B Test、埋点数据分析、大数据关联图谱等,此时需要存储/分析的数据量以GB甚至是TB作为单位,由于数据量太大,MySQL进行分库分表后虽然可以解决数据存储问题,但是无法做到复杂数据分析及查询,大数据技术就应用在这种业务场景当中。作为一名后端开发者,需要对不同的业务场景选择合适的技术,学习入门大数据技术是有必要的。

一、什么是Hadoop

Hadoop是一套大数据解决方案,包揽了一筐子技术,使得大数据处理人员能够简单高效地对大型数据集进行分布式处理。Hadoop主要解决的大规模数据下的离线数据分析问题,可以用于一次写入,多次读取分析,具备较高的处理时延(T+1),其架构核心为MapReduce、HDFS、Yarn,分别为Hadoop提供了分布式计算、分布式存储以及分布式资源调度的能力,而基于Hadoop的大数据技术则有Hive(离线数据分析)、Spark(实时数据分析)、HBase(分布式NoSQL)等。新手友好 | Hadoop-架构、原理、实时计算和离线计算

二、Hadoop各个组件的作用

  • (Hadoop)HDFS:Hadoop Distributed File System,即Hadoop生态中的分布式文件系统,它的作用是提供了Hadoop基础的数据文件的存储以及管理,通过HDFS可以使得大数据分布在服务集群之中,解决了数据的单点问题,并且提供了统一的管理方式。HDFS是整个Hadoop生态中的存储基础。

  • (Hadoop)MapReduce:MapReduce的核心设计思想为Map和Reduce,也就是将大数据拆分成一个个的数据块,并对这些数据块进行分布式的处理,最后再进行统一的汇总从而形成最终的计算结果。

  • (Hadoop)Yarn:Yarn是Hadoop2.0引入的一种资源管理系统,通过Yarn来计算各个框架之间的资源占用及调度,使得多个运算框架可以运行在同一个集群之中。

  • Hive:Hive是基于MapReduce的一个计算框架,Hive通过类似SQL般的HSQL来提交MapReduce计算任务,从而以结构化的方式来对大数据进行分析。

  • HBase:HBase是一种构建于HDFS之上的分布式K-V数据库,用于大量数据写入及读取,适用于实时计算。

  • Zookeeper:Zookeeper是一个被分布式系统广泛使用的配置中心服务,能够对服务集群提供统一命名、状态同步、集群管理和Leader选举等服务

    三、Hadoop核心组件的架构


3.1、HDFS

Hadoop Distributed File System,分布式文件系统,其架构如下:新手友好 | Hadoop-架构、原理、实时计算和离线计算

3.2、MapReduce

用以实现分布式并行计算,计算分为Map和Reduce两个过程,Map将计算拆分到各个节点中进行,Reduce汇总各节点的计算结果,其架构如下:新手友好 | Hadoop-架构、原理、实时计算和离线计算

3.3、YARN

YARN是Hadoop 2.0中的分布式资源管理系统,它将Hadoop 1.0版本的MapReduce中的JobTracker拆分成了两个独立的服务:一个全局的资源管理器ResourceManager和每个应用程序特有的ApplicationMaster。其中ResourceManager负责整个系统的资源管理和分配,而ApplicationMaster负责单个应用程序的管理。其架构如下:新手友好 | Hadoop-架构、原理、实时计算和离线计算

四、实时计算和离线计算的过程


对于大数据的处理,一般分为几个步骤:

数据采集阶段:数据收集阶段是指通过各类日志、埋点、爬虫或手工整理的方式来对需要分析的数据进行收集 数据清洗阶段:数据收集阶段收集到的数据为原始数据,需要对其不合规的数据(空值或异常数据)进行剔除或处理 数据存储阶段:将清洗好的数据存储到HDFS系统中(可以通过Hive或Spark这类进行存储,其底层都为HDFS),以便进行分布式计算分析 数据分析阶段:通过MapReduce、Hive或Spark进行大数据的分布式计算分析,得出分析结果 数据结果持久化:由于每次数据分析需要花费的时间较长,所以需要将分析结果持久化至数据库中 数据可视化:将分析结果进行可视化展示

以下是基于Hadoop的经典的实时计算和离线计算分析的大致流程图和组件图: