大数据系统发展的技术路线

article/2025/10/23 19:45:35

自从大数据出来后,数据管理界发生了巨大的变化,技术驱动成为大数据管理系统的一个主要变革力量。

 

传统的数据库管理系统以结构化数据为主,因此关系数据库系统(RDBMS)可以一统天下满足各类应用需求。然而,大数据往往是半结构化和非结构化数据为主,结构化数据为辅,而且各种大数据应用通常需要对不同类型的数据内容检索、交叉比对、深度挖掘与综合分析。面对这类应用需求,传统数据库无论在技术上还是功能上都难以为继。因此,近几年出现了oldSQL、NoSQL 与NewSQL 并存的局面。(这几个术语后面专题讨论)

总体上,按数据类型与计算方式的不同,面向大数据的管理系统与处理采用不同的技术路线,大致可以分为四类。

 

1、MPP并行数据库和内存数据库

第一类技术路线主要面对的是大规模的结构化数据。针对这类大数据,通常采用新型数据库集群。它们通过列存储或行列混合存储以及粗粒度索引等技术,结合MPP(Massive Parallel Processing)架构高效的分布式计算模式,实现对PB 量级数据的存储和管理。列存储数据库技术针对数据分析的特点,能够对数据进行高性能的压缩,查询也只需访问必要的列,节省了很多I/O,分析性能比传统行存储数据库有了很大的提升(可以多达两个数据量级)。

同时,随着内存成本的降低、单机内存的增大,以SAP HANA为代表的内存数据库也采用了列存储技术,支持更高性能的数据分析。这些技术的发展,使得它们成为TB级别数据仓库的最先进技术,已经涵盖了绝大多数OLAP市场,在企业分析类应用领域已获得广泛应用。

然而,MPP并行数据库和内存数据库依赖昂贵的硬件配置,其中的很多商业软件还有价格高昂的使用许可证,这些成本并不是每个公司都能够承担或者愿意承担的;而开源大数据系统采用通用、廉价的硬件设施,使得人们更容易尝试和使用这些系统,数据和业务迁移的成本也更低。同时,以Hadoop为代表的开源大数据系统形成较大的社区之后,就会有各种相关系统补充进来,构成生态圈,满足人们不同的需求,具有非常好的开放性。因此,就出现了第二类以Hadoop为典型的开源系统技术路线,并逐渐得到认可,并成为大数据分析的新宠儿。

2、基于Hadoop开源体系的大数据系统

 

第二类技术路线要面对的是半结构化和非结构化数据。应对这类应用场景,基于Hadoop开源体系的系统平台更为擅长。它们通过对Hadoop生态体系的技术扩展和封装,实现对半结构化和非结构化数据的存储、管理、计算等功能。

目前,Hadoop、MapReduce这类分布式处理方式已经成为大数据处理各环节的通用处理方法。Hadoop是一个由Apache基金会开发的大数据分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,轻松地在Hadoop上开发和运行处理大规模数据的分布式程序,充分利用集群的威力高速运算和存储。Hadoop是一个数据管理系统,作为数据分析的核心,汇集了结构化和非结构化的数据,这些数据分布在传统的企业数据栈的每一层。Hadoop也是一个大规模并行处理框架,拥有超级计算能力,定位于推动企业级应用的执行。Hadoop又是一个开源社区,主要为解决大数据的问题提供工具和软件。虽然Hadoop提供了很多功能,但仍然应该把它归类为多个组件组成的Hadoop生态圈,这些组件包括数据存储、数据集成、数据处理和其他进行数据分析的专门工具。一个典型的Hadoop 生态系统主要由HDFS、MapReduce、Hbase、Zookeeper、Oozie、Pig、Hive等核心组件构成,另外还包括Sqoop、Flume等框架,用来与其他企业融合。(很多新名词,可以自行Google)

低成本、高可靠、高扩展、高有效、高容错等特性让Hadoop成为最流行的大数据分析系统,然而其赖以生存的HDFS 和MapReduce 组件却让其一度陷入困境——批处理的工作方式让其只适用于离线数据处理,在要求实时性的场景下毫无用武之地。因此,各种基于Hadoop的工具应运而生。为了减少管理成本,提升资源的利用率,有当下众多的资源统一管理调度系统,例如Twitter的Apache Mesos、Apache的YARN、Google 的Borg、腾讯搜搜的Torca、Facebook Corona等。Apache Mesos是Apache孵化器中的一个开源项目,使用ZooKeeper实现容错复制,使用Linux Containers 来隔离任务,支持多种资源计划分配(内存和CPU)。提供高效、跨分布式应用程序和框架的资源隔离和共享,支持Hadoop、MPI、Hypertable、Spark 等。YARN又被称为MapReduce 2.0,借鉴Mesos,YARN 提出了资源隔离解决方案Container,提供Java 虚拟机内存的隔离。在YARN平台上可以运行多个计算框架,如MR、Tez、Storm、Spark等。

