CN113672583B - 基于存储与计算分离的大数据多数据源分析方法及系统 - Google Patents

基于存储与计算分离的大数据多数据源分析方法及系统 Download PDF

Info

Publication number
CN113672583B
CN113672583B CN202110960167.2A CN202110960167A CN113672583B CN 113672583 B CN113672583 B CN 113672583B CN 202110960167 A CN202110960167 A CN 202110960167A CN 113672583 B CN113672583 B CN 113672583B
Authority
CN
China
Prior art keywords
data
cache
computing
cluster
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110960167.2A
Other languages
English (en)
Other versions
CN113672583A (zh
Inventor
叶禧辉
肖钟城
吴名朝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Whale Cloud Technology Co Ltd
Original Assignee
Whale Cloud Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Whale Cloud Technology Co Ltd filed Critical Whale Cloud Technology Co Ltd
Priority to CN202110960167.2A priority Critical patent/CN113672583B/zh
Publication of CN113672583A publication Critical patent/CN113672583A/zh
Application granted granted Critical
Publication of CN113672583B publication Critical patent/CN113672583B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2219Large Object storage; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了基于存储与计算分离的大数据多数据源分析方法及系统,该方法包括以下步骤:将大数据集群的计算集群和缓存集群进行分离部署,并构建外挂分析平台;采用分布式技术部署的计算集群将数据源中的数据抽取至计算节点,并对数据进行实时计算;利用分布式技术部署的缓存集群架构,并加速计算集群从数据源抽取数据并提供分布式缓存。有益效果:通过缓存方式解决了实时数据抽取带来的网络带宽和IO的压力,并且使用了多级缓存的技术,结合使用内存和磁盘的方式,解决大表缓存占用大量内存空间的问题;本发明缓存支持全透明自动化的加载方式,应用端无需关注底层的实现,通过统一的JDBC接口实现访问与查询检索。

Description

基于存储与计算分离的大数据多数据源分析方法及系统
技术领域
本发明涉及数据分析领域,具体来说,涉及基于存储与计算分离的大数据多数据源分析方法及系统。
背景技术
当前利用大数据技术进行数据分析通常有三种方式:
方案一:依赖非实时的数据预处理的批量计算,有较长的时延,时效性不理想,无法面对快速变化的数据分析需求。比如需要分析的数据是是分散在多个不同的数据源里面的,甚至数据和存储技术都可能不一致的,传统的做法是通过ETL方式先对不同的数据源进行抽取,清洗和数据统一拉通到一个集中的地方,再进行批量统计分析,最后吐出到结果表,提供JDBC的接口给应用查询。
方案二:使用专用的即席查询分布式系统,一般是存储和计算一体的专用系统,具有部署不灵活,需要在已有的系统的进行改造和数据迁移,额外占用数据存储空间的缺点。
方案三:计算和存储分离,也是本方案采用的方式,一般的计算和存储分离会存在效率问题,计算节点需要花费大量的实际通过网络进行数据抽取,实际的性能往往比方案二的效果差。
另外,现有的大数据技术进行数据分析无法解决目前大表实时统计的BI 需求,且无法解决数据量巨大和结构复杂带来的时效性较差的问题。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出基于存储与计算分离的大数据多数据源分析方法及系统,以克服现有相关技术所存在的上述技术问题。
为此,本发明采用的具体技术方案如下:
根据本发明的一个方面,提供了基于存储与计算分离的大数据多数据源分析方法,该方法包括以下步骤:
将大数据集群的计算集群和缓存集群进行分离部署,并构建外挂分析平台;
采用分布式技术部署的计算集群将数据源中的数据抽取至计算节点,并对数据进行实时计算;
利用分布式技术部署的缓存集群架构,并加速计算集群从数据源抽取数据并提供分布式缓存。
进一步的,所述数据源包括分布式存储HDFS、关系数据库MYSQL、消息中间件KAFKA及文件系统。
进一步的,所述计算集群具备动态扩展、同步多数据源及实时计算功能;
其中,计算集群采用分布式架构,并适应性分配计算能力;
计算集群采用插件的方式连接不同的数据源,并通过不同的连接器的实现方式,对接不同类型的数据源。
进一步的,所述缓存集群和所述计算集群基于InfiniBand网络,实现分布式计算的高速连接,且所述缓存集群包括内存、固态硬盘和本地磁盘的三级缓存处理结构,所述缓存集群中的缓存节点对计算节点提供加速能力,且所述缓存节点采用内存、固态存储及硬盘存储的存储介质将数据存储至存储节点。
进一步的,所述采用分布式技术部署的计算集群将数据源中的数据抽取至计算节点,并对数据进行实时计算包括利用InfiniBand网络从缓存集群的节点查询数据,缓存节点先从存储节点抽取数据,然后再把数据返回到计算节点,并且缓存节点根据LRU原则,把读取的数据加载到缓存中,方法如下:
对数据块对应的文件计算哈希值,通过哈希值取模并选择缓存的worker 节点;
计算节点连接选择的缓存worker节点;
缓存Worker节点判断文件是否已经缓存,如果已经缓存则通过InfiniBand 高速网络直接返回到计算节点,否则启动异步线程,从远程HDFS读取数据,并缓存至本地节点;
缓存worker首先在内存区域寻找空间,如果有空间,则直接把文件下载到内存区域中,否则通过LRU规则,置换内存中已经缓存的文件至硬盘区域中;
缓存worker节点下载文件完毕后,把结果返回给计算节点。
根据本发明的另一个方面,还提供了基于存储与计算分离的大数据多数据源分析系统,该系统包括部署模块、计算模块及缓存模块;
其中,所述部署模块,用于将大数据集群的计算集群和缓存集群进行分离部署,并构建外挂分析平台;
所述计算模块,用于采用分布式技术部署的计算集群将数据源中的数据抽取至计算节点,并对数据进行实时计算;
所述缓存模块,用于利用分布式技术部署的缓存集群架构,并加速计算集群从数据源抽取数据并提供分布式缓存。
进一步的,所述计算集群具备动态扩展、同步多数据源及实时计算功能;
其中,计算集群采用分布式架构,并适应性分配计算能力;
计算集群采用插件的方式连接不同的数据源,并通过不同的连接器的实现方式,对接不同类型的数据源。
本发明的有益效果为:
(1)、本发明通过设计把大数据集群的存储节点和计算节点进行分离部署,能够解决传统大数据集群的计算和存储一体化,从而造成资源无法有效扩展的问题;通过把计算资源和存储资源进行隔离,计算资源可以实现按需进行动态调整,而不依赖于存储节点的设备限制,基本上不占用存储集群的计算资源。
(2)、本发明中的计算层进行抽离后,可以对接多套数据源,甚至可以进行大数据的数据源和传统的关系型数据源,消息中间件等数据源进行关联计算,大大提高了系统的数据分析能力和灵活性。
(3)、通过构建一层分布式的缓存层,用于对数据进行加速处理,缓存利用内存、固态硬盘及本地磁盘的三级处理结构,在性能和成本方面取到一个平衡点;缓存集群和计算集群基于高速的InfiniBand网络,实现分布式计算的高速连接;这种高速的互联技术,允许缓存集群和计算集群分离部署,降低单节点对内存的需求,提升部署的灵活度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的基于存储与计算分离的大数据多数据源分析方法的流程示意图;
图2是根据本发明实施例的基于存储与计算分离的大数据多数据源分析方法的整体计算框架图;
图3是根据本发明实施例的基于存储与计算分离的大数据多数据源分析方法中计算集群架构图;
图4是根据本发明实施例的基于存储与计算分离的大数据多数据源分析方法中缓存集群逻辑图;
图5是根据本发明实施例的基于存储与计算分离的大数据多数据源分析方法中计算集群运算逻辑图;
图6是根据本发明实施例的基于存储与计算分离的大数据多数据源分析系统的原理框图。
图中:
1、部署模块;2、计算模块;3、缓存模块。
具体实施方式
为进一步说明各实施例,本发明提供有附图,这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理,配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点,图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
根据本发明的实施例,提供了基于存储与计算分离的大数据多数据源分析方法及系统。
现结合附图和具体实施方式对本发明进一步说明,如图1所示,根据本发明实施例的基于存储与计算分离的大数据多数据源分析方法,该方法包括以下步骤:
S1、将大数据集群的计算集群和缓存集群进行分离部署,并构建外挂分析平台;
如图2所示,使用独立的计算集群和缓存集群构建的外挂分析平台,能够实现存储和计算的解耦,直接对多数据源进行实时查询,避免需要经过ETL 对数据进行抽取和清洗,能够支持多数据源多集群的库表查询,支持多数据类型,例如HIVE,MYSQL,HBASE,HDFS,KAFKA等。
此外,所述缓存集群和所述计算集群基于InfiniBand网络,实现分布式计算的高速连接,利用高速网络InfiniBand,使计算与缓存解耦,计算和缓存的节点数可以进行灵活搭配和扩展,相比要求缓存需要和计算节点搭载同一台主机使用的分布式缓存方案更加灵活和节省成本。
S2、采用分布式技术部署的计算集群将数据源中的数据抽取至计算节点,并对数据进行实时计算;
如图3所示,其中,计算集群提供分布式计算能力,使用分布式部署的计算集群,计算能力是可以动态扩展的,与部署的主机呈线性提升关系,负责从数据源抽取数据到计算节点本地,然后进行实时计算,并且最终把结果返回到调用的客户端(BI)。
S3、利用分布式技术部署的缓存集群架构,并加速计算集群从数据源抽取数据并提供分布式缓存。
如图4所示,具体的,以内存的方式对查询的远端数据进行缓存,解决数据抽取导致网络带宽的压力问题。实时进行大表的统计查询,需要把数据从远端抽取到计算几点中进行计算,势必会对网络和IO造成压力,并且在网络较为复杂的集群拓扑条件下,其他各种原因的扰动也会对查询造成不稳定的影响。通过引入缓存集群,对常用的数据进行缓存,计算节点通过高速网络和缓存集群互联,可以大幅度提升计算效能,并且避免网络不稳定导致性能下降,降低集群的网络带宽压力和磁盘IO压力。
在一个实施例中,所述数据源包括分布式存储HDFS、关系数据库 MYSQL、消息中间件KAFKA及文件系统。
在一个实施例中,所述计算集群具备动态扩展、同步多数据源及实时计算功能;
其中,计算集群采用分布式架构,并适应性分配计算能力;
计算集群采用插件的方式连接不同的数据源,并通过不同的连接器 (connector)的实现方式,对接不同类型的数据源。
在一个实施例中,所述缓存集群包括内存、固态硬盘和本地磁盘的三级缓存处理结构,其使用分布式技术部署的缓存集群架构,负责加速计算集群从数据源抽取数据并且提供的分布式缓存,解决数据大量实时传输造成的网络和 IO带宽压力。
其中,系统为了降低在计算和存储分离后,计算集群远程提取数据源,解决因为网络抖动等IO原因,导致计算效能降低的问题,构建了一层分布式的缓存层,用于对数据进行加速处理。缓存利用内存/固态硬盘/本地磁盘的三级处理结构,在性能和成本方面取到一个平衡点。
在一个实施例中,所述缓存集群中的缓存节点对计算节点提供加速能力,且所述缓存节点采用内存(MEM)、固态存储(SSD)及硬盘存储(HDD)的存储介质将数据存储至存储节点,数据根据存储介质的性能进行由高到低存储。
具体的,数据写入原理为:默认写入到最快的存储介质(内存),如果没有足够的空间,则尝试写入SSD及HDD,如果都没有足够的空间进行写入,这会进行释放,写入新的数据块。
数据读取原理为:默认会使用缓存节点进行数据的读取。如果数据在缓存中不存在,则会先从远端数据源读取数据,然后写入缓存到集群中,后续再次读取的时候,就能形成缓存,避免再次重复读取。
在一个实施例中,所述采用分布式技术部署的计算集群将数据源中的数据抽取至计算节点,并对数据进行实时计算包括利用InfiniBand网络从缓存集群的节点查询数据,缓存节点先从存储节点抽取数据,然后再把数据返回到计算节点,并且缓存节点根据LRU原则,把读取的数据加载到缓存中。
在一个实施例中,所述缓存节点根据LRU原则,把读取的数据加载到缓存中包括以下步骤:
对数据块对应的文件计算哈希值,通过哈希值取模并选择缓存的worker 节点;
计算节点连接选择的缓存worker节点;
缓存Worker节点判断文件是否已经缓存,如果已经缓存则通过InfiniBand 高速网络直接返回到计算节点,否则启动异步线程,从远程HDFS读取数据,并缓存至本地节点;
缓存worker首先在内存区域寻找空间,如果有空间,则直接把文件下载到内存区域中,否则通过LRU规则,置换内存中已经缓存的文件至硬盘区域中;
缓存worker节点下载文件完毕后,把结果返回给计算节点。
计算原理为:
如图5所示,计算使用SQL的方式交互,提供高性能的分布式SQL查询引擎,能够应对PB级别的实时计算分析场景。使用标准的ANSI SQL方式,用户直接使用SQL进行数据的查询和计算。
具体的计算和交互,以一个典型的比较简单的SQL语句查询为例进行说明:
select count(*),query_table.column_big from query_table.dim_table
where query_table.dim_type=dim_table.dim_type
group by query_table.column_big;
这个sql语句查询远端的query_table表,关联维度表dim_table,然后对 column_big列进行分组汇总操作。
步骤1:控制节点的SQL解析器对语句进行解析和分解,得知需要对列 column_big进行分组汇总。逻辑上完成对操作进行拆解,划分成为下面的子任务:
1)查询HIVE数据源的query_table表实际存储物理信息,即表在远程存储集群的数据块存储分布;
2)查询MYSQL数据源的dim_table表实际存储物理信息,表数据量;
3)产生处理逻辑;
a)把dim_table表的数据作为关联信息先加载到每个节点的内存中,并且进行关联条件预处理;
b)把query_table表根据数据块进行拆分,分配给计算节点处理;
c)计算节点关联query_table数据块和dim_table维度信息,进行分组汇总;
d)控制节点汇总计算节点返回的汇总数据片段。
步骤2:控制节点通知所有计算节点全量加载维度表dim_table数据到内存中:
控制节点判断dim_table表存储在mysql上的小批量维度信息,需要先全量加载到每个计算节点的内存中,计算节点通过JDBC驱动,连接远程的 mysql,把数据抽全到节点的内存中,并且根据步骤1的处理逻辑,对关联的条件(dim_type)进行分组,并且存储在内存中的哈希表中。
表1哈希表
dim_type 字段
dim_key1 dim_table.Row1
dim_key2 dim_table.row2
dim_key3 dim_table.row3
步骤3:控制节点查询表query_table的元数据信息,得知数据存储在远程存储集群的磁盘信息,从而对数据进行分段,确定每个计算节点处理的数据范围。假定当前集群有3个计算节点,数据大小有3GB。
首先程序得知表query_table的数据的实际存储HDFS目录文件路径: hdfs://mycluster/warehouse/tablespace/managed/hive/query_table 。
HDFS的文件是以块作为单位的,一个块大小是128MB,那么3GB的数据,占用24个文件块,那么程序会把任务切分到24个分片大小,这24个分片交给3个计算节点分别计算,每个节点处理8个分片。
表2HDFS文件编号图
Figure BDA0003221979420000081
Figure BDA0003221979420000091
步骤4:控制节点计算引擎,把节点需要计算的数据分片信息下发到计算节点,并且把计算逻辑也分配到计算节点中,并且监听计算节点的任务执行情况。
注意这里并不是一次性固定把24个分片发送到3个计算节点,而只是先对数据和节点进行预分配,并且把24个分配划分成24个任务(task),控制节点会把任务一个个发送给计算节点,只有计算节点完成了上一个计算任务后,控制节点才会把剩余的任务再发送给它,避免了某个计算节点处理速度比较慢,导致整个分布式计算任务被拖累。也就是说可能比较快的计算节点完成自己的分片后,会接管后面比较慢的计算节点的任务。
表3理想的数据任务分片
计算节点 数据分片
节点1 1,2,3,4,5,6,7,8
节点2 9,10,11,12,13,14,15,16
节点3 17,18,19,20,21,22,23,24
表4可能实际的数据任务分片
Figure BDA0003221979420000092
Figure BDA0003221979420000101
步骤5:通过InfiniBand网络从缓存集群的节点查询数据,发现有数据,缓存节点直接返回,没有数据,缓存节点先从存储节点抽取数据,然后再把数据返回到计算节点。并且缓存节点根据LRU原则,把读取的数据加载到缓存中。
LRU算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。实际的数据统计分析,一般是最近的业务经常被访问,所以使用LRU策略会极大提高读取效率。
具体的步骤如下:
计算节点需要读取数据块:
BP-565741745-172.21.73.29-1620886021790:blk_1073742928_2286 len=134217728Live_repl=3;
首先是从缓存节点读取,步骤如下:
1)对数据块对应的文件计算哈希值(hash),通过哈希值取模,选择缓存的worker节点;
2)计算节点连接选择的缓存worker节点;
3)缓存Worker节点判断文件是否已经缓存,如果缓存,则通过 InfiniBand高速网络直接返回到计算节点;
4)缓存worker节点发现本地没有缓存,启动异步线程,从远程 HDFS读取数据,缓存到本地节点;
5)缓存worker首先在内存区域寻找空间,如果有空间,则直接把文件下载到内存区域中;
6)如果内存区域没有空间,则先通过LRU规则,置换内存中已经缓存的文件,置换到硬盘区域中;
7)缓存worker节点下载文件完毕后,会把结果返回给计算节点。
步骤6:计算节点分别对任务(task)的数据进行统计:计算节点从远程获取到数据后,对数据进行独立的统计,节点之间是并行计算的,也就是说,计算能力是可以跟随计算节点的扩展呈线性扩展的。
计算节点分别对任务(task)的数据根据步骤二获取的维度表信息进行关联和汇总:
1)、对任务数据的每一条进行关联条件(dim_type)进行哈希计算;
2)、通过哈希查表,对每一行数据进行过滤,如果没在关联的表中查询到,则进行丢弃;
3)、对于能够关联上的记录,根据列(big_column)进行汇总;
4)、处理完毕task的所有记录后,把汇总结果返回到控制节点中。
步骤7:控制节点获取计算节点返回的每一个task的计算结果,并且把结果进行汇总处理。
控制节点不停的监听计算节点的计算情况,重复步骤4到步骤6,直到所有的task任务都处理完毕,最后进行总体的汇总。
步骤8:控制节点把数据进行汇总,然后返回给客户端。
表5数据汇总表
汇总key 汇总
Key:1 8
Key:2 16
Key:n k+x
如图6所示,根据本发明的另一个实施例,还提供了基于存储与计算分离的大数据多数据源分析系统,该系统包括部署模块1、计算模块2及缓存模块 3;
其中,所述部署模块1,用于将大数据集群的计算集群和缓存集群进行分离部署,并构建外挂分析平台;
所述计算模块2,用于采用分布式技术部署的计算集群将数据源中的数据抽取至计算节点,并对数据进行实时计算;
所述缓存模块3,用于利用分布式技术部署的缓存集群架构,并加速计算集群从数据源抽取数据并提供分布式缓存。
在一个实施例中,所述计算集群具备动态扩展、同步多数据源及实时计算功能;
其中,计算集群采用分布式架构,并适应性分配计算能力;
计算集群采用插件的方式连接不同的数据源,并通过不同的连接器的实现方式,对接不同类型的数据源。
技术术语的解释:
HDFS:Hadoop分布式文件系统(HDFS)是指被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统(Distributed File System)。
HIVE:hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。
ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。
KAFKA:是一种高吞吐量的分布式发布订阅消息系统。
MYSQL:是最流行的关系型数据库管理系统之一。
InfiniBand:是一个用于高性能计算的计算机网络通信标准,它具有极高的吞吐量和极低的延迟,用于计算机与计算机之间的数据互连。InfiniBand也用作服务器与存储系统之间的直接或交换互连,以及存储系统之间的互连。
JDBC:是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
即席查询(Ad Hoc):是用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。
计算与存储分离:是一种架构思想,存储计算分离架构可以让大数据集群充分利用资源,可弹性拓展,更灵活,更符合云计算的特性。
综上所述,借助于本发明的上述技术方案,本发明通过设计把大数据集群的存储节点和计算节点进行分离部署,能够解决传统大数据集群的计算和存储一体化,从而造成资源无法有效扩展的问题;通过把计算资源和存储资源进行隔离,计算资源可以实现按需进行动态调整,而不依赖于存储节点的设备限制,基本上不占用存储集群的计算资源。
此外,本发明中的计算层进行抽离后,可以对接多套数据源,甚至可以进行大数据的数据源和传统的关系型数据源,消息中间件等数据源进行关联计算,大大提高了系统的数据分析能力和灵活性。
此外,通过构建一层分布式的缓存层,用于对数据进行加速处理,缓存利用内存、固态硬盘及本地磁盘的三级处理结构,在性能和成本方面取到一个平衡点;缓存集群和计算集群基于高速的InfiniBand网络,实现分布式计算的高速连接;这种高速的互联技术,允许缓存集群和计算集群分离部署,降低单节点对内存的需求,提升部署的灵活度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.基于存储与计算分离的大数据多数据源分析方法,其特征在于,该方法包括以下步骤:
将大数据集群的计算集群和缓存集群进行分离部署,并构建外挂分析平台;
采用分布式技术部署的计算集群将数据源中的数据抽取至计算节点,并对数据进行实时计算;
利用分布式技术部署的缓存集群架构,加速计算集群从数据源抽取数据并提供分布式缓存;
所述采用分布式技术部署的计算集群将数据源中的数据抽取至计算节点,并对数据进行实时计算包括利用InfiniBand网络从缓存集群的节点查询数据,缓存节点先从存储节点抽取数据,然后再把数据返回到计算节点,并且缓存节点根据LRU原则,把读取的数据加载到缓存中;
所述缓存节点根据LRU原则,把读取的数据加载到缓存中包括以下步骤:
对数据块对应的文件计算哈希值,通过哈希值取模并选择缓存的worker节点;
计算节点连接选择的缓存worker节点;
缓存Worker节点判断文件是否已经缓存,如果已经缓存则通过InfiniBand高速网络直接返回到计算节点,否则启动异步线程,从远程HDFS读取数据,并缓存至本地节点;
缓存worker首先在内存区域寻找空间,如果有空间,则直接把文件下载到内存区域中,否则通过LRU规则,置换内存中已经缓存的文件至硬盘区域中;
缓存worker节点下载文件完毕后,把结果返回给计算节点;
所述计算集群具备动态扩展、同步多数据源及实时计算功能;
其中,计算集群采用分布式架构,并适应性分配计算能力;
计算集群采用插件的方式连接不同的数据源,并通过不同的连接器的实现方式,对接不同类型的数据源。
2.根据权利要求1所述的基于存储与计算分离的大数据多数据源分析方法,其特征在于,所述数据源包括分布式存储HDFS、关系数据库MYSQL、消息中间件KAFKA及文件系统。
3.根据权利要求1所述的基于存储与计算分离的大数据多数据源分析方法,其特征在于,所述缓存集群和所述计算集群基于InfiniBand网络,实现分布式计算的高速连接。
4.根据权利要求1所述的基于存储与计算分离的大数据多数据源分析方法,其特征在于,所述缓存集群包括内存、固态硬盘和本地磁盘的三级缓存处理结构。
5.根据权利要求4所述的基于存储与计算分离的大数据多数据源分析方法,其特征在于,所述缓存集群中的缓存节点对计算节点提供加速能力,且所述缓存节点采用内存、固态存储及硬盘存储的存储介质将数据存储至存储节点。
6.基于存储与计算分离的大数据多数据源分析系统,用于实现权利要求1-5中任一项所述基于存储与计算分离的大数据多数据源分析方法的步骤,其特征在于,该系统包括部署模块、计算模块及缓存模块;
其中,所述部署模块,用于将大数据集群的计算集群和缓存集群进行分离部署,并构建外挂分析平台;
所述计算模块,用于采用分布式技术部署的计算集群将数据源中的数据抽取至计算节点,并对数据进行实时计算;
所述缓存模块,用于利用分布式技术部署的缓存集群架构,并加速计算集群从数据源抽取数据并提供分布式缓存。
7.根据权利要求6所述的基于存储与计算分离的大数据多数据源分析系统,其特征在于,所述计算集群具备动态扩展、同步多数据源及实时计算功能;
其中,计算集群采用分布式架构,并适应性分配计算能力;
计算集群采用插件的方式连接不同的数据源,并通过不同的连接器的实现方式,对接不同类型的数据源。
CN202110960167.2A 2021-08-20 2021-08-20 基于存储与计算分离的大数据多数据源分析方法及系统 Active CN113672583B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110960167.2A CN113672583B (zh) 2021-08-20 2021-08-20 基于存储与计算分离的大数据多数据源分析方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110960167.2A CN113672583B (zh) 2021-08-20 2021-08-20 基于存储与计算分离的大数据多数据源分析方法及系统

