基于大数据框架的数据存储与管理

王 华

(河南工业贸易职业学院 河南 郑州 451191)

当前,我们处于网络互联时代,每时每刻都会产生大量的信息,数据来自用户的搜索、电子邮件、系统日志、传感器网络、RFID标签、飞机、汽车等。这些数据具有多样性、原始性、半结构化或者非结构化,所以通常并不适合关系数据库(relational database,RDB)进行处理。最重要的是,非结构化数据占数据总量的80%以上,比结构化数据要多得多。其中,易于搜索的结构化数据主要包括:文本、数字、符号、日期等,不容易搜索的非结构化数据主要包括:文本、电子邮件、网站、数据媒体、移动数据、传感器数据、卫星图像等。此外,数据是以不同的方式进行处理的,结构化数据较为直观,可挖掘性较差;
非结构化数据需要工具分析海量数据,发挥数据的巨大价值。

1.1 大数据的定义

巨量数据的集合就是大数据,即BD(big data)。BD是收集大量复杂数据的数据集,需要对数据进行捕获、存储、分析、共享、搜索、可视化等操作,因此数据库管理系统(database management system,DBMS)很难处理这些数据集。大数据的“大”指的是数据量巨大,可能是ZB级别的,并且来源不同。大量的数据以极快的速度传输,随着数据的增加,处理速度也需要加快。因为数据量巨大,需要更多的时间进行收集和处理,这是DBMS难以胜任的原因。

1.2 大数据的特点

大数据的特点主要有以下几个方面:

Volume(大量):数据容量大是大数据区别于传统数据最显著的特征。它指的是一个数据的数量,可以达到EB或ZB的数据量。根据IDC的预测,预计到2025年,这个数字是175 ZB。

Velocity(高速):指的是数据的速度,是对数据产生和收集速度的测算。描述了数据速度的变化与以不同速度合并的数据集。

Variety(多样):基于不同的应用系统、不同的设备,决定了大数据数据来源的广泛性,数据形式的多样性。除了结构化数据以外,还包含视频、音频、图像等非结构化和半结构的数据,这些数据通过感知设备进行采集。

Value(低价值密度):大数据最大的价值在于通过从大量不相关的各种类型的数据中,挖掘出对未来趋势与模式预测分析有价值的数据,并通过机器学习方法、人工智能方法或数据挖掘方法深度分析,发现新规律和新知识[1]。

对于大量需要处理的非结构化数据,需要使用Map Reduce框架,以可靠、容错的方式进行处理。Map Reduce框架会将存储的大量数据切分为若干个数据块,这个任务由Map以并行的方式来完成。框架对数据块进行排序,然后将结果输入给Reduce。所有的数据会被存储在文件系统中,框架负责对数据的调用[2]。框架中主要包括以下内容:

2.1 分布式存储

在大数据框架中,分布式文件存储是经常使用的功能。Hadoop原生的HDFS分布式文件系统可以将文件交叉存储在各个节点,可以让多台计算机和用户分享文件和存储空间。存储的数据可以自动保存为多个副本,具有高容错性。

2.2 大规模并行处理

大规模并行处理(massively parallel processing,MPP)架构与Hadoop架构是将大规模数据的计算和存储分布到不同的独立的节点中去处理,但两者又有所不同:MPP实际上是指分布式数据库,最大的特点是处理和存储数据速度快,但是只能处理结构化的数据;
Hadoop架构是以Hadoop项目为基础的一系列分布式计算和存储框架,可以处理更大量的数据,硬件成本低,扩展更为方便。

2.3 容错以及可扩展的系统

为了确保不发生故障,大数据系统通常都会是基于主从一致性的架构,这是为了解决因主从没有同步造成的数据读取问题。在实际的应用场景中,一般都是读多写少,所以一般采用一主多从、读写分离的数据库架构来提升数据库的读性能。大多数解决方案都会增加集群来处理大量的数据,例如Apache、HDP,提供完整的大数据解决方案。Map Reduce框架具有操作简单、易扩展等特点。大数据解决方案和工具可以在以下描述中获得:①集成工具;
②处理资源、工作流和服务的工具;
③处理元数据服务的工具;
④用于数据分析的工具;
⑤用于交互式的工具。

计算机造型技能的掌握,使学生可以根据视图或自己的想象构造形体,并实时验证思维正确性。促进了学生三维形状和二维图形之间直觉思维的形成。是不可多得的自主学习的好方式。

2.4 用于大数据的数据库

