0


大数据技术基础综述

摘要

大数据时代的来临,带来了信息技术发展的巨大变革,在金融、汽车、零售、餐饮、电信、能源、医疗等社会各行各业都有大数据的身影。大数据技术深刻影响着社会生产和人民生活。世界主要国家高度重视大数据发展,我国也将发展大数据作为国家战略。当谈及大数据时,往往并非仅指数据本身,而是数据和大数据技术二者的综合。大数据的特点可以从四个方面概括为数据量大、数据种类繁多、处理速度快、价值密度低。而如何对大数据进行采集、存储、管理、分析、计算以及可视化的大数据技术也随着数据量的逐渐庞大应运而生。了解大数据就离不开对大数据技术的了解,顺应大数据时代发展就必须掌握好大数据技术。只有打好大数据技术的基础,才能在大数据时代的浪潮中迸发出更多的活力,勇立潮头。

关键词

大数据时代;大数据技术;国家战略;数据处理

Abstract

The advent of the era of big data has brought great changes in the development of information technology, and big data is found in all walks of life such as finance, automobiles, retail, catering, telecommunications, energy, and medical care. Big data technology has a profound impact on social production and people's lives. Major countries in the world attach great importance to the development of big data, and China will also develop big data as a national strategy. When talking about big data, it is often not just the data itself, but the combination of the data and the big data technology. The characteristics of big data can be summarized from four aspects: large amount of data, a wide variety of data, fast processing speed, and low value density. And how to collect, store, manage, analyze, calculate and visualize big data technology also comes into being with the gradual huge amount of data. Understanding big data is inseparable from understanding big data technology, and adapting to the development of big data era must master big data technology. Only by laying a good foundation for big data technology can we burst out more vitality in the wave of the big data era and bravely stand at the head of the tide.

Keywords

The era of big data; Big data technology; National strategy; Data processing

0 引言

迈入二十一世纪,在云计算、大数据、物联网的快速发展下,拉开了第三次信息化浪潮的帷幕。随着网络技术与科学技术的不断发展,人类迅速进入了“信息爆炸”的时代,全球的信息量、数据量日益增大。同时,由于互联网的普及其用途的多样化,各种设备、机构、企业、用户都在无时无刻的产生着大量数据。而这些数据又为了适应不同的用途,有着不同的结构和类型等。数据产生的速度与方式的变革促进了大数据时代的到来。从上世纪90年代,数据挖掘理论和数据库技术的逐步成熟开始,大数据技术便开始进入萌芽,并随着Web2.0应用的迅猛发展,非结构化数据的大量产生,传统的处理方式已经不再使用,带动了大数据技术的快速突破,使大数据技术在不断的研究与应用中趋于成熟。而进入二十一世纪开始,大数据在大量数据的分析与处理方面的优越表现开始大规模应用于各行各业。世界主要国家高度重视大数据发展,我国也将发展大数据作为国家战略。2016年3月,《中华人民共和国国民经济和社会发展第十三个五年规划纲要》正式提出“实施国家大数据战略”。

学习大数据技术,首先要了解大数据的基本处理流程,包括数据的采集、存储、分析、和结果呈现等环节。数据无处不在,互联网网站、零售系统、办公系统、监控摄像头、传感器等,每时每刻都在产生数据。对于这些分散的数据需要采用相应的设备或软件进行采集。而采集到的数据并不是可以直接使用,需要对这些来自不同设备,不同系统的数据进行数据预处理,把数据处理为一个可用的状态。处理后的数据便可以进行存储、分析、计算和结果呈现。对于数据的采集与数据的预处理是很庞大的工作,需要对不同的数据进行分析,借助数据清洗、数据去重等方法处理后得到可用的数据,这一工作涉及的内容过多,因而在本文不进行介绍。本文主要对大数据技术中的其他技术如存储。管理、分析等技术进行介绍。

1.Linux****与大数据技术

