CN110677402B - 一种基于智能网卡的数据整合方法及装置 - Google Patents

一种基于智能网卡的数据整合方法及装置 Download PDF

Info

Publication number
CN110677402B
CN110677402B CN201910904415.4A CN201910904415A CN110677402B CN 110677402 B CN110677402 B CN 110677402B CN 201910904415 A CN201910904415 A CN 201910904415A CN 110677402 B CN110677402 B CN 110677402B
Authority
CN
China
Prior art keywords
data
network card
intelligent network
node
target
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
CN201910904415.4A
Other languages
English (en)
Other versions
CN110677402A (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.)
WeBank Co Ltd
Original Assignee
WeBank 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 WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN201910904415.4A priority Critical patent/CN110677402B/zh
Publication of CN110677402A publication Critical patent/CN110677402A/zh
Application granted granted Critical
Publication of CN110677402B publication Critical patent/CN110677402B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种基于智能网卡的数据整合方法及装置,该方法包括:第一智能网卡从第一节点获取待传输数据和目标压缩比率;所述第一智能网卡根据所述目标压缩比率对所述待传输数据进行压缩,得到压缩数据;所述第一智能网卡将所述压缩数据发送给第二智能网卡,以使所述第二智能网卡对所述压缩数据进行解压,得到目标数据;所述第二智能网卡将所述目标数据发送给第二节点,以使所述第二节点对所述目标数据进行整合处理;其中,所述第一节点和所述第二节点是大数据计算引擎平台中的两个节点。该方法可以减轻CPU的负担,节约网络资源,减小通信开销,同时用户可根据需求获得最佳的数据压缩比率。

Description