①NoSQL:在大数据中,大量的数据为非结构化数据,而关系数据库管理系统(relational database management system,RDBMS)主要处理的是结构化数据,显然是不合适的。为了解决这一问题,需要使用NoSQL数据库来处理非关系型数据和非结构化数据,包括:MongoDB、DynamoDB、HBase、Redis、CouchDB、CouchBase、OrientDB、InfiniteGraph、Neo4j、FlockDB、Cassandra等,他们拥有一个或多个数据模型:键值存储数据库、列存储数据库、文档型数据库、图形数据库,解决了高并发读写问题、海量数据的高效存储和访问问题,实现了高可用性及高可扩展性。

②NewSQL:NoSQL数据库能够很好地应对海量数据的挑战,为用户提供可观的可扩展性和灵活性,但是它也有缺点:NoSQL数据库没有统一的查询语句,不支持SQL查询;
不支持ACID特性;
NoSQL功能较为单一。为了解决以上问题,促进了基于大数据的NewSQL新型关系数据库管理系统的开发与应用。NewSQL是RDBMS中的数据模型(关系型、符合ACID)和NoSQL中的计算框架、分布式存储、开源特定的结合产物。NewSQL数据库不仅具有NoSQL数据库对海量数据的存储管理能力,同时还保留了传统数据库支持的ACID和SQL特性。

3.1 大数据数据存储

RDBMS是传统的存储系统,通过SQL访问结构化数据,但在可访问性、可扩展性方面面临着诸多挑战。由于一台计算机的存储空间有限,就需要将大量的数据存储在多台计算机上,这就是分布式文件系统(DFS),在Hadoop中实现的分布式文件系统为HDFS。Map Reduce依赖于DFS,提供计算可扩展性。NoSQL+NewSQL数据库存储已成为BDS最重要的数据库工具,主要是因为该数据库存储具有模式灵活和可扩展性,其扩展性包括数据存储规模以及写入操作的规模。在couchDB中,在JavaScript中利用Map Reduce范式进行查询,将索引和查询组合在一起,以便快速运行。需要指出的是,HDFS提供了在数据库内部通过SQL Oracle和数据集成查询Hadoop中的数据的能力,Hadoop生成的Hive类似于在Hadoop集群上执行Map Reduce时的查询。

3.2 大数据数据管理

随着存储容量的增加,数据的平均大小也在不断增加,但存储容量的增长速度远远小于数据量的增长。数据量爆发式增长的时代,DBMS无法处理如此大规模的数据,这就需要使用DB服务器处理数据,而DB服务器的可扩展性是有限制的。虚拟服务器技术能够在应用服务器端通信不足的情况下解决提交资源的问题,存储空间管理也需要同时解决并发I/O、主从架构的问题。BDA与传统的分析方法不同,因为数据量巨大,RDBMS是无法处理的。Hadoop是分布式批处理基础结构包括:Hadoop内核、HDFS以及Map Reduce几个项目组成。

3.2.1 数据挖掘

数据挖掘是一种从数据库中提取有用信息的技术,可以对信息进行预处理,通过不同方法对结果值进行分析。数据挖掘与人工智能、机器学习等领域有着密切的联系。虽然数据挖掘与大数据的数据管理的基本方法极其相似,但是在规模上有着明显的区别。因数据挖掘要处理不同的数据源、数据类型的多样性,数据挖掘算法能力和可扩展性需要得到解决,为了解决数据挖掘的需求和挑战,大数据就诞生了[3]。如图1所示。

3.2.2 云计算

3.2.3 HDFS之Map Reduce

Hadoop自带DFS,其中的文件是在物理存储中以分块存储实现的,不管是老版本的64 MB,还是新版本的128 MB,都是为了衡量存储时是否要进行切块。例如,实际文件大小可以是500 MB、100 GB、1 TB,都可以进行存储。Hadoop架构包含名称节点、辅助名称节点、数据节点、作业跟踪器以及任务跟踪器。名称节点负责维护存储在HDFS上的所有文件的元数据信息、文件以块的方式存储。辅助名称节点的工作是维护名称节点的合法性,并及时更新名称节点的信息。数据节点是真正存储数据的节点,提供来自文件系统客户端的读写请求,并根据需求存储并检索数据块。任务跟踪器在数据节点上运行,守护进程在集群中每台计算节点中运行,用来启动和管理各个Map Reduce任务,从数据节点获取数据并完成任务,与作业跟踪器进行通信。作业跟踪器负责一个任务的整个执行过程,调度各个子任务到各自的计算节点,是Hadoop系统的主要组件之一。图2显示了Hadoop的框架结构,用户将自己的工作以Map Reduce任务数据节点加任务跟踪器的形式呈现在类似的系统上,以达到最佳的读写速度。