Linux操作系统作为一种开源的Unix-like内核,经过数十年的发展已成为计算机领域中最为重要的操作系统之一。其优势在于稳定性、安全性、开放源代码,以及可高度定制的特性。Linux操作系统提供了强大的命令行界面,使得用户可以通过丰富的命令集进行文件管理、进程管理和网络管理等任务。

在大数据领域,Linux扮演着关键的角色。其稳定性和可靠性为大数据处理提供了强大的基础设施。Linux系统通过支持分布式计算和存储,满足了大数据对高性能、高可用性和高可扩展性的需求。其开放源代码的特性使得用户能够根据实际需求进行定制,适应不断变化的大数据处理场景。

Linux系统的命令行界面不仅提供了基本的操作命令,还为大数据从业者提供了灵活而强大的工具和技术。在Linux上,Hadoop和Spark等开源大数据工具得到广泛应用。Hadoop作为分布式存储和计算的基石,通过Linux系统支持着庞大数据集的处理。而Spark则作为高性能的大数据处理框架,借助Linux系统的优越性能,提供了实时数据处理和机器学习等领域的解决方案。

2.大数据处理架构

2.1最具影响力的Hadoop处理架构

提及大数据的处理架构,Hadoop必然是绕不开的话题。Hadoop最早可追溯至2002年Apache Nutch项目(开源的网络搜索引擎)。在谷歌公司发表了可以解决大规模数据存储问题的分布式文件系统GFS,以及MapReduce分布式编程思想的论文后,使得Nutch项目成员大受启发,开始进行自家系统的开发,在2006年正式独立为Hadoop,同时创始人Doug Cutting加盟雅虎。2008年Hadoop正式成为了Apache的顶级项目,并逐渐被其他公司使用。Hadoop凭借其优秀的对大量数据进行分布式处理的能力和其可靠、高效、可拓展、高容错、成本低的特点声名大噪,迅速发展为大数据时代最具影响力的开源分布式开发平台,在各个领域得到了广泛应用。国外的Facebook、国内的百度、淘宝等知名互联网公司都依托Hadoop集群进行数据处理。

在多年的发展之下,Hadoop的生态系统实现了从1.0到2.0的逐渐完善。其中最主要的三大组件便是Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)、分布式计算框架MapReduce以及资源管理平台(Yet Another Resource Negotiator, YARN,Hadoop2.0出现的新组件)。

HDFS的主要功能是处理海量数据的存储。具体策略是将大量数据存储在集群的多个节点上,通过副本机制保证数据的可靠性和容错性。此外,HDFS具有流式文件访问特性,提供高吞吐量数据访问特性,可广泛用于具有大型数据集的应用程序。

MapReduce是一种用于大规模数据集并行计算的计算模型。其主要作用在于对大量数据进行相应的计算。“Map”对数据集上的独立元素执行指定操作,以生成键值对形式的中间结果;“Reduce”指定中间结果中相同“键”的所有“值”,以获得最终结果。MapReduce通过将任务分解成多个子任务并行计算,最后将结果合并返回,实现大规模数据的处理和分析。

YARN也是Hadoop克服Hadoop1.0中的缺陷,在Hadoop2.0生态系统中重新设计的新组件,并成为Hadoop核心组件之一。其主要作用在于管理调度Hadoop集群中的资源,YARN中的组件包括ResourceManager(RM),NodeManager(NM),ApplicationMaster(AM),Container,JobHistoryServer,TimeLineServer。YARN工作的具体流程为用户首先将任务(例如MapReduce作业、Spark作业等)通过客户端提交给YARN集群。客户端与YARN的ResourceManager进行通信,请求资源来运行任务。ResourceManager接收到任务后,会根据任务的需求和集群的资源状况,通过ApplicationMaster为任务分配资源。资源以Container的形式提供,包括CPU、内存等。ApplicationMaster获得资源后,会将任务分解为一系列的子任务(例如Map任务、Reduce任务等),并将这些子任务调度到合适的NodeManager上执行。NodeManager接收到任务后,会为任务分配本地资源,并启动任务执行。在执行过程中,NodeManager会监控任务的状态,并定期向ApplicationMaster汇报。ApplicationMaster会监控所有子任务的执行状态,并在任务完成后收集结果。如果任务失败,ApplicationMaster会根据任务的容错策略进行重试或终止。任务完成后,ApplicationMaster会通知ResourceManager释放分配给任务的资源,以便这些资源可以被重新分配给其他任务。YARN的发展历程和各个主要组件的作用使得Hadoop不再只是一个单一的大数据计算引擎,而是发展成为一个集存储、计算、资源管理为一体的完整大数据平台。

