01. 聊聊别的
本人在大数据领域虽然一直从事产品岗位,但是一直抱着想系统学习大数据底层技术心态,希望通过写作浅析方式输出自己所看、所学、所得,从0学习大数据技术。文章多半会是连载,但是也有可能会三天打鱼,两天晒网,毕竟还是稍许懒惰。
02. 大数据处理流程
在讨论大数据技术时,需要首先了解大数据的基本处理流程,主要包括数据采集、存储、分析和结果呈现等环节。
数据无处不在,互联网网站、政务系统、电商零售系统、办公系统、自动化生产系统、监控摄像头、传感器等,每时每刻都在不断产生数据。
这些分散在各处的数据,需要采用相应的设备或软件进行采集。采集到的数据通常无法直接用于后续的数据分析。
因为对于来源众多、类型多样的数据而言,数据缺失和语义模糊等问题是不可避免的,因而必须采取相应措施有效解决这些问题,这就需要一个被称为“数据预处理”的过程,把数据变成一个可用的状态。
数据经过预处理以后,会
被存放到文件系统或数据库系统中进行存储和管理,然后采用数据挖掘工具对数据进行处理分析,最后采用可视化工具为用户呈现结果。
在整个数据处理过程中,还必须注意隐私保护和数据安全问题等。
而从大数据处理的基本流程中,从数据采集与预处理、数据存储和管理到数据处理与分析,有涉及到分布式文件系统HDFS、分布式数据库Hbase、处理批处理计算的分布式并行编程框架MapReduce、资源管理调度框架YARN等。
这些关于大数据核心底层技术,都绕不开今天所要介绍的大数据处理架构Hadoop。
Hadoop
是
Apache
开源组织的一个分布式计算框架,可以在大量廉价的硬件设备所组成的集群上运行应用程序,为应用程序提供了一组稳定可靠的接口,旨在构建一个具有高可靠性和良好扩展性的分布式系统。
可以把
Hadoop
理解为班集体,班集体里面有几个好学生和差学生,其中在
Hadoop1.0
框架中最受瞩目,也是最核心的两个学生分别是分布式文件系统
HDFS
和
MapReduce
。
Hadoop
的这两个核心解决了数据存储问题和分布式计算问题。
-
关于数据存储问题,例如用户想要获取某个路径的数据,数据存放在很多的机器上,作为用户不用考虑在哪台机器上,
HDFS
自动搞定,关于
HDFS
如何搞定的,后续文章会逐一讲透这些点。
-
关于分布式计算问题,如果一个
100P
的文件,希望过滤出含有
Hadoop
字符串的行。这种场景下,
HDFS
分布式存储,突破了服务器硬盘大小的限制,解决了单台机器无法存储大文件问题,同时
MapReduce
分布式计算可以将大数据量的作业先分片计算,最后汇总输出。
04.Hadoop的特长
Hadoop有啥特点呢,优点包括:
支持超大文件,在HDFS存储的文件可以支持TB和PB级别的数据;
检测和快速应对硬件故障,包含数据备份机制,namenode通过心跳机制来检测datanode是否还存在;
高扩展性,可构建在廉价机上,实现横向扩展,当集群增加新节点之后,namenode也可以感知,将数据分发和备份到相应的节点上;
具备成熟的生态圈,借助开源的力量,围绕Hadoop衍生一些小工具。
那么缺点如何,不能做到低延迟,高数据吞吐量做了优化,牺牲了获取数据的延迟;不适合大量的小文件存储;文件修改率较低,HDFS适合一次写入,多次读取的场景。
通过了解到Hadoop的优缺点,那么Hadoop相应能解决的问题就有海量数据批量分析和处理,海量数据深入分析和挖掘,海量数据长期保存;所面临问题包括磁盘IO成为一种瓶颈,而非CPU资源,网络带宽是一种稀缺资源,硬件故障成为影响稳定的一大因素。
在Hadoop1.0班集体中,学习委员MapReduce虽然也很牛逼,但是在某些方面有些缺陷,反而成了班集体进阶的瓶颈。由于MRv1扩展性差,JobTracker成为瓶颈;可靠性差,NameNode单点故障;扩展性差,难以支持MR之外的计算;资源利用率低。而且多计算框架各自为战,数据共享困难 ,如MR:离线计算框架,Storm:实时计算框架,Spark:内存计算框架 。
因此在以上背景下,Hadoop从1.0变迁升级至2.0。Hadoop2.0内核基本构成包括
-
分布式计算框架(MapReduce):
易于编程、高容错性、高扩展性;
-
分布式存储系统HDFS(Hadoop Distributed File System):
高可靠性、高扩展性
、高吞吐率;
-
资源管理系统YARN(
Yet Another Resource Negotiator
):
负责集群资源的统一管理和调度;
将Hadoop1.0架构中MapReduce要干信息搜集和任务调度与监控两个活,变成了Hadoop2.0中MapReduce负责信息搜集,YARN负责资源管理调度。
06.Hadoop整体框架
那么作为大数据处理架构的Hadoop生态系统中,包含了哪些组件和功能呢,Hadoop整体架构是怎样的呢,下面给出两张关于Hadoop生态系统架构图,一张简易版,一张详细版。
Hadoop生态架构-简版
Hadoop生态架构-详版
Hadoop框架里面所涉及到的组件介绍及应用,后续会连载更新,先立flag!