vlambda博客
学习文章列表

菜鸟浅析分布式计算框架HADOOP

01. 聊聊别的


    本人在大数据领域虽然一直从事产品岗位,但是一直抱着想系统学习大数据底层技术心态,希望通过写作浅析方式输出自己所看、所学、所得,从0学习大数据技术。文章多半会是连载,但是也有可能会三天打鱼,两天晒网,毕竟还是稍许懒惰。


02. 大数据处理流程


    在讨论大数据技术时,需要首先了解大数据的基本处理流程,主要包括数据采集、存储、分析和结果呈现等环节。

     数据无处不在,互联网网站、政务系统、电商零售系统、办公系统、自动化生产系统、监控摄像头、传感器等,每时每刻都在不断产生数据。

     这些分散在各处的数据,需要采用相应的设备或软件进行采集。采集到的数据通常无法直接用于后续的数据分析。
     因为对于来源众多、类型多样的数据而言,数据缺失和语义模糊等问题是不可避免的,因而必须采取相应措施有效解决这些问题,这就需要一个被称为数据预处理的过程,把数据变成一个可用的状态。
     数据经过预处理以后,会 被存放到文件系统或数据库系统中进行存储和管理,然后采用数据挖掘工具对数据进行处理分析,最后采用可视化工具为用户呈现结果。 在整个数据处理过程中,还必须注意隐私保护和数据安全问题等。
     而从大数据处理的基本流程中,从数据采集与预处理、数据存储和管理到数据处理与分析,有涉及到分布式文件系统HDFS、分布式数据库Hbase、处理批处理计算的分布式并行编程框架MapReduce、资源管理调度框架YARN等。
    这些关于大数据核心底层技术,都绕不开今天所要介绍的大数据处理架构Hadoop

03. 枯燥乏味的Hadoop

      Hadoop Apache 开源组织的一个分布式计算框架,可以在大量廉价的硬件设备所组成的集群上运行应用程序,为应用程序提供了一组稳定可靠的接口,旨在构建一个具有高可靠性和良好扩展性的分布式系统。
     可以把 Hadoop 理解为班集体,班集体里面有几个好学生和差学生,其中在 Hadoop1.0 框架中最受瞩目,也是最核心的两个学生分别是分布式文件系统 HDFS MapReduce
     Hadoop 的这两个核心解决了数据存储问题和分布式计算问题。
  • 关于数据存储问题,例如用户想要获取某个路径的数据,数据存放在很多的机器上,作为用户不用考虑在哪台机器上, HDFS 自动搞定,关于 HDFS 如何搞定的,后续文章会逐一讲透这些点。
  • 关于分布式计算问题,如果一个 100P 的文件,希望过滤出含有 Hadoop 字符串的行。这种场景下, HDFS 分布式存储,突破了服务器硬盘大小的限制,解决了单台机器无法存储大文件问题,同时 MapReduce 分布式计算可以将大数据量的作业先分片计算,最后汇总输出。


04.Hadoop的特长


    Hadoop有啥特点呢,优点包括:

  • 支持超大文件,在HDFS存储的文件可以支持TBPB级别的数据;

  • 检测和快速应对硬件故障,包含数据备份机制,namenode通过心跳机制来检测datanode是否还存在;

  • 高扩展性,可构建在廉价机上,实现横向扩展,当集群增加新节点之后,namenode也可以感知,将数据分发和备份到相应的节点上;

  • 具备成熟的生态圈,借助开源的力量,围绕Hadoop衍生一些小工具。


 那么缺点如何,不能做到低延迟,高数据吞吐量做了优化,牺牲了获取数据的延迟;不适合大量的小文件存储;文件修改率较低,HDFS适合一次写入,多次读取的场景。
 通过了解到Hadoop的优缺点,那么Hadoop相应能解决的问题就有海量数据批量分析和处理,海量数据深入分析和挖掘,海量数据长期保存;所面临问题包括磁盘IO成为一种瓶颈,而非CPU资源,网络带宽是一种稀缺资源,硬件故障成为影响稳定的一大因素。

05.Hadoop的架构变迁

Hadoop1.0班集体中,学习委员MapReduce虽然也很牛逼,但是在某些方面有些缺陷,反而成了班集体进阶的瓶颈。由于MRv1扩展性差,JobTracker成为瓶颈可靠性差,NameNode单点故障扩展性差,难以支持MR之外的计算;资源利用率低。而且多计算框架各自为战,数据共享困难 ,如MR:离线计算框架,Storm:实时计算框架,Spark:内存计算框架

   因此在以上背景下,Hadoop1.0变迁升级至2.0Hadoop2.0内核基本构成包括
  • 分布式计算框架(MapReduce): 易于编程、高容错性、高扩展性;
  • 分布式存储系统HDFS(Hadoop Distributed File System): 高可靠性、高扩展性 、高吞吐率;
  • 资源管理系统YARN( Yet Another Resource Negotiator ): 负责集群资源的统一管理和调度;


  将Hadoop1.0架构中MapReduce要干信息搜集和任务调度与监控两个活,变成了Hadoop2.0中MapReduce负责信息搜集,YARN负责资源管理调度。

菜鸟浅析分布式计算框架HADOOP

 

06.Hadoop整体框架


那么作为大数据处理架构的Hadoop生态系统中,包含了哪些组件和功能呢,Hadoop整体架构是怎样的呢,下面给出两张关于Hadoop生态系统架构图,一张简易版,一张详细版。

Hadoop生态架构-简版

Hadoop生态架构-详


Hadoop框架里面所涉及到的组件介绍及应用,后续会连载更新,先立flag