2.2新一代大数据处理架构****Spark

虽然Hadoop已在各大领域得到了广泛应用,几乎成为了大数据行业的唯一标准,但MapReduce分布式计算模型仍存在诸多缺陷,不能够完全满足所有的计算要求。为了解决Hadoop架构中存在的计算短板,更快的运算分析架构Spark登上了大数据处理的舞台。Spark由美国加州伯克利大学的AMP实验室与2009年开发,后成为Apache的一个项目。其本质是基于内存计算的大数据并行框架。Spark具有运行速度快、容易使用、运行模式多样等特点。如今吸引了国内外各大公司的注意,例如腾讯、淘宝、百度、亚马逊等公司均在不同程度的使用Spark来构建大数据分析应用。

Spark继承了Hadoop MapReduce框架的优点,通过将计算结果直接存储在内存中来提高运算效率。Spark的设计理念遵循“一个软件栈满足不同应用场景”,形成了一套完整的生态系统,既能够提供内存计算框架,还可以提供实时流式计算等,提供一站式的大数据解决方案。Spark的核心是弹性分布式数据集(Resilient Distributed Dataset,RDD)。它是核心的数据抽象,一个RDD代表一个不可变、只读的,被分区的数据集。RDD可以包含任何类型的对象,例如Python、Java、Scala中的对象,甚至是用户自定义的对象。每个RDD都被分为多个分区,这些分区可以在集群中的不同节点上运行。正是因为Spark使用基于内存的RDD,提供了更快的计算速度与更加灵活的表达方式,让Spark逐渐成为了大数据行业特别是计算领域中新的翘楚。

​​​​​​​2.3HadoopSpark

Hadoop与Spark作为两大著名的大数据处理框架,一直是目前大数据行业中主流的工具,两者在不同方面都各有千秋。Hadoop是一个更加全面的大数据解决方案,它提供了数据存储(如HDFS)、资源管理(如YARN)和数据处理(如MapReduce)。而Spark则主要集中在数据的计算和处理上,它提供了快速的批处理和实时处理能力。从编程模型上来说,Hadoop使用MapReduce编程模型,这是一种基于迭代的模型,适用于大规模数据的批处理。Spark使用基于RDD的编程模型,这是一种更加灵活和表达力强的模型,适用于更广泛的数据处理任务。灾难恢复方面,Hadoop通过将数据写入磁盘来进行灾难恢复,而Spark的RDD可以同时存在于内存和磁盘上,提供更灵活的灾难恢复策略。此外,对于新用户而言,Spark因其简洁直观的API,相对于Hadoop来说,有着更低的学习门槛,更易于上手。

因为两者在功能上具有互补性,Hadoop的HDFS可以与Spark的RDD共存,Hadoop负责数据的存储和管理,而Spark则可以使用其优越的计算能力负责数据的计算和处理。因而很多企业与大数据平台则选择了两者结合的折中办法,通过Hadoop和Spark的统一部署或将Spark集成到Hadoop中来提高大数据处理工作的效率。

3.大数据存储与管理