Map Reduce是由谷歌提出的,主要是为了解决数据的并行化处理和大型数据集的存储、提供编程范例,允许使用以及方便地分配大量计算密集型任务。因此,目前许多编程语言都具有Map Reduce的实现和扩展。

Map过程:每个Mapper任务是一个java进程,它会读取HDFS中的文件,解析成很多的键值对,经过我们覆盖的map方法处理后,转换为很多的键值对再输出。经过Recorder Reader后,Mapper任务会接收输入的分片,然后不断地调用map()方法,对记录进行处理,处理完毕后,转换为新的<key,value>输出。

Reducer过程:每个Reducer任务是一个java进程。Reducer任务接收Mapper任务的输出,归约处理后写入到HDFS中。从文件中取出一个一个的键值对Group,对已排序输出的每个键调用reduce函数。此阶段的输出直接写到输出文件系统,一般为HDFS以实现可靠存储[4]。

3.2.4 大数据建模

在收集、存储大量数据之后,如何组织数据、如何便捷使用数据、如何实现数据可扩展性是目前面临的几个问题。大数据建模就是要对这些数据进行分析、挖掘,通过建立模型找到数据的客观规律,实现以下几个功能:一是自动预测趋势和行为。数据挖掘自动在大型数据库中寻找预测信息以迅速直接由数据本身得出结论;
二是关联分析。在数据库中找出具有强相关关系的几个属性;
三是聚类。将数据库中类似的记录划归到一起,对事物进行再认识。常见的模型算法主要有:决策树、神经网络、贝叶斯网络、多元线性回归等。

3.2.5 大数据安全

大数据与传统数据资产相比,具有较强的社会属性。随着大数据应用的不断增加和应用范围的扩大,大数据网络安全问题变得至关重要。在数据保护和访问控制中,存在着许多与大数据相关的安全问题,例如:数据多样性、敏感性、节点有效监控、隐私保护等。为实现安全防护目标,需要融合安全治理、技术、标准、运维和测评来系统性地解决大数据的安全问题。要解决以上问题,可以通过大数据安全体系实现。安全体系主要涉及:数据传输安全(安全数据通道、SSL VPN)、隐私保护技术(数据加密、匿名化)、数据加密(静态数据加密、动态数据加密)、数据挖掘安全(身份认证、动态口令认证、访问控制)、数据备份、数据镜像等[5]。同时,需要以标准为保障,实现安全互联协同,达到多维立体的防护。

目前,大数据已成为创新的热点,相关技术工具的持续开发为企业带来了更多的选择,如数据仓库和数据可视化。大数据专注于数据服务、数据分析、数据采集,而数据挖掘更注重数据存储能力,云计算专注于计算架构和实践。大数据和云计算是同一个问题的两个方面,云计算给大数据带来了巨大的变化,为大数据提供了存储空间。Hadoop技术应用于存储架构,为企业带来低成本与较高的灵活性,在不同的节点都有自己的存储和计算资源,保证大数据分析业务的正常运行,可扩展并且具有性价比优势。

猜你喜欢 可扩展性结构化数据挖掘 改进支持向量机在特征数据挖掘中的智能应用九江学院学报(自然科学版)(2022年2期)2022-07-02改进的非结构化对等网络动态搜索算法军民两用技术与产品(2021年2期)2021-04-13深度学习的单元结构化教学实践与思考云南教育·小学教师(2021年12期)2021-03-23探讨人工智能与数据挖掘发展趋势大众投资指南(2021年35期)2021-02-16基于事故数据挖掘的AEB路口测试场景北京航空航天大学学报(2020年10期)2020-11-14结构化面试方法在研究生复试中的应用计算机教育(2020年5期)2020-07-24左顾右盼 瞻前顾后 融会贯通——基于数学结构化的深度学习福建基础教育研究(2020年3期)2020-05-28恩智浦推出全新i.MX 8X 处理器,为工业应用带来更高的安全性、可靠性和可扩展性汽车零部件(2017年3期)2017-07-12软件工程领域中的异常数据挖掘算法电子技术与软件工程(2016年24期)2017-02-23基于微软技术的高可扩展性中小企业系统解决方案研究电脑知识技术(2016年14期)2016-06-30

推荐访问:数据存储 框架 数据