一种基于智能网卡的数据整合方法及装置
技术领域
本申请涉及大数据领域,尤其涉及是一种基于智能网卡的数据整合方法及装置。
背景技术
Spark(计算引擎)是一种基于内存计算的分布式大数据并行处理平台,它集批处理、实时流处理、交互式查询与图计算于一体,避免了各种运算场景下需要部署不同集群所带来的资源浪费。
MapReduce(编程计算模型)是面向大数据并行处理的计算模型、框架和平台,MapReduce作为一个基于集群的高性能并行计算平台。将Spark与MapReduce相集成,可以构成一个功能更强大的大数据处理平台。Spark利用其集群管理和底层存储,从框架上集成集群管理和存储平台。MapReduce可以有效地用于数据类型如日志文件和静态批处理工作,其他处理任务可以被分配到Spark。其中,集成之后的Spark平台的MapReduce过程中涉及大量数据的传输,Spark平台包括多个工作节点,每个工作节点可以并行处理Spark平台分配的任务,MapReduce过程中数据传输占用网络资源并导致Spark工作节点间的数据同步耗时很长。一些技术方案中将节点间传输的数据进行压缩后传输,到达目的节点后再解压缩。这种方法可以节约网络资源,减小通信开销。然而数据压缩解压缩操作本身需要由CPU完成,占用大量CPU时间,成本很高,因此解放CPU资源寻求其他方法对Spark平台中传输的数据进行处理是当前急需解决的问题。
发明内容
本发明提供一种基于智能网卡的数据整合方法及装置,应用于大数据计算引擎平台,用来对MapReduce过程中传输的数据进行压缩,减轻CPU的负担,节约网络资源,减小通信开销。
第一方面,本申请实施例提供了一种基于智能网卡的数据整合方法,所述方法包括:
第一智能网卡从第一节点获取待传输数据和目标压缩比率;
所述第一智能网卡根据所述目标压缩比率对所述待传输数据进行压缩,得到压缩数据;所述第一智能网卡将所述压缩数据发送给第二智能网卡,以使所述第二智能网卡对所述压缩数据进行解压,得到目标数据;所述第二智能网卡将所述目标数据发送给第二节点,以使所述第二节点对所述目标数据进行整合处理,其中,所述第一节点和所述第二节点是大数据计算引擎平台中的两个节点。
可选的,所述第一智能网卡根据所述目标压缩率对所述待传输数据进行压缩,得到压缩数据,包括:
根据目标压缩比率确定所述待传输数据中的前序数据和后序数据;
根据所述前序数据确定第一函数规律;将所述第一函数规律的系数取值作为所述压缩数据,所述第一函数规律用于反映所述前序数据和所述后序数据之间的关联关系;
所述第一智能网卡将所述压缩数据发送给所述第二智能网卡,包括:
将所述前序数据和所述第一函数规律及所述压缩数据发送给所述第二智能网卡;以使所述第二智能网卡根据所述前序数据、所述第一函数规律以及所述压缩数据确定所述后序数据的预测值,所述后序数据的预测值与所述前序数据构成所述目标数据。
可选的,所述第一函数规律满足如下公式:
Figure BDA0002212853330000021
其中,所述x是所述前序数据中的第i个数据的编号,所述n是所述前序数据的个数,所述pi是所述前序数据中第i个数据的系数,所述P(x)为所述前序数据中的第i个数据;集合P={pi}为所述压缩数据。
可选的,根据目标压缩比率确定所述待传输数据中的前序数据,包括:
根据如下公式确定所述前序数据的个数n:
n=(1-m)*K;
其中,所述m是所述目标压缩比率,所述K是所述待传输数据中的数据个数。
可选的,在将所述压缩数据发送给所述第二智能网卡之前,所述方法还包括:
计算所述待传输数据的压缩损失率;
基于所述压缩损失率,输出提示信息,所述提示信息用于提示用户是否满足所述压缩损失率;
将所述压缩数据发送给所述第二智能网卡,包括:
若接收到确定指令,则将所述压缩数据发送给所述第二智能网卡。
可选的,所述基于所述压缩损失率,输出提示信息,还包括:
若接收到否定指令,则提示用户重新设定目标压缩比率,所述第一智能网卡基于所述重新设定的目标压缩比率对所述待传输数据压缩。
可选的,计算所述待传输数据的压缩损失率,包括:
当所述x为所述后序数据中的第j个后序数据的编号时,根据所述公式
Figure BDA0002212853330000031
确定所述第j个后序数据的预测值;计算所述第j个后序数据的预测值与所述第j个后序数据的真实值的差值,确定差值总和;
根据公式
Figure BDA0002212853330000032
计算所述压缩损失率;
其中,所述E是所述压缩损失率,所述∑E(j)是所述差值总和,所述Dj是所述第j个后序数据。
第二方面,本申请实施例提供了一种基于智能网卡的数据整合装置,所述装置包括:
获取模块,用于获取待传输数据和目标压缩比率;
处理模块,用于根据目标压缩比率对所述待传输数据进行压缩,得到压缩数据;
通信模块,用于将所述压缩数据发送给第二智能网卡;
所述处理模块,还用于对所述压缩数据进行解压,得到目标数据;
所述通信模块,还用于将所述目标数据发送给所述第二节点;
所述处理模块,还用于对所述目标数据进行整合处理;
其中,所述第一节点和所述第二节点是大数据计算引擎平台中的两个节点。
第三方面,本申请实施例提供一种智能网卡,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行上述任一项方法的一个或多个步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行如上述第一方面提供的基于智能网卡的数据整合方法的一个或多个步骤。
第五方面,本申请实施例提供一种程序产品,所述程序产品包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行如上述第一方面提供的基于智能网卡的数据整合方法的一个或多个步骤。
本申请的有益效果如下:
在本申请实施例的技术方案中,提供了一种基于智能网卡的数据整合方法,所述方法包括:第一智能网卡从第一节点获取待传输数据和目标压缩比率;所述第一智能网卡根据所述目标压缩比率对所述待传输数据进行压缩,得到压缩数据;所述第一智能网卡将所述压缩数据发送给第二智能网卡,以使所述第二智能网卡对所述压缩数据进行解压,得到目标数据;所述第二智能网卡将所述目标数据发送给第二节点,以使所述第二节点对所述目标数据进行整合处理;其中,所述第一节点和所述第二节点是大数据计算引擎平台中的两个节点。所述第一节点和第二节点均可以用一个CPU来表示,智能网卡代替CPU对数据进行压缩处理,减轻了CPU的负担,节约了网络资源,减小了通信开销。
附图说明
图1为本申请实施例提供的一种基于智能网卡的数据整合***架构示意图;
图2为MapReduce过程的示意图;
图3为本申请实施例提供的一种基于智能网卡的数据整合方法流程示意图;
图4为本申请实施例提供的待传输编号为“D0-D10”的待传输数据进行n阶多项式拟合的曲线图;
图5为本申请实施例提供的用户获取最佳压缩比率的流程示意图;
图6为本申请实施例提供的一种基于智能网卡的数据整合装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。附图中各部件的形状和大小不反映真实比例,目的只是示意说明本申请内容。
下面介绍本申请实施例提供的一种基于智能网卡的数据整合***。该***可以适用于大数据计算引擎平台,对大数据计算引擎平台中的传输的数据进行压缩和解压缩处理。请参见图1,图1为本申请实施例提供的一种基于智能网卡的数据整合***架构示意图,图1中以大数据计算引擎平台的第一节点和第二节点为例,一个节点可以用一个CPU来表示。所述第一智能网卡和所述第二智能网卡包括:FPGA芯片,网口模块,PCle接口;其中,所述FPGA芯片用于通过算法内例化定制压缩模块和解压模块;网口模块,所述网口模块用于所述第一智能网卡和第二智能网卡通过网络链路进行通信;所述PCle接口用于所述第一智能网卡和CPU进行通信。应理解,本申请提供的第一智能网卡和第二智能网卡具有相同架构和相同作用,均可以对大数据计算引擎平台中的数据进行相同的操作,如图1所示,本申请实施例仅针对第一网卡到第二网卡的待传输数据的数据流向进行了详细的阐述。
当大数据计算引擎平台为Spark平台时,以Spark平台的MapReduce过程为例,MapReduce过程分为三个阶段:map(映射)、shuffle(整理)、reduce(合并)。在shuffle之前,也就是在map阶段,MapReduce会对要处理的数据进行分片(split)操作,为每一个分片分配一个MapTask任务。接下来map()函数会对每一个分片中的每一行数据进行处理得到键值对(key,value),其中key为偏移量,value为一行的内容,此时得到的键值对又叫做“中间结果”;此后便进入shuffle阶段,由此可以看出shuffle阶段的作用是处理“中间结果”,指的是将map端的无规则输出的“中间结果”按指定的规则“整理”成具有一定规则的数据,以便reduce端接收处理,reduce端接收到有一定规则的数据后reduce()函数对这些数据进行分区合并。
例如,如图2所示,图2为MapReduce过程的示意图;Spark平台读取到一个HDFS文件,map端将HDFS文件中的数据进行切片分为三个区,每个区有三种类型的数据,经过shuffle过程每个区的数据被分散,按照数据类型对这些数据进行分类,分类完成以后传输到reduce端,reduce端对分类后的数据进行合并得到三个区,一个区装有一种类型的数据。
所述Spark平台包括多个工作节点,下文均将工作节点简称为“节点”;以其中的第一节点和第二节点为例,一种可能的情况为,所述第一节点与第一智能网卡连接,所述第二节点与第二智能网卡连接。Spark平台获取HDFS文件之后,所述第一节点将HDFS文件中的待传输数据发送给第一智能网卡,第一网卡获取用户设定的目标压缩速比率并根据目标压缩速比率对所述待传输数据进行压缩,得到压缩数据;所述第一智能网卡将所述压缩数据发送给所述第二智能网卡,所述第二智能网卡再对所述压缩数据进行解压,得到目标数据;所述第二智能网卡将所述目标数据发送给所述第二节点,以使所述第二节点对所述目标数据进行整合处理,其中,第二节点对所述目标数据的处理过程可以是map之后的shuffle处理及reduce处理。
另一种可能的情况为,以Spark平台中的第一节点和第二节点为例,所述第一节点与第一智能网卡连接,所述第二节点与第二智能网卡连接。Spark平台获取HDFS文件之后,所述第一节点对HDFS文件中的待传输数据进行处理,待传输数据经过了MapReduce过程中的map处理和shuffle处理之后,第一节点再将待传输数据发送到第一智能网卡,所述第一智能网卡根据目标压缩速比率对所述待传输数据进行压缩,得到压缩数据;所述第一智能网卡将所述压缩数据发送给所述第二智能网卡,所述第二智能网卡再对所述压缩数据进行解压,得到目标数据;所述第二智能网卡将所述目标数据发送给所述第二节点,以使所述第二节点对所述待传输数据进行整合处理。其中,第二节点对目标数据整合处理具体可以是MapReduce过程中的reduce处理,即对目标数据进行分类合并操作。
请参见图3所示,图3为本申请实施例提供的一种基于智能网卡的数据整合方法的流程示意图,该方法可以应用Spark平台,可以对Spark平台中的MapReduce过程中传输的数据进行处理,也可以对Spark平台中的各个节点之间传输的数据进行处理,本申请实施例不作具体的限定。所述Spark平台包括第一节点和第二节点;所述第一节点与第一智能网卡连接,所述第二节点与第二智能网卡连接。该方法流程包括:
S301:所述第一智能网卡获取待传输数据和目标压缩比率;
智能网卡作为一种新的技术,其诞生初衷是以比普通CPU低得多的成本来实现对各种虚拟化功能的支持,协助CPU处理网络负载,具有可编程网络接口,通常包含多个端口和内部交换机,快比转发数据并基于网络数据包、应用程序套接字等智能映射到相关应用程序;检测和管理网络流量。除此之外,网卡作为数据流进出的首道关卡,还可以实现监控、嗅探、以避免网络攻击、实现安全隔离的作用。
目前几种主流的智能网卡架构各不相同,大致可以分为特殊应用集成(Application Specific Integrated Circuit,ASIC)网卡、可编程门阵列集成(FieldProgrammable Gate Array,FPGA)网卡、以及***级芯片集成(System on Chip,SOC)网卡三种类型。ASIC架构的智能网卡(例如mallanox connectX-5系列)成本低廉且性能优异,这种类型的智能网卡一般都有可编程接口,但由于处理逻辑在ASIC上固化,控制的灵活空间会比较小;与之相比,基于FPGA的智能网卡(例如napath NT100E3-1-PTP系列)灵活性则更高,但是成本略高并且编程难度较大;SOC架构含有专用CPU,(例如mellanox BlueField系列)提供了性能和可操控性的平衡,使用这种架构的一般是各大厂商的自研网卡。
因此,本申请实施例采用基于FPGA的智能网卡技术,在FPGA芯片中内例化定制的压缩解压缩模块来代替CPU对Spark平台中的MapReduce过程中传输的数据处理。
示例1,Spark平台获取HDFS(分布式文件)文件之后,第一智能网卡通过PCle接口直接获取第一节点中的待传输数据和用户设定的目标压缩比率。
示例2,Spark平台获取HDFS(分布式文件)文件之后,所述第一节点对HDFS文件中的待传输数据进行map处理和shuffle处理之后,第一智能网卡通过PCle接口获取经所述经第一节点处理过的待传输数据和用户设定的目标压缩比率。
S302:所述第一智能网卡根据目标压缩比率对所述待传输数据进行压缩,得到压缩数据。可选的,所述第一智能网卡根据所述目标压缩比率对所述待传输数据进行压缩,得到压缩数据,包括:第一智能网卡根据所述目标压缩比率确定所述待传输数据中的前序数据和后序数据;第一智能网卡根据所述前序数据确定第一函数规律;将所述第一函数规律的系数取值作为所述压缩数据,所述第一函数规律用于反映所述前序数据和所述后序数据之间的关联关系;
第一智能网卡将所述前序数据和所述第一函数规律及所述压缩数据发送给所述第二智能网卡;以使所述第二智能网卡根据所述前序数据、所述第一函数规律以及所述压缩数据确定所述后序数据的预测值,所述后序数据的预测值与所述前序数据构成所述目标数据。
示例性的,假设所待传输数据有10个数据,用户输入的目标压缩比率为40%,所述第一网卡则将所述待传输数据分为前序数据和后序数据,其中,前序数据有6个,后序数据有4个,对所述6个数据进行曲线拟合得到一个函数规律:y=a+bx,将多项式系数{a,b}集合作为压缩数据;将6个前序数据、所述压缩数据和函数规律y=a+bx发送给第二智能网卡,第二智能网卡利用公式y=a+bx对4个后序数据进行预测分别得到每个后序数据的预测值,4个后序数据的预测值和6个前序数据构成目标数据即解压后的数据。
可选的,所述第一函数规律满足如下公式:
Figure BDA0002212853330000091
其中,所述x是所述前序数据中的第i个数据的编号,所述n是所述前序数据的个数,所述pi是所述前序数据中第i个数据的系数,所述P(x)为所述前序数据中的第i个数据;集合P={pi}为所述压缩数据。
可选的,所述第一智能网卡根据目标压缩比率确定所述待传输数据中的前序数据,包括:根据如下公式确定所述前序数据的个数n:
n=(1-m)*K;
其中,m是所述目标压缩比率,K是所述待传输数据中的数据个数。
示例性的,假设所述待传输数据中有10个数据,所述目标压缩比率m为60%,即所述待传输数据在被压缩的过程中有60%的数据被忽略掉,被忽略掉的数据即后序数据,则所述前序数据的个数n为4个。
应理解,当用户设定的目标压缩比率越低时,所述前序数据的个数n越大,压缩误差越小;当用户设定的目标压缩比率越高时,所述前序数据的个数n越小,压缩误差越大。
可选的,在将所述压缩数据发送给所述第二智能网卡之前,所述方法还包括:所述第一智能网卡计算所述待传输数据的压缩损失率;第一节点基于所述压缩损失率,输出提示信息,所述提示信息用于提示用户是否满足所述压缩损失率;
第一智能网卡将所述压缩数据发送给所述第二智能网卡,包括:第一节点若接收到确定指令,则将所述压缩数据发送给所述第二智能网卡。
可选的,第一节点基于所述压缩损失率,输出提示信息,还包括:
若第一节点接收到否定指令,则提示用户重新设定目标压缩比率,所述第一智能网卡基于所述重新设定的目标压缩比率对所述待传输数据进行压缩。
可选的,所述第一智能网卡计算所述待传输数据的压缩损失率,包括:
当所述x为所述后序数据中的第j个后序数据时,第一智能网卡根据所述公式
Figure BDA0002212853330000101
确定所述第j个后序数据的预测值;第一智能网卡计算所述第j个后序数据的预测值与所述第j个后序数据的真实值的差值,确定差值总和;
第一智能网卡根据公式
Figure BDA0002212853330000102
计算所述压缩损失率;
其中,所述E是所述压缩损失率,所述∑E(j)是所述差值总和,所述Dj是所述第j个后序数据。
举例来说,以Spark平台中的第一节点和第二节点,假设待传输数据中有10个数据,用户第一次输入的目标压缩比率为60%,将这10个数据中的每个数据依次编号“D0-D9”;根据用户第一次输入的目标压缩比率将这10个数据分为前序数据和后序数据,其中,前序数据4个,前序数据的编号为“D0-D3”,后序数据6个,后序数据的编号为“D4-D9”;对编号为“D0-D3”的前序数据进行n阶多项式拟合;
参考图4所示,图4为本申请实施例提供的根据数据编号为“D0-D9”的数据进行n阶多项式拟合的曲线图,根据编号为“D0-D3”前序数据拟合出曲线的前半部分,得到第一函数规律,所述第一函数规律满足如下公式
Figure BDA0002212853330000103
其中,所述x是所述前序数据中的第i个数据的编号,所述n是所述前序数据的个数,所述pi是所述前序数据中第i个数据的系数也是所述第一函数规律的多项式系数;保存第一函数规律的多项式系数集合P={pi}作为压缩数据。
在第一智能网卡将压缩数据发给第二智能网卡之前,第一智能网卡根据第一函数规律对所述后序数据进行预测,得到后序数据的预测值。即当所述x为所述后序数据中的第j个数据的编号时,利用公式
Figure BDA0002212853330000111
对编号为“D4-D9”的后序数据进行预测,得到的编号为“D4-D9”的后序数据的预测值,对所述曲线的后半部分进行拟合,如图4所示,所述曲线后半部上的原点为后序数据的预测值,图4中的正方形小框为后序数据的真实值,可据此计算出后序数据的真实值和后序数据的预测值差值,进一步计算差值总和;第一智能网卡计算这10个数据的压缩损失率,这里主要以后序数据的损失来计算,具体包括:第一智能网卡计算编号为“D4-D9”的后序数据的预测值与编号为“D4-D9”的后序数据的真实值的差值,将六个差值相加得到误差的总和;第一智能网卡再根据公式
Figure BDA0002212853330000112
计算这10个数据的压缩损失率;其中,所述E是所述压缩损失率,所述∑E(j)是所述差值的总和,所述Dj是所述后序数据中的第j个后序数据的数据编号。
得到上述10个数据的压缩损失率后,第一节点还可以根据所述压缩损失率生成提示信息,所述提示信息可以是一个对话框“是否接受该压缩损失率,若接受点击下一步,若不接受返回上一步,重新设定目标压缩比率”;用户根据所述提示信息给出确定指令或否定指令。若第一智能网卡接收到来自第一节点传送的用户确定指令,则将所述压缩数据发送给所述第二智能网卡;若第一智能网卡接收到来自第一节点传送的用户否定指令,第一智能网卡通过第一节点输出信息以提示用户重新设定目标压缩比率,所述第一智能网卡基于用户重新设定的目标压缩比率对所述待传输数据压缩,重复以上步骤直到得到用户接受的误差损失率,用户,将最终用户设定的目标压缩比率作为最佳压缩比率。详细的流程如图5所示,图5为本申请实施例提供的用户获取最佳压缩比率的流程图,用户可根据其对压缩损失率的接受程度多次设定目标压缩比率,直到能接受所述压缩损失率为止。
应理解,不同用户所需要处理的数据类型都不一样,不同用户对数据压缩损失率的容忍程度也是不一样的,故,本申请实施例提供的基于智能网卡的数据整合方法中,用户可根据实际需要选取目标压缩比率,进而得到其能接受的压缩损失率,在确定用户最终确定的目标压缩比率之后,即接收到用户确定指令之后,第一智能网卡在实际作业环境中根据目标压缩比率对待传输数据进行压缩。
S303:所述第一智能网卡将所述压缩数据发送给所述第二智能网卡;
如图1所示,图1中第一智能网卡的网口模块通过网络链路第二网卡的网口模块进行通信;第一智能网卡通过网口模块将所述压缩数据发送给所述第二智能网卡,同时,第一智能网卡还将所述待传输数据中的前序数据也通过网络链路发给第二智能网卡。
S304:所述第二智能网卡对所述压缩数据进行解压,得到目标数据;
示例性的,第二智能网卡接收到所述压缩数据和所述待传输数据中的前序数据之后,第二智能网卡中的FPGA芯片中的解压模块根据其内置算法和所述前序数据对所述压缩数据进行解压操作,得到所述目标数据。
S305:所述第二智能网卡将所述目标数据发送给所述第二节点;
示例性的,如图1所示,第二智能网卡通过PCle接口将所述待传输数据发送给第二节点。
S306:所述第二节点对所述目标数据进行整合处理。
示例性的,第二节点可以是CPU,CPU根据Spark平台内置算法对解压后得到的待传输数据进行一系列的处理,可以是MapReduce过程中的map处理,也可以是中间过程的shuffle处理,也可以是reduce的处理,本申请实施例不做具体的限定。
以下介绍完整的实施例。
以Spark中的两个节点为例,Spark平台获取HDFS(分布式文件)文件之后,第一智能网卡通过PCle接口直接获取第一节点中的待传输数据和用户设定的目标压缩比率,假设所待传输数据有2000个数据,假设待传输数据中有2000个数据,将这2000个数据中的每个数据依次编号为“D0-D1999”;用户第一次输入的目标压缩比率为40%,所述第一网卡则将所述待传输数据分为前序数据和后序数据,其中,前序数据有1200个,前序数据编号为“D0-D799”,后序数据有800个,后序数据编号为“D800-D1999”对所述800个数据进行曲线拟合得到一个函数规律
Figure BDA0002212853330000131
将多项式系数{p0,…,p799}集合作为压缩数据;
在第一智能网卡将压缩数据发给第二智能网卡之前,第一智能网卡根据第一函数规律对所述后序数据进行预测,得到后序数据的预测值。即当所述x为所述后序数据中的第j个数据的编号时,利用公式
Figure BDA0002212853330000132
对编号为“D800-D1999”的后序数据进行预测,得到的编号为“D800-D1999”的后序数据的预测值,可据此计算出后序数据的真实值和后序数据的预测值差值,进一步计算差值总和;第一智能网卡计算这2000个数据的压缩损失率,这里主要以后序数据的损失来计算,具体包括:第一智能网卡计算编号为“D800-D1999”的后序数据的预测值与编号为“D800-D1999”的后序数据的真实值的差值,将1200个差值相加得到误差的总和;第一智能网卡再根据公式
Figure BDA0002212853330000133
计算这2000个数据的压缩损失率;其中,所述E是所述压缩损失率,所述∑E(j)是所述差值的总和,所述Dj是所述后序数据中的第j个后序数据的数据编号。
得到上述2000个数据的压缩损失率后,第一节点还可以根据所述压缩损失率生成提示信息,所述提示信息可以是一个对话框“是否接受该压缩损失率,若接受点击下一步,若不接受返回上一步,重新设定目标压缩比率”;用户根据所述提示信息给出确定指令或否定指令。
若第一智能网卡接收到来自第一节点传送的用户确定指令,则将所述压缩数据发送给所述第二智能网卡;若第一智能网卡接收到来自第一节点传送的用户否定指令,第一智能网卡通过第一节点输出信息以提示用户重新设定目标压缩比率,所述第一智能网卡基于用户重新设定的目标压缩比率对所述待传输数据压缩,重复以上步骤直到得到用户接受的误差损失率,用户,将最终用户设定的目标压缩比率作为最佳压缩比率。
第一智能网卡将所述压缩数据、编号为“D0-D799”的前序数据及公式
Figure BDA0002212853330000141
发送给所述第二智能网卡,第二智能网卡对所述压缩数据进行解压操作,具体包括:
将800个前序数据、多项式系数{p0,…,p799}集合和
Figure BDA0002212853330000142
发送给第二智能网卡;第二智能网卡利用公式
Figure BDA0002212853330000143
对1200个后序数据进行预测分别得到每个后序数据的预测值,800个后序数据的预测值和1200个前序数据构成目标数据即解压后的数据。
第二智能网卡通过PCle接口将目标数据发送给第二节点,第二节点对目标数据进行reduce处理或map处理,本申请实施例不作具体的限定。
需要说明的是,在智能网卡对Spark平台的MapReduce过程中传输数据进行压缩和解压缩所花费的时间小于通过对数据压缩所节省的时间,因此对数据进行压缩不仅解放了CPU资源,也不会占用CPU对数据进行处理的时间。
基于同一发明构思下,本发明实施例提供了一种基于智能网卡的数据整合装置,应用于Spark平台,以Spark平台的第一节点和第二节点为例,所述第一节点与第一智能网卡连接,所述第二节点与第二智能网卡连接。请参考图6所示,图6为本发明实施例提供的一种基于智能网卡的数据整合的结构示意图。如图6所示,该装置包括获取模块601、处理模块602、通信模块603。
获取模块601,用于获取待传输数据和目标压缩比率;
处理模块602,用于根据所述目标压缩比率对所述待传输数据进行压缩,得到压缩数据;
通信模块603,用于将所述压缩数据发送给第二智能网卡;
所述处理模块602,还用于对所述压缩数据进行解压,得到目标数据;
所述通信模块603,还用于将所述目标数据发送给所述第二节点;
所述处理模块602,还用于对所述目标数据进行整合处理;
其中,所述第一节点和所述第二节点是Spark平台中的两个节点。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (9)