3.1分布式文件系统****HDFS

Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)是Hadoop生态系统中的核心组件之一。HDFS开源实现了Google文件系统(GFS)的基本思想,其具有可以兼容廉价的硬件设备、流数据读写、强跨平台兼容性等特点。HDFS存储系统采用master/slave架构模型。一个HDFS集群通常是由一个 Namenode和若干个Datanode组成。其中Namenode是主服务器,Datanode是从服务器。Namenode负责管理整个文件系统的元数据,包括文件结构信息、数据 块在集群中的存储位置信息等,同时它也是客户端的直接交互对象。而Datanode 则是集群中负责实际存储数据块的服务器节点。每个Datanode都会周期性地向 Namenode发送心跳信息以方便Namenode对集群的管理。

Hadoop采用多副本方式对数据进行冗余存储,冗余复制因子为3。当其中一个节点发生宕机导致无法读取数据时,可以快速地从其他节点进行数据的读取,保证了数据的可靠性与容错性。此外,HDFS使用文件流式访问,首先由客户端发起读取请求,NameNode查询元数据后找到文件块所在的DataNode地址发送给客户端,客户端随机选择DataNode(就近原则)后DataNode开始传输数据给客户端。数据从磁盘读取并输入到流中,以packet为单位进行校验。客户端以packet为单位接收数据,先存储到本地缓存,然后写入目标文件。客户端完成数据接收后,关闭输入流。正是HDFS的流式文件访问的特性,提供了高吞吐量数据访问特性,提高了文件读取效率。

3.2分布式数据库HBase

Hadoop可以解决大规模数据的离线批量处理问题,但受限于MapReduce编程框架的高延迟数据处理机制,使Hadoop无法满足大规模数据实时处理应用的需求。传统的关系数据库无法应对在数据规模剧增时导致的系统拓展性和性能问题。此时,以BigTable的数据模型为基础,具有长期存储的、多维度的、稀疏的、排序的映射表等性质的数据库开始进入市场。与传统关系型数据库相比以BigTable为基础的数据库具有更好的可扩展性,由于其存储结构相对简单,其读写效率也增加了很多。HBase受到Google BigTable论文的启发进行开发,并以其高可靠、高性能、面向列可伸缩等有点逐渐成为Hadoop框架中的重要部分之一。

HBase是NoSQL数据库中的列族数据库,其数据模型包括表(Table)、行(Row)、列族(Column Family)和单元格(Cell)。每个单元格由行键(Row Key)、列族(Column Family)、列限定符(Column Qualifier)和时间戳(Timestamp)唯一确定。与传统的行式数据库不同,HBase是基于列来存储数据的。这意味着它将数据按列族(Column Family)组织,每个列族可以包含多个列。这种存储方式非常适合于那些列数据经常变动的场景。HBase还提供强读写一致性保证,但并非最终一致性。这意味着在大多数情况下,写入操作会立即返回,但数据可能在稍后被修改或删除。HBase表中的数据被自动分片并存储在不同的Region中,Region是HBase表的水平分区,每个Region可以放置在不同的服务器上。当Region变得过大时,它会被分裂成两个新的Region。HBase能够自动处理服务器故障,当一个RegionServer宕机时,其上的Region会被迁移到其他服务器,以保证服务的持续可用性。

3.3非关系数据库NoSQL数据库****与云数据库

伴随着互联网Web2.0的迅速兴起,非关系型数据库也越来越受到大家的关注,非关系型数据库产品得到迅猛发展。而传统的关系型数据库在面对Web2.0网站时,特别是在面对超大规模和高并发的社交网络类型的Web2.0动态网站时己经难以胜任,暴露了很多难以克服的问题,例如:海量数据的高效存储以及高效访问问题、数据库的高可用性和高可扩展性等问题等。为了解决这些问题,非关系型数据库提供了新的解决思路。NoSQL(Not Only SQL)即“不仅仅是SQL”,是一项全新的数据库革命运动。面对海量数据存储,计算机体系结构需要具备良好的水平可扩展性,水平扩展性是指能够同时连接多个软硬件的特性,并且可以将多个服务器从逻辑上看成一个实体。Hadoop中的HBase就是典型的NoSQL型数据库。主要的应用场景是处理超大规模数据。

