终于有人把Hadoop大数据系统架构讲明白了
传统的系统已不可解决结构多变的大数据,而高性能配件和公用主机多少钱低廉且不灵敏,Hadoop因此应运而生。Hadoop经常使用互连的便宜商业配件,经过数百甚至数千个低老本主机协同上班,可有效存储和解决少量数据。
1.Hadoop生态体系
Google经过三篇重量级论文为大数据时代提供了三项反派性技术:GFS、MapReduce和BigTable,即所谓的Google大数据的“三驾马车”。
Hadoop和Hbase是基于这三项技术开展出的开源成功。在大数据剖析和解决畛域,Hadoop兼容体系曾经成为一个十分成熟的生态圈,涵盖了很多大数据关系的基础组件,包括Hadoop、Hbase、Hive、Spark、Flink、Storm、Presto、Impala等。
2.Hadoop集群配件架构
Hadoop集群遵照主从架构,由一个或多个主节点(控制节点)和少量从节点组成,可以经过增减节点成功线性水平裁减。集群中的每个节点都有自己的磁盘、内存、解决器和带宽。主节点担任存储元数据,控制整个集群中的资源,并将义务调配给从节点;从节点担任存储数据并口头计算义务。
Hadoop蕴含三大组件:HDFS、Yarn和MapReduce。HDFS担任将文件切分为固定大小的数据块,以多正本散布式形式启动存储。Yarn是资源控制器,经过不同的进程口头资源控制和义务调度/监控义务。MapReduce是计算层,它经过将数据解决逻辑形象为Map义务和Reduce义务,将“计算”在贴近数据存储位置并行口头。
Hadoop集群配件架构如图1所示,详细的组件部署结构剖析如下。
▲ 图1 Hadoop集群配件架构
3.Hadoop体系分层配置架构
Hadoop设计了一个在散布式集群上成功资源控制与配置水平分层的架构,该分层解耦架构让大家可以在Hadoop上始终地叠加组件,并且每个组件可以独立更新,同类组件可以相互竞争,始终优化性能。作为Hadoop生态系统的外围,HDFS、YARN、MapReduce构成了一个灵敏的基座,并以此为基础裁减出了十分多的Hadoop兼容开源名目和软件。
Hadoop体系架构可分为四层,高层普通要求依赖高层的组件,层与层之间相互透明,仅基于高层组件的接口启动交互,四层从下到上区分为散布式存储层、散布式计算资源控制层、散布式并行解决框架层、剖析运行层,如图2所示。
▲图2 Hadoop体系的分层架构
每层的配置详细说明如下。
(1)散布式存储层
HDFS是一个散布式文件存储系统,它将一致控制整个集群的一切存储空间,并将写入的数据切分红相反大小的数据块,每个数据块保管多个正本(通常是三个),每个正本存储在不同的从节点上,以防止因单节点缺点形成数据失落。HDFS主节点(NameNode)保管命名空间、文件名、每个数据块及一切正本的元数据信息。
在大数据量状况下,文件存储格局与紧缩方法对读写效率影响十分大。在HDFS上的数据格局关键包括文本、KV格局、行式存储格局、列式存储格局。详细的文件格局举例如下。
(2)散布式计算资源控制层
YARN(Yet Another Resource Negotiator)是一个资源协商器,它将一致控制和调度整个集群的计算资源,并将接纳到的计算义务拆分到各个节点口头。假设一个节点运转缓慢或失败,YARN会将节点上的义务敞开,而后散发到数据的其余正本所在节点启动运算。YARN作为资源协商器,可以让少量的运行程序和用户有效地共享集群计算资源,即允许多租户,这些数据解决可以是批解决、实时解决、迭代解决等。
最后,Hadoop由MapReduce组件同时担任资源控制和数据解决。Hadoop 2.0引入了YARN后将这两个配置分开。基于YARN,咱们为Hadoop编写的不同组件可以十分繁难地集成到Hadoop生态系统中,例如Spark、Giraph、Hive等名目,以及MapReduce自身。
YARN框架内有ResourceManager、NodeManager组件:ResourceManager在集群的主节点上运转,担任接纳计算义务,并在一切竞争运行程序之间做资源调配;NodeManager在从节点上运转,担任容器,监督资源(CPU、内存、磁盘、网络)经常使用状况。
(3)散布式并行解决框架层
数据解决框架分为批式解决框架和流式解决框架。
批式解决框架关键有Hadoop MapReduce和Spark等。Hadoop MapReduce组件封装了MapReduce并行编程模型。Spark是对Hadoop MapReduce组件的改良,经过对两边结果经常使用内存存储,大幅提高了计算速度,目前是批解决运行的干流选用。
传统的并行计算模型的成功和经常使用都十分复杂,如MPI(Message Passing Interface,信息传递接口)普通都用在迷信计算等专门畛域。MapReduce作为一种全新的通用并行编程模型,是基于集群的并行计算形式的翻新形象,十分繁难易用,开发友好。MapReduce解决数据为Key-Value格局,其关键思维是从函数式编程自创而来的。MapReduce模型将计算分为两个阶段。
流式解决框架关键有Storm、Spark Streaming、Flink等。Storm是较早成熟的低提前流式数据解决框架,可以启动事情级(单条数据)解决。Spark Streaming是基于Spark批解决成功的微批式的流式解决,提前较高,可以和Spark一同运行,成功流批一体的数据解决。Flink是最杰出的流式数据解决框架,可以启动事情级数据解决,具备低提前、吞吐量大、允许SQL等好处。
(4)剖析运行层
基于HDFS、YARN和并行解决框架中的一个组件或组合,可以搭建十分多样的大数据运行,关键包括交互剖析(OLAP)、随机查问、专门畛域的数据剖析、搜查等。各类运行的引见如下。