1.一种基于智能网卡的数据整合方法,其特征在于,所述方法包括:
第一智能网卡从第一节点获取待传输数据和目标压缩比率;
所述第一智能网卡根据所述目标压缩比率,确定所述待传输数据中的前序数据和后序数据;根据所述前序数据确定第一函数规律;将所述第一函数规律的系数取值作为压缩数据,所述第一函数规律用于反映所述前序数据和所述后序数据之间的关联关系;
所述第一智能网卡将所述前序数据和所述第一函数规律及所述压缩数据发送给第二智能网卡,以使所述第二智能网卡根据所述前序数据、所述第一函数规律以及所述压缩数据确定所述后序数据的预测值,所述后序数据的预测值与所述前序数据构成目标数据;所述第二智能网卡将所述目标数据发送给第二节点,以使所述第二节点对所述目标数据进行整合处理,其中,所述第一节点和所述第二节点是大数据计算引擎平台中的两个节点。
2.如权利要求1所述的方法,其特征在于,所述第一函数规律满足如下公式:
Figure FDA0003900849320000011
其中,所述x是所述前序数据中的第i个数据的编号,所述n是所述前序数据的个数,所述pi是所述前序数据中第i个数据的系数,所述P(x)为所述前序数据中的第i个数据;集合P={pi}为所述压缩数据。
3.如权利要求1所述的方法,其特征在于,根据目标压缩比率确定所述待传输数据中的前序数据,包括:
根据如下公式确定所述前序数据的个数n:
n=(1-m)*K;
其中,所述m是所述目标压缩比率,所述K是所述待传输数据中的数据个数。
4.如权利要求2所述的方法,其特征在于,在将所述压缩数据发送给所述第二智能网卡之前,所述方法还包括:
计算所述待传输数据的压缩损失率;
基于所述压缩损失率,输出提示信息,所述提示信息用于提示用户是否满足所述压缩损失率;
将所述压缩数据发送给所述第二智能网卡,包括:
若接收到确定指令,则将所述压缩数据发送给所述第二智能网卡。
5.如权利要求4所述的方法,其特征在于,所述基于所述压缩损失率,输出提示信息,还包括:
若接收到否定指令,则提示用户重新设定目标压缩比率,所述第一智能网卡基于所述重新设定的目标压缩比率对所述待传输数据压缩。
6.如权利要求4所述的方法,其特征在于,计算所述待传输数据的压缩损失率,包括:
当所述x为所述后序数据中的第j个后序数据的编号时,根据所述公式
Figure FDA0003900849320000021
确定所述第j个后序数据的预测值;计算所述第j个后序数据的预测值与所述第j个后序数据的真实值的差值,确定差值总和;
根据公式
Figure FDA0003900849320000022
计算所述压缩损失率;
其中,所述E是所述压缩损失率,所述∑E(j)是所述差值总和,所述Dj是所述第j个后序数据。
7.一种基于智能网卡的数据整合装置,其特征在于,应用于第一智能网卡,所述装置包括:
获取模块,用于从第一节点获取待传输数据和目标压缩比率;
处理模块,用于根据所述目标压缩比率,确定所述待传输数据中的前序数据和后序数据;根据所述前序数据确定第一函数规律;将所述第一函数规律的系数取值作为压缩数据,所述第一函数规律用于反映所述前序数据和所述后序数据之间的关联关系;
通信模块,用于将所述前序数据和所述第一函数规律及所述压缩数据发送给第二智能网卡,以使所述第二智能网卡根据所述前序数据、所述第一函数规律以及所述压缩数据确定所述后序数据的预测值,所述后序数据的预测值与所述前序数据构成目标数据,以及将所述目标数据发送给第二节点,以使所述第二节点对所述目标数据进行整合处理;
其中,所述第一节点和所述第二节点是大数据计算引擎平台中的两个节点。
8.一种智能网卡,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如权利要求1至6中任一项所述的基于智能网卡的数据整合方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行如权利要求1-6中任一所述的方法。
CN201910904415.4A 2019-09-24 2019-09-24 一种基于智能网卡的数据整合方法及装置 Active CN110677402B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910904415.4A CN110677402B (zh) 2019-09-24 2019-09-24 一种基于智能网卡的数据整合方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910904415.4A CN110677402B (zh) 2019-09-24 2019-09-24 一种基于智能网卡的数据整合方法及装置