NoSQL数据库可分为键值数据库、列族数据库、文档数据库和图形数据库四大类。各自的优缺点及相关产品如下表所示

表1 NoSQL数据库类型分析

类型

键值数据库

列族数据库

文档数据库

图形数据库

数据模型

键/值对

键是字符串对象

值可以是任意类型数据

列族

键/值

值是版本化的文档

图结构

优点

拓展性、灵活性好,大量写操作时性能高

查找速度快,可拓展性强,容易进行分布式拓展,复杂性低

性能好,灵活性高,复杂性低,数据结构灵活等

灵活性高,支持复杂的图形算法,可用于构建复杂的关系图谱

缺点

无法存储结构化数据,条件查询效率低

功能较少,不支持强事务一致性

缺乏统一的查询语法

复杂性高,只能支持一定的数据规模

相关产品

Redis、Riak

BigTable、HBase

MongoDB、CouchDB

Neo4J、OrientDB

云数据库是一种基于云计算技术的在线数据库服务,它允许用户通过互联网访问、管理和存储数据,而无需在自己的设备上安装和维护数据库软件。云数据库有可扩展的存储容量、自动备份、高可用性和安全性等优点,适用于各种规模的企业和组织。云数据库服务的核心优势在于其可扩展性和灵活性。用户可以根据需要选择合适的服务套餐,并根据业务增长轻松扩展资源。此外,云数据库还提供了自动备份和恢复功能,确保数据的安全性和可靠性。目前常见的云数据库服务包括Amazon RDS、Google Cloud SQL、Microsoft Azure SQL Database等。

4.大数据分析

4.1分布式并行编程模型MapReduce

MapReduce是当前最普遍、最流行的大数据处理方法,是大数据处理架构Hadoop中的核心组件之一。它最先由谷歌公司提出并用于大规模数据集的并行计算的核心计算模型。Map即映射,Reduce即化简,它们的主要概念和主要思想,均来自于函数式编程语言。MapReduce将运用于大规模集群上的并行计算的复杂过程高度的抽象为两个函数,即Map函数和Reduce函数,利用一个输入的键值对(即<key,value>)集合来生成一个输出的键值对集合,这就是的编程人员在不了解分布式并行编程的情况下,也可以将自己的程序在分布式系统上运行。

MapReduce在执行时,其工作流程通过切分、映射和汇总三个关键步骤实现。首先,在切分阶段,输入数据被分割成规模适中的数据块,并由分布式文件系统进行有效的分发。其次,在映射阶段,Map任务被分配到各个计算节点上,独立处理每个数据块。用户自定义的Map函数以并行方式对数据块执行操作,生成中间键值对。最后,在汇总阶段,中间结果按键进行排序和分组,确保相同键的值聚集在同一Reduce任务中。用户定义的Reduce函数对这些值执行操作,生成最终的输出结果。MapReduce框架通过这一流程,为大规模数据处理提供了高效、可靠的解决方案,广泛应用于数据密集型科学研究和工业应用中。

5.大数据计算

大数据时代,数据的种类繁多。传统的数据库中存放的数据来自不同来源,经过预处理后导入至数据库,不会再进行大量的更新,交由技术人员进行分析。这样的数据被称为静态数据。而近年来,在Web应用、网络监控、传感检测等领域兴起了一种新的数据密集型应用—流数据,即数据以大量、快速、时变的流形式持续到达。这类数据根据其实时性的特点被称为动态数据。除此以外,还有很多大数据是以大规模图或网络的形式呈现,例如社交网络、传染病途径等,这类数据需要经过转换为图模型后进行处理。在很长一段时间内,数据计算模型只能批量处理静态数据(例如MapReduce),不能很好的对大量数据进行连续处理,更无法高效处理图结构的数据。因而出现了对实时数据进行实时处理的流计算,以及对图结构数据进行处理的图计算模型。