Publications (2)

Publication Number Publication Date
CN113672583A CN113672583A (zh) 2021-11-19
CN113672583B true CN113672583B (zh) 2023-03-28

Family

ID=78544508

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110960167.2A Active CN113672583B (zh) 2021-08-20 2021-08-20 基于存储与计算分离的大数据多数据源分析方法及系统

Country Status (1)

Country Link
CN (1) CN113672583B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115083538B (zh) * 2022-08-23 2022-11-11 中国海洋大学 一种药物数据的处理系统、运行方法及数据处理方法
CN116414730A (zh) * 2023-03-03 2023-07-11 阿里巴巴(中国)有限公司 计算系统及数据处理系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329982A (zh) * 2017-06-01 2017-11-07 华南理工大学 一种基于分布式列式存储的大数据并行计算方法及系统
CN109947729B (zh) * 2017-07-17 2021-08-03 普天信息技术有限公司 一种实时数据分析方法及装置
CN108182213A (zh) * 2017-12-20 2018-06-19 福建新大陆软件工程有限公司 一种基于分布式系统的数据处理优化装置及方法
CN109933631A (zh) * 2019-03-20 2019-06-25 江苏瑞中数据股份有限公司 基于Infiniband网络的分布式并行数据库系统及数据处理方法

Also Published As