Publications (2)

Publication Number Publication Date
CN110677402A CN110677402A (zh) 2020-01-10
CN110677402B true CN110677402B (zh) 2022-12-20

Family

ID=69078617

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910904415.4A Active CN110677402B (zh) 2019-09-24 2019-09-24 一种基于智能网卡的数据整合方法及装置

Country Status (1)

Country Link
CN (1) CN110677402B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113778319A (zh) 2020-06-09 2021-12-10 华为技术有限公司 网卡的数据处理方法以及网卡
CN113778320A (zh) * 2020-06-09 2021-12-10 华为技术有限公司 网卡以及网卡处理数据的方法
CN111539829B (zh) 2020-07-08 2020-12-29 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的待过滤交易识别方法及装置
CN111541789A (zh) 2020-07-08 2020-08-14 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的数据同步方法及装置
CN111541784B (zh) 2020-07-08 2021-07-20 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的交易处理方法及装置
CN111541726B (zh) 2020-07-08 2021-05-18 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的重放交易识别方法及装置
CN111541783B (zh) 2020-07-08 2020-10-20 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的交易转发方法及装置
CN112596669A (zh) * 2020-11-25 2021-04-02 新华三云计算技术有限公司 一种基于分布式存储的数据处理方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020205A (zh) * 2012-12-05 2013-04-03 北京普泽天玑数据技术有限公司 一种分布式文件***上基于硬件加速卡的压缩解压缩方法
CN106713394A (zh) * 2015-11-16 2017-05-24 华为技术有限公司 一种数据传输方法和装置
CN110177083A (zh) * 2019-04-26 2019-08-27 阿里巴巴集团控股有限公司 一种网卡、数据发送/接收方法及设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020205A (zh) * 2012-12-05 2013-04-03 北京普泽天玑数据技术有限公司 一种分布式文件***上基于硬件加速卡的压缩解压缩方法
CN106713394A (zh) * 2015-11-16 2017-05-24 华为技术有限公司 一种数据传输方法和装置
CN110177083A (zh) * 2019-04-26 2019-08-27 阿里巴巴集团控股有限公司 一种网卡、数据发送/接收方法及设备