5.1流计算与****Storm

流计算是一种强调对实时数据流进行高效处理的计算模型,适用于需要实时响应和分析不断变化的数据的场景。典型的流计算应用包括金融交易监控、网络实时分析等。在流计算中,数据以连续的、无限的流动形式到达系统,要求计算系统能够实时处理、分析和产生结果。流计算的处理流程包括实时数据采集、数据实时计算和实时查询服务。

Twitter Storm是一个免费、开源的分布式实时计算系统。Storm对于实时计算的意义重大。Storm可以简单高效可靠的处理流数据并支持多种编程语言。Storm的核心组件包括Spout、Bolt和Topology。Spout负责产生数据流,Bolt执行实时数据处理操作,而Topology则描述了整个数据处理的拓扑结构。Storm通过分布式消息传递机制实现数据在各个组件之间的流动,具有高可靠性和可伸缩性。其体系结构使得Storm适用于实时大数据处理,能够满足对低延迟和高吞吐量的需求。

5.2图计算与Pregel

图计算是一种处理图结构数据的计算模型。在图计算中,图的节点表示实体,边表示节点之间的关系。图计算主要用于执行基于图的算法,如最短路径、社交网络分析等。典型的图计算应用包括社交网络分析、网络流量优化等。

Pregel是一种基于BSP(Bulk Synchronous Parallel Computing Model,又称“大同步”模型)模型实现的并行图处理系统。Pregel进行处理时,用户先定义图的初始状态和计算逻辑。然后,Pregel系统将计算任务分发给不同的计算节点,每个节点执行局部计算,节点之间通过消息传递机制进行通信。这个迭代过程一直进行,直到满足用户定义的收敛条件。最后,Pregel系统生成最终的计算结果。整个工作流程以迭代的方式,通过节点之间的协同计算和消息传递,处理大规模图结构上的算法问题。

6.结束语

Hadoop框架是大数据技术中最早的、也是最著名的大数据处理框架之一。它的主要设计思想承袭了谷歌公司的Google文件系统(GFS)和MapReduce,为Hadoop的出现与发展提供了良好的理论基础。大数据技术的发展日新月异,逐渐进入各个领域成为新兴技术。也正因如此,大数据的数据类型逐渐增加,原有的大数据框架在很多方面已经不再适用。像MapReduce计算框架批量处理的计算局限性,虽然经过更加细致的数据处理与输入策略可以使其继续进行流数据等实时数据进行处理,但效果并不能尽如人意。因而出现了Spark等新的计算模型。大数据技术相对于其他网络技术来说其研究与理论基础仍处于一种起步状态,除了当前已有的Hadoop框架以及根据不同需求进行模块优化后的Hadoop框架、Spark框架以外,还没有其他大范围流行的大数据处理框架,相信在未来随着大数据应用的更加深入,将会出现更多新的研究成果甚至新的处理框架思路,从而得到更加切合当下实际的大数据处理框架与模型。

参考文献

  1. 林子雨.大数据技术原理与应用[M].2版.北京:人民邮电出版社,2017.
  2. 梅宏,杜小勇,金海,等.大数据技术前瞻[J].大数据,2023,9(1):1-20.
  3. 周德,杨成慧,罗佃斌,.基于Hadoop的分布式日志分析系统设计与实现[J].现代信息科技,2023,(23):57-60.
  4. 冯晓普.HBase存储的研究与应用[D].北京邮电大学,2014(04).
  5. 门威,.基于MapReduce的大数据处理算法综述[J].濮阳职业技术学院学报,2017,(05):85-88.
  6. 李青.基于NoSQ L的大数据处理的研究[D].西安电子科技大学,2014(11).
标签: 大数据

本文转载自: https://blog.csdn.net/Sdom_L/article/details/141134895
版权归原作者 小广同学 所有, 如有侵权,请联系我们删除。

“大数据技术基础综述”的评论:

还没有评论