此外,由Cloudera开发的Impala是一个开源的Massively Parallel Processing(MPP)查询引擎。与Hive 相同的元数据、SQL语法,可以直接在HDFS或HBase上提供快速、交互式SQL 查询。Impala是在Dremel的启发下开发的,不再使用缓慢的Hive + MapReduce 批处理,而是通过与商用并行关系数据库中类似的分布式查询引擎,可以直接从HDFS 或者HBase 中用SELECT、JOIN 和统计函数查询数据,从而大大降低了延迟。Hadoop社区正努力扩展现有的计算模式框架和平台,以便解决现有版本在计算性能、计算模式、系统构架和处理能力上的诸多不足。

3、MPP并行数据库与Hadoop的混合集群

 

第三类技术路线主要面对的是结构化和非结构化混合的大数据。采用MPP并行数据库与Hadoop的混合集群来实现对百PB量级、EB量级数据的存储和管理。用MPP来管理计算高质量的结构化数据,提供强大的SQL和OLTP型服务;同时,用Hadoop实现对半结构化和非结构化数据的处理,以支持诸如内容检索、深度挖掘与综合分析等新型应用。

 

4、内存计算与Hadoop的混合

 

第四类技术路线Hadoop与内存计算模式的混合,目前已经成为实现高实时性的大数据查询和计算分析新的趋势。这种混合计算模式之集大成者当属UC Berkeley AMP Lab开发的Spark生态系统。

Spark是开源的类似Hadoop的通用的数据分析集群计算框架,用于构建大规模、低延时的数据分析应用,建立于HDFS之上。Spark提供强大的内存计算引擎,几乎涵盖了所有典型的大数据计算模式,包括迭代计算、批处理计算、内存计算、流式计算(Spark Streaming)、数据查询分析计算(Shark)以及图计算(GraphX)。Spark 使用Scala 作为应用框架,采用基于内存的分布式数据集,优化了迭代式的工作负载以及交互式查询。Spark支持分布式数据集上的迭代式任务,实际上可以在Hadoop文件系统上与Hadoop一起运行(通过YARNMesos等实现)。另外,基于性能、兼容性、数据类型的研究,还有SharkPhoenixApache AccumuloApache DrillApache GiraphApache HamaApache TezApache Ambari 等其他开源解决方案。未来相当长一段时间内,主流的Hadoop平台改进后将与各种新的计算模式和系统共存,并相互融合,形成新一代的大数据处理系统和平台。同时,由于有Spark SQL的支持,Spark是既可以处理非结构化数据,也可以处理结构化数据的,为统一这两类数据处理平台提供了非常好的技术方案,成为目前的一个新的趋势。

 

总之,我们可以得出以下结论(或预测):

  • Hadoop、Spark这类分布式处理系统已经成为大数据处理各环节的通用处理方法,并进一步构成生态圈;

  • 结构化大数据与非结构化大数据处理平台将逐渐融合与统一,而不必为每类数据单独构建大数据平台;

  • MapReduce将逐渐被淘汰,被Spark这类高性能内存计算模式取代,同时Hadoop的HDFS将继续向前发展,成为大数据存储的标准;

  • 传统的SQL技术将在大数据时代继续发扬光大,有了SQL on Hadoop/Spark的技术支持,SQL将继续作为大数据时代的霸主,同时也被NoSQL补充;

  • 以SQL、Hadoop/Spark为核心的大数据系统将逐渐挑战传统数据库市场,并逐步代替传统的数据仓库。

 

技术!技术!


http://chatgpt.dhexx.cn/article/yuuipGU2.shtml

相关文章

大数据平台开发:大数据系统架构模块解析

企业要开展大数据相关业务,首先就需要基于自身的需求,来设计搭建数据系统平台。而大数据系统平台的搭建,需要基于实际需求,来进行系统架构规划。今天我们就从大数据平台开发的角度,来对大数据系统架构模块做一个简单的…

大数据画像系统-1.0

大数据画像系统-1.0 写在最前面操作流程与资源资源获取创建 Flask 工程添加必要第三方库将刚刚下载的文件放入 Flask 工程运行 效果首页城市数据页个人画像页 结语 写在最前面 你能找到这篇文章,那么画像系统是什么,你应该已经知道,大数据是…

【云计算与大数据技术】大数据系统总体架构概述(Hadoop+MapReduce )

一、总体架构设计原则 企业级大数据应用框架需要满足业务的需求,一是要求能够满足基于数据容量大,数据类型多,数据流通快的大数据基本处理需求,能够支持大数据的采集,存储,处理和分析,二是要能…

大数据系统计算技术展望

大数据是新一代信息技术的核心方面和竞争前沿,也是制约大数据产业快速发展的关键瓶颈。大数据技术创新能力已经成为后信息时代衡量国家竞争力的重要指标。与传统信息产业的发展过程相似,大数据必将逐渐形成一个相对独立、体系完善的产业形态,…

什么是大数据系统架构

大数据的应用开发过于偏向底层,具有学习难度大,涉及技术面广的问题,这制约了大数据的普及。现在需要一种技术,把大数据开发中一些通用的,重复使用的基础代码、算法封装为类库,降低大数据的学习门槛&#xf…

大数据系统的基础,大数据存储和计算技术

在存储方面,2000 年左右谷歌等提出的文件系统(GFS)、以及随后的 Hadoop 的分布式文件系统 HDFS(Hadoop Distributed File System)奠定了大数据存储技术的基础。 与传统系统相比,GFS/HDFS 将计算和存储节点在物理上结合在一起,从而避免在数据…

大数据系统架构的基本介绍

从数据处理的一般流程可以看到,在大数据环境下需要的关键技术主要针对海量数据的存储和海量数据的运算。传统的关系数据库经过近40年的发展已经成为了一门成熟同时仍在不断演进的数据管理和分析技术,结构化查询语言(SQL)作为存取关…

大数据系统开发综合实践(一)

又来了新的任务,需要学习一些大数据开发的相关操作,其实之前学过一些内容,但是当初没有好好学,现在还得重新学习起来。 大数据系统中各种模块的作用 HDFS:分布式文件系统,用来存储数据 YARN:用…

大数据系统体系架构(含图示)

目录 1 大数据体系架构图2 数据采集层3 数据计算层4 数据服务层5 数据应用层 1 大数据体系架构图 2 数据采集层 阿里的的日志采集包括两大体系: Aplus.JS是Web端的日志采集技术方案,UserTrack是APP端的日志采集技术方案;在采集技术基础上&am…

大数据系统基础

注:本文是学习由清华大学王建明等老师的公开课大数据系统的笔记。 大数据系统基础 绪论 1、什么是大数据 我们的生活无时无刻不在产生着数据,那是什么在处理这些庞大的数据呢? 1、大数据的定义? 大数据(big data)&#xff0c…

大数据系统架构

大数据系统大体可以分成以下四个部分: 1,数据采集层 2,数据计算层 3,数据服务层 4,数据应用层 下图是阿里巴巴大数据系统架构图: 一、数据采集层 数据采集主要分成以下三块数据: 1&#xff0c…

大数据系统及分析

IDC将大数据技术定义为:“为更经济地从高频率的、大容量的、不同结构和类型的数据中获取价值而设计的新一代架构和技术。” 大数据的关键在于种类繁多、数量庞大、使用传统的数据分析工具无法在可容忍的时间内处理相应的数据。大数据分析主要涉及两个不同的领域&…

大数据测试之大数据系统及特点

一、大数据系统简介 扫健康码了没?相信大家每天都会不厌其烦地听到这种询问。 支付宝付款,相信大家也是每天都在扫码付款,这已经成为了生活的一部分。 这些能产生非常巨量数据的应用系统,我们称之为大数据系统。 大数据系统还需要…

QMap与Json相互转换

在Qt中可以用QJsonDocument、QJsonParseError、QJsonObject、QJsonArray、QJsonValue等类来解析json数据,但这种解析有时比较麻烦,代码量也比较多,其实也可以用QMap来解析Json数据,并且QMap和Json可以 相互转换,下面来…

QMap 和 QHash容器

QMap类、 QHash类 QMap与QHash差别&#xff1a; ①QHash比QMap查找速度更快。 ②QHash以任意顺序存储&#xff0c;QMap以Key顺序存储数据。 ③QHash的Key必须提供operator()及一个全局的qHash(Key)函数&#xff0c;而QMap的Key必须提供operator<()函数。 存储一键多值数据时…

关于QMap的几点总结思考

关于QMap的几点总结思考 题记&#xff1a; 前段时间集中精力写了数据的分拣算法&#xff0c;用到了容器QMap和QMultiMap。回头再来回去该算法的时候&#xff0c;又觉得当时好像不是自己写的一样&#xff0c;于是有必要将QMap类来总结一下。 首先来了解下C中STL中的map&#x…

Qt容器:QMap

一、描述 QMap<Key, T> 是 Qt 的通用容器类之一。 它存储&#xff08;键&#xff0c;值&#xff09;对并提供按键快速查找。 二、成员函数 1、QMap::const_iterator constFind(const Key &key) 返回一个 const 迭代器&#xff0c;该迭代器指向map中具有 key 键的项…

java swing 实现简单计算器

gitee仓库地址&#xff1a;Calculator: 简单计算器 (gitee.com)https://gitee.com/misaka10000/calculator 常量定义&#xff1a; package com.wuzihao.calculator;import java.awt.*;public class Constant {public static final String NAME "简单计算器";publi…

C++实现“简单计算器”

最近在看九度上面的题目&#xff0c;其中一道题本以为比较简单&#xff0c;但花了不少时间&#xff0c;题目如下&#xff1a; 题目1019&#xff1a;简单计算器 我的思路是先读入一个字符串&#xff0c;再将字符串里面的数字和运算符号分别提取出来&#xff0c;最后根据运算的…

C++ 简单计算器

C实现简单的计算器 实现一个简单的计算器&#xff0c;可以实现对数字的加减乘除运算并输出显示结果。 完整代码 #include <iostream> using namespace std;int main() {char op;float num1, num2;cout << "输入运算符&#xff1a;、-、*、/ : ";cin &…