Also Published As

Publication number Publication date
CN110677402A (zh) 2020-01-10

Similar Documents

Publication Publication Date Title
CN110677402B (zh) 一种基于智能网卡的数据整合方法及装置
US11429852B2 (en) Convolution acceleration and computing processing method and apparatus, electronic device, and storage medium
CN106325967B (zh) 一种硬件加速方法、编译器以及设备
US9710876B2 (en) Graph-based application programming interface architectures with equivalency classes for enhanced image processing parallelism
CN108012156A (zh) 一种视频处理方法及控制平台
WO2003010657A2 (en) Method and system for encoding instructions for a vliw that reduces instruction memory requirements
CN111931917A (zh) 前向计算的实现方法及装置、存储介质、电子装置
CN114238187A (zh) 一种基于fpga的全栈网卡任务处理***
EP2884398A1 (en) Data forwarding device, data forwarding method, and program
CN107204998B (zh) 处理数据的方法和装置
CN114466227B (zh) 一种视频分析方法、装置、电子设备及存储介质
CN103997648A (zh) 一种基于dsp的jpeg2000标准图像快速解压缩***及方法
CN112771546A (zh) 运算加速器和压缩方法
CN110502337B (zh) 针对Hadoop MapReduce中混洗阶段的优化***
CN115344526B (zh) 一种数据流架构的硬件加速方法及装置
US20230029796A1 (en) Stateful service processing method and apparatus
KR101682508B1 (ko) 라우팅 장치 및 네트워크 장치
CN112486895B (zh) 一种fpga芯片及其互联控制方法
CN113126958A (zh) 基于信息流的决策调度定制方法和***
Sierra et al. High-performance decoding of variable-length memory data packets for FPGA stream processing
CN113691632A (zh) 一种区块链计算资源的动态调度方法及***
CN109240978B (zh) 一种搭建加速平台的fpga***、设备及加速平台
CN113535637B (zh) 一种运算加速单元及其运行方法
CN111488216B (zh) 一种数据处理的方法、装置及电子设备
CN111030844B (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