Publication number Publication date
CN113672583A (zh) 2021-11-19

Similar Documents

Publication Publication Date Title
US9501550B2 (en) OLAP query processing method oriented to database and HADOOP hybrid platform
CN101354726B (zh) 一种机群文件系统的内存元数据管理方法
CN106708993B (zh) 基于大数据技术的空间数据存储处理中间件框架实现方法
CA2723731C (en) Managing storage of individually accessible data units
CN113672583B (zh) 基于存储与计算分离的大数据多数据源分析方法及系统
WO2013155752A1 (zh) 面向数据库与Hadoop混合平台的OLAP查询处理方法
CN109189995B (zh) 基于mpi的云存储中数据消冗方法
CN113377868B (zh) 一种基于分布式kv数据库的离线存储系统
CN102521406A (zh) 海量结构化数据复杂查询任务的分布式查询方法和系统
CN102521405A (zh) 支持高速加载的海量结构化数据存储、查询方法和系统
CN106570113B (zh) 一种海量矢量切片数据云存储方法及系统
CN112632068A (zh) 一种快速提供海量数据查询服务的解决方法
CN117539915B (zh) 一种数据处理方法及相关装置
CN113849478A (zh) 一种云原生大数据分析引擎
CN116578609A (zh) 一种基于倒排索引的分布式搜索方法及装置
CN114895985B (zh) 一种面向基于采样的图神经网络训练的数据加载系统
CN114385577A (zh) 一种分布式文件系统
CN114003580A (zh) 一种运用于分布式调度系统的数据库构建方法及装置
Litwin et al. k-rp* s: A scalable distributed data structure for high-performance multi-attribute access
CN114338725A (zh) 一种提升大规模集群渲染上限的分布式存储调度方法
CN114063931A (zh) 一种基于大数据的数据存储方法
US11055266B2 (en) Efficient key data store entry traversal and result generation
CN115455031B (zh) 一种Doris的数据查询方法、装置、存储介质及设备
US11853298B2 (en) Data storage and data retrieval methods and devices
WO2024119980A1 (zh) 一种数据分析方法及相关设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant