CN111092947B - 数据传输的方法、客户端、中间服务器、节点及电子设备 - Google Patents
数据传输的方法、客户端、中间服务器、节点及电子设备 Download PDFInfo
- Publication number
- CN111092947B CN111092947B CN201911319365.XA CN201911319365A CN111092947B CN 111092947 B CN111092947 B CN 111092947B CN 201911319365 A CN201911319365 A CN 201911319365A CN 111092947 B CN111092947 B CN 111092947B
- Authority
- CN
- China
- Prior art keywords
- data
- sequence structure
- transmitted
- client
- server
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开实施例涉及数据传输的方法、客户端、中间服务器、大数据服务器集群中的节点、电子设备及存储介质。客户端为Spark客户端且配置有Pandas,中间服务器启用Spark REST服务,与大数据服务器集群进行数据传输的方法包括:获取第一待传输数据,第一待传输数据为可序列化的数据;转换第一待传输数据为序列结构数据;向中间服务器传输序列结构数据,中间服务器用于向大数据服务器集群传输序列结构数据。本公开实施例将待传输数据转换为序列结构数据,可利用中间服务器线上传输,接收端再将序列结构数据转换为内存数据,用户无需在文件和内存数据之间进行显性的转换,同时避免线下直接操作文件系统,进而不受操作权限的限制。
Description
技术领域
本公开实施例涉及大数据技术领域,具体涉及一种数据传输的方法、客户端、中间服务器、大数据服务器集群中的节点、电子设备、非暂态计算机可读存储介质。
背景技术
大数据是一种超出了传统数据库软件工具能力范围的数据集合,具有四个特征:海量的数据规模、快速的数据流转、多样的数据类型和价值密度低。大数据无法用单台的计算机进行处理,须采用分布式计算架构。目前,大数据处理框架多采用Spark。
Python是一种计算机程序设计语言,Pandas是单机环境下Python的数据处理包,目前,Spark客户端与Spark集群进行数据交换的方式是离线传输的方式:
Spark客户端将Pandas的内存数据(Pandas dataframe)生成为Spark集群可以读取的数据结构(例如csv)文件,并线下将文件手动上传到Web文件系统或者上传到每个Spark工作节点的相同位置,以便Spark集群可以读取文件,并转换为Spark集群的内存数据(Spark dataframe)。
Spark集群将的内存数据(Spark dataframe)生成为Pandas可以读取的数据结构(例如csv)文件,并线下将文件保存到Web文件系统的特定地址,Spark客户端再从特定地址读取文件,并通过Pandas转换为内存数据(Pandas dataframe)。
可见,目前Spark客户端与Spark集群进行数据交换的方式存在如下问题:1、用户需要手动在文件和内存数据之间进行显性的转换,例如,将Pandas dataframe转换为csv文件、将csv文件转换为Spark dataframe,效率较低;2、用户需要直接操作文件系统,无论是Web文件系统或是工作节点的本地文件系统,而在实际应用场景下,用户通常没有操作权限。
上述对问题的发现过程的描述,仅用于辅助理解本公开的技术方案,并不代表承认上述内容是现有技术。
发明内容
为了解决现有技术存在的至少一个问题,本公开的至少一个实施例提供了一种与大数据服务器集群进行数据传输的方法、客户端与大数据服务器集群进行数据传输的方法、与客户端进行数据传输的方法、客户端、中间服务器、大数据服务器集群中的节点、电子设备、非暂态计算机可读存储介质。
第一方面实施例1,本公开实施例提出一种数据传输的方法,应用于客户端,所述客户端为Spark客户端且所述Spark客户端配置有Pandas,所述方法包括:
获取第一待传输数据;其中,所述第一待传输数据为可序列化的数据;
转换所述第一待传输数据为序列结构数据;
向中间服务器传输所述序列结构数据;其中,所述中间服务器为启用Spark REST服务的服务器,且所述中间服务器用于基于Spark REST服务通过HTTP方式向大数据服务器集群传输序列结构数据,其中,所述大数据服务器集群为Spark集群。
第一方面实施例2,根据第一方面实施例1所述的方法,所述获取第一待传输数据包括:获取第一内存数据;和/或,获取可序列化的非内存数据。
第一方面实施例3,根据第一方面实施例2所述的方法,所述获取第一内存数据包括:获取不可序列化的非内存数据转换得到的内存数据;和/或,获取可序列化的非内存数据转换得到的内存数据。
第一方面实施例4,根据第一方面实施例1或2所述的方法,还包括:向中间服务器发送数据接收信息;所述数据接收信息用于指示所述大数据服务器集群接收序列结构数据及接收后的操作。
第一方面实施例5,根据第一方面实施例4所述的方法,所述接收后的操作包括:转换所述序列结构数据为第二内存数据。
第一方面实施例6,根据第一方面实施例1所述的方法,所述方法还包括:
接收所述中间服务器传输的序列结构数据;
转换接收的序列结构数据为第三内存数据。
第一方面实施例7,根据第一方面实施例1或6所述的方法,所述方法还包括:向所述中间服务器发送数据发送信息;其中,所述数据发送信息用于指示所述大数据服务器集群发送序列结构数据及发送前的操作。
第一方面实施例8,根据第一方面实施例7所述的方法,所述发送前的操作包括:转换第二待传输数据为序列结构数据;其中,所述第二待传输数据为可序列化的数据。
第一方面实施例9,根据第一方面实施例8所述的方法,所述第二待传输数据包括:第四内存数据;和/或,可序列化的非内存数据。
第二方面实施例10,本公开实施例提出一种数据传输的方法,应用于中间服务器,所述中间服务器为启用Spark REST服务的服务器,所述方法包括:
接收客户端传输的序列结构数据;其中,所述客户端为Spark客户端且所述Spark客户端配置有Pandas,所述序列结构数据为所述客户端转换第一待传输数据得到;所述第一待传输数据为可序列化的数据;
基于Spark REST服务通过HTTP方式向大数据服务器集群传输所述序列结构数据,其中,所述大数据服务器集群为Spark集群。
第二方面实施例11,根据第二方面实施例10所述的方法,所述方法还包括:接收所述客户端发送的数据接收信息;其中,所述数据接收信息用于指示所述大数据服务器集群接收序列结构数据及接收后的操作。
第二方面实施例12,根据第二方面实施例10或11所述的方法,向大数据服务器集群传输所述序列结构数据,包括:
确定大数据服务器集群中的接收节点并向所述接收节点传输所述序列结构数据。
第二方面实施例13,根据第二方面实施例12所述的方法,所述方法还包括:将数据接收信息传输给所述接收节点,或,基于数据接收信息指示所述接收节点接收所述序列结构数据后的操作。
第二方面实施例14,根据第二方面实施例10所述的方法,所述方法还包括:接收大数据服务器集群传输的序列结构数据并向所述客户端传输所述序列结构数据;所述序列结构数据为所述大数据服务器集群转换第二待传输数据得到;所述第二待传输数据为可序列化的数据。
第二方面实施例15,根据第二方面实施例14所述的方法,所述方法还包括:接收所述客户端发送的数据发送信息;其中,所述数据发送信息用于指示所述大数据服务器集群发送序列结构数据及发送前的操作。
第二方面实施例16,根据第二方面实施例14所述的方法,所述方法还包括:确定所述大数据服务器集群中的发送节点并指示所述发送节点传输序列结构数据。
第二方面实施例17,根据第二方面实施例16所述的方法,所述方法还包括:将数据发送信息传输给所述发送节点,或,基于数据发送信息指示所述发送节点传输所述序列结构数据前的操作。
第三方面实施例18,本公开实施例提出一种数据传输的方法,应用于大数据服务器集群中的节点,所述大数据服务器集群为Spark集群,所述方法包括:
接收中间服务器传输的序列结构数据;其中,所述中间服务器为启用Spark REST服务的服务器,且所述中间服务器基于Spark REST服务通过HTTP方式传输序列结构数据;所述序列结构数据为所述客户端转换第一待传输数据得到;其中,所述客户端为Spark客户端且所述Spark客户端配置有Pandas,所述第一待传输数据为可序列化的数据;
转换所述序列结构数据为第二内存数据。
第三方面实施例19,根据第三方面实施例18所述的方法,所述大数据服务器集群包括:控制节点和多个工作节点;所述方法还包括:所述控制节点从多个工作节点中分配至少一个接收节点;所述控制节点通知所述中间服务器所述至少一个接收节点;所述至少一个接收节点接收中间服务器传输的序列结构数据,并转换所述序列结构数据为第二内存数据。
第三方面实施例20,根据第三方面实施例18所述的方法,转换所述序列结构数据为第二内存数据,包括:
基于所述中间服务器发送的数据接收信息,或,基于所述中间服务器指示的接收后的操作,转换所述序列结构数据为第二内存数据;其中,所述数据接收信息用于指示所述大数据服务器集群接收序列结构数据及接收后的操作。
第三方面实施例21,根据第三方面实施例18所述的方法,所述方法还包括:获取第二待传输数据;其中,所述第二待传输数据为可序列化的数据;
转换所述第二待传输数据为序列结构数据;
向所述中间服务器传输所述序列结构数据。
第三方面实施例22,根据第三方面实施例21所述的方法,所述获取第二待传输数据包括:获取第四内存数据;和/或,获取可序列化的非内存数据。
第三方面实施例23,根据第三方面实施例22所述的方法,所述获取第四内存数据包括:获取不可序列化的非内存数据转换得到的内存数据;和/或,获取可序列化的非内存数据转换得到的内存数据。
第三方面实施例24,根据第三方面实施例21所述的方法,所述大数据服务器集群包括:控制节点和多个工作节点;所述方法还包括:所述控制节点从多个工作节点中分配至少一个发送节点;所述控制节点通知所述中间服务器所述至少一个发送节点;所述至少一个发送节点获取第二待传输数据、转换所述第二待传输数据为序列结构数据并向所述中间服务器传输所述序列结构数据。
第三方面实施例25,根据第三方面实施例21所述的方法,转换所述第二待传输数据为序列结构数据,包括:
基于所述中间服务器发送的数据发送信息,或,基于所述中间服务器指示的发送前的操作,转换所述第二待传输数据为序列结构数据;其中,所述数据发送信息用于指示所述大数据服务器集群发送序列结构数据及发送前的操作。
第四方面实施例26,本公开实施例提出一种客户端,所述客户端为Spark客户端且所述Spark客户端配置有Pandas,所述客户端包括:
获取单元,用于获取第一待传输数据;其中,所述第一待传输数据为可序列化的数据;
转换单元,用于转换所述第一待传输数据为序列结构数据;
传输单元,用于向中间服务器传输所述序列结构数据;其中,所述中间服务器为启用Spark REST服务的服务器,且所述中间服务器用于基于Spark REST服务通过HTTP方式向大数据服务器集群传输序列结构数据,其中,所述大数据服务器集群为Spark集群。
第五方面实施例27,本公开实施例提出一种中间服务器,所述中间服务器为启用Spark REST服务的服务器,所述中间服务器包括:
接收单元,用于接收客户端传输的序列结构数据;其中,所述客户端为Spark客户端且所述Spark客户端配置有Pandas,所述序列结构数据为所述客户端转换第一待传输数据得到;所述第一待传输数据为可序列化的数据;
传输单元,用于基于Spark REST服务通过HTTP方式向大数据服务器集群传输所述序列结构数据,其中,所述大数据服务器集群为Spark集群。
第六方面实施例28,本公开实施例提出一种节点,应用于大数据服务器集群,所述大数据服务器集群为Spark集群,所述节点包括:
接收单元,用于接收中间服务器传输的序列结构数据;其中,所述中间服务器为启用Spark REST服务的服务器,且所述中间服务器基于Spark REST服务通过HTTP方式传输序列结构数据;所述序列结构数据为所述客户端转换第一待传输数据得到;其中,所述客户端为Spark客户端且所述Spark客户端配置有Pandas,所述第一待传输数据为可序列化的数据;
转换单元,用于转换所述序列结构数据为第二内存数据。
第七方面实施例29,本公开实施例提出一种电子设备,包括:处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如实施例1至25任一实施例所述方法的步骤。
第八方面实施例30,本公开实施例提出一种非暂态计算机可读存储介质,用于存储程序或指令,所述程序或指令使计算机执行如实施例1至25任一实施例所述方法的步骤。
可见,本公开实施例的至少一个实施例中,通过将待传输数据转换为序列结构数据,可利用中间服务器线上传输序列结构数据,接收端再将序列结构数据转换为内存数据,用户无需在文件和内存数据之间进行显性的转换,同时避免线下直接操作文件系统,进而不受操作权限的限制。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的一种Spark客户端与Spark集群进行数据交换的示意图;
图2是本公开实施例提供的一种客户端与大数据服务器集群进行数据传输的整体架构图;
图3是本公开实施例提供的一种客户端的框图;
图4是本公开实施例提供的一种中间服务器的框图;
图5是本公开实施例提供的一种大数据服务器集群中节点的框图;
图6是本公开实施例提供的一种电子设备的框图;
图7是本公开实施例提供的一种客户端与大数据服务器集群进行数据传输的交互图;
图8是本公开实施例提供的另一种客户端与大数据服务器集群进行数据传输的交互图;
图9是本公开实施例提供的一种与大数据服务器集群进行数据传输的方法流程图;
图10是本公开实施例提供的一种客户端与大数据服务器集群进行数据传输的方法流程图;
图11是本公开实施例提供的一种与客户端进行数据传输的方法流程图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。基于所描述的本公开的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
Python的数据科学生态中主要存在两个方向的数据,一个是以Pandas生态为主的单机方向,另一个是以Spark为主的集群方向。
Pandas是单机环境下Python的数据处理包,基于Python的一种开源的科学计算库NumPy而创建,纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集合所需的工具,用于表格类数据,可以将结构化的数据文件(例如csv)转换为内存的数据帧(dataframe)。
Spark是集群环境下的大数据处理框架,基于内存计算和并行计算,支持对数据集合的多种操作,例如包括但不限于:map,filter,flatmap,reduceByKey等,这些操作统称为算子。Spark用于大数据场景下处理结构化数据,可以将结构化的数据文件(例如csv)转换为分布式集群上的内存的dataframe。
dataframe是二维表格数据类的一种内存存储方式。在不同的计算框架中有不同的实现,在R语言中有dataframe,在Pandas中有Pandas dataframe,在Spark集群下有Sparkdataframe。
两个方向各有优点:Pandas生态灵活,可以充分应用Python的能力,但是Pandas原生是一种单机框架,内存受限,无法应对大规模数据处理的需求;Spark可以应对大规模数据处理的需求,但是Spark无法充分享受Python带来的灵活性。
用户与Spark集群可以通过Spark客户端(Client)或者通过livy server以httprestful接口的方式与Spark集群交互。
Spark集群读取和存储的数据主要有两类:一类是Web文件系统(例如分布式文件系统HDFS)的文件数据;另一类是Spark集群中工作节点上的本地文件数据,Spark集群中每个工作节点的相同位置需有相同的文件数据。
图1为Spark客户端与Spark集群进行数据交换的示意图,图1中包括:Spark客户端11、Web文件系统12和Spark集群13;其中,Spark集群13包括:Spark控制节点131和多个Spark工作节点132。
Spark控制节点131用于给多个Spark工作节点132分配任务;Spark工作节点132用于执行大数据计算、分析等功能。Web文件系统12用于存储共享数据,便于Spark控制节点131和Spark工作节点132使用。
Spark客户端11中配置有Pandas,Spark客户端11向Spark集群13发送数据的流程为:将Pandas的内存数据(Pandas dataframe)生成为Spark集群13可以读取的数据结构(例如csv)文件,并线下将文件手动上传到Web文件系统12或者上传到每个Spark工作节点132的相同位置,以便Spark集群13可以读取文件,并转换为Spark集群13的内存数据(Sparkdataframe)。
Spark集群13向Spark客户端11发送数据的流程为:将Spark集群13的内存数据(Spark dataframe)生成为Pandas可以读取的数据结构(例如csv)文件,并线下将文件保存到Web文件系统12的特定地址,Spark客户端11再从特定地址读取文件,并通过Pandas转换为内存数据(Pandas dataframe)。
针对现有技术存在的至少一个问题,本公开实施例提供一种客户端与大数据服务器集群进行数据传输的方案,用户无需在文件和内存数据之间进行显性的转换,同时避免线下直接操作文件系统,进而不受操作权限的限制。
图2为本公开实施例提供的一种客户端与大数据服务器集群进行数据传输的整体架构图。
如图2所示,数据传输涉及客户端21、中间服务器22、大数据服务器集群23以及其他可用于数据传输的软硬件设备,例如Web文件系统。大数据服务器集群23包括:控制节点231和多个工作节点232。
在一些实施例中,客户端21可以实现为图1中的Spark客户端11或者Spark客户端11的一部分。在一些实施例中,大数据服务器集群23可以实现为图1中的Spark集群13或者Spark集群13的一部分。在一些实施例中,控制节点231可以实现为图1中的Spark控制节点131或者Spark控制节点131的一部分。在一些实施例中,工作节点232可以实现为图1中的Spark工作节点132或者Spark工作节点132的一部分。
客户端21可通过中间服务器22向大数据服务器集群23传输数据;大数据服务器集群23也可通过中间服务器22向客户端21传输数据。在一些实施例中,数据传输为线上传输,区别于现有的离线传输。
在一些实施例中,客户端21向大数据服务器集群23传输数据,
客户端21将待传输数据转换为序列结构数据,其中,序列结构数据可以理解为将传输数据进行序列化后得到的序列,进而可利用中间服务器22线上传输序列结构数据,大数据服务器集群23再将序列结构数据转换为内存数据。
在一些实施例中,客户端21向大数据服务器集群23传输数据,客户端21用于获取第一待传输数据。此处采用第一限定待传输数据,目的在于区别大数据服务器集群23向客户端21传送数据过程中大数据服务器集群23获取的待传输数据。在一些实施例中,将大数据服务器集群23向客户端21传输数据过程中大数据服务器集群23获取的待传输数据记为第二待传输数据。
在一些实施例中,将客户端21中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据,其中,内存数据例如为dataframe数据,非内存数据可以理解为除dataframe数据之外的其他数据。客户端21获取的第一待传输数据为可序列化的数据,其中,“可序列化”可以理解为:可用字符串表示。更进一步地,第一待传输数据可以包括第一内存数据和可序列化的非内存数据中的至少一种。此处采用第一限定内存数据,目的在于区别大数据服务器集群23的内存数据。在一些实施例中,第一内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第一内存数据可以为Pandas dataframe。
在一些实施例中,客户端21转换第一待传输数据为序列结构数据,从而避免用户手动在内存数据和文件之间进行显性转换,其中,显性转换可以理解为在转换的过程中需要用户人为介入,非显性转换可以理解为在转换过程中不需要人为介入,由计算机自动进行。相应地,客户端21进行转换为非显性转换。在一些实施例中,序列结构数据可以为json数据、pickle数据、feather数据、parquet数据中的一种或多种。在一些实施例中,客户端21向中间服务器22传输序列结构数据,以使中间服务器22向大数据服务器集群23传输序列结构数据。在一些实施例中,中间服务器22为启用Spark REST服务的服务器。Spark REST服务通过REST的方式将代码片段或是序列化的二进制代码提交到Spark集群中去执行。SparkREST服务提供了以下三个基本功能:(1)提交Scala、Python或是R代码片段到远端的Spark集群上执行;(2)提交Java、Scala、Python所编写的Spark作业到远端的Spark集群上执行;(3)提交批处理应用在集群中运行。在一些实施例中,中间服务器22用于基于Spark REST服务通过HTTP方式向大数据服务器集群传输序列结构数据。在一些实施例中,中间服务器22可以为livy server,也可以为实现livy server功能的设备。
在一些实施例中,客户端21还用于向中间服务器22发送数据接收信息;其中,数据接收信息用于指示大数据服务器集群23接收序列结构数据及接收后的操作。在一些实施例中,接收后的操作包括:转换序列结构数据为第二内存数据。在一些实施例中,第二内存数据为Spark dataframe,便于大数据服务器集群23读取和存储。此处采用第二限定内存数据,目的在于区分第一内存数据。
在一些实施例中,客户端21向中间服务器22传输序列结构数据之前,向中间服务器22发送数据接收信息。在一些实施例中,客户端21向中间服务器22传输序列结构数据的同时,向中间服务器22发送数据接收信息。在一些实施例中,数据接收信息可以通过信令方式发送,例如在客户端21与中间服务器22建立通信的过程中发送数据接收信息。在一些实施例中,数据接收信息也可以不单独发送,而是在序列结构数据中增加扩展位,扩展位可以是一个字节或者一个比特位,通过约定扩展位的取值,指示大数据服务器集群23接收序列结构数据及接收后的操作。
客户端21通过向中间服务器22发送数据接收信息,以使中间服务器22可通知大数据服务器集群23接收序列结构数据并对接收数据进行操作,可见,大数据服务器集群23对于接收数据的操作是由中间服务器22来指示,属于被动式。在一些实施例中,中间服务器22的通知方式可以为直接将数据接收信息传输给大数据服务器集群23,也可以为基于数据接收信息指示大数据服务器集群23接收序列结构数据及接收后的操作。
在一些实施例中,客户端21向大数据服务器集群23传输Pandas dataframe,客户端21将Pandas dataframe转换为json数据,可利用livy server线上传输json数据,大数据服务器集群23再将json数据转换为Spark dataframe。可见,Pandas dataframe无需与文件进行显性转换,Pandas dataframe与Spark dataframe之间通过json数据作为中间表示,达到互相转换的目的。另外,由livy server通过HTTP方式线上传输json数据,避免线下直接操作文件系统,进而不受操作权限的限制。
在一些实施例中,客户端21可通过中间服务器22接收大数据服务器集群23的数据。在一些实施例中,客户端21用于接收中间服务器22传输的序列结构数据。更进一步地,客户端21转换接收的序列结构数据为第三内存数据。在一些实施例中,第三内存数据可以为Pandas dataframe。此处采用第三限定内存数据,目的在于区分第一内存数据和第二内存数据。
在一些实施例中,客户端21还用于向中间服务器22发送数据发送信息;其中,数据发送信息用于指示大数据服务器集群23发送序列结构数据及发送前的操作。在一些实施例中,发送前的操作包括:转换第二待传输数据为序列结构数据;其中,第二待传输数据为可序列化的数据。在一些实施例中,将大数据服务器集群23中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据。更进一步地,第二待传输数据可以包括第四内存数据和可序列化的非内存数据中的至少一种。此处采用第四限定内存数据,目的在于区别第一内存数据、第二内存数据和第三内存数据。在一些实施例中,第四内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第四内存数据可以为Spark dataframe。
在一些实施例中,客户端21向中间服务器22发送数据发送信息后,等待接收中间服务器22传输的序列结构数据。需要说明的是,前述“等待”并非客户端21需要特殊设置的动作,仅用于表明客户端21发送数据发送信息与接收序列结构数据之间存在时间间隔。在一些实施例中,数据发送信息可以通过信令方式发送,例如在客户端21与中间服务器22建立通信的过程中发送数据发送信息。
客户端21通过向中间服务器22发送数据发送信息,以使中间服务器22可通知大数据服务器集群23发送序列结构数据及发送前的操作,可见,大数据服务器集群23对于发送数据的操作是由中间服务器22来通知,属于被动式。在一些实施例中,中间服务器22的通知方式可以为直接将数据发送信息传输给大数据服务器集群23,也可以为基于数据发送信息指示大数据服务器集群23发送序列结构数据及发送前的操作。
在一些实施例中,在客户端21的Sparkmagic中提供两个magic函数,一个函数用于实现客户端21向大数据服务器集群23传输Pandas dataframe,具体地,客户端21将Pandasdataframe转换为json数据,可利用livy server线上传输json数据,大数据服务器集群23再将json数据转换为Spark dataframe;另一个函数用于将大数据服务器集群23的Sparkdataframe转换为Pandas dataframe,具体地,大数据服务器集群23将Spark dataframe转换为json数据,可利用livy server线上传输json数据,客户端21再将json数据转换为Pandas dataframe。用户只需要使用这两个magic函数,无需关注底层实现细节。
在一些实施例中,客户端21可以为软件系统、硬件系统或者软硬件结合的系统。
中间服务器22用于在客户端21与大数据服务器集群23之间传输序列结构数据。在一些实施例中,中间服务器22接收客户端21传输的序列结构数据,并向大数据服务器集群23传输该序列结构数据,该序列结构数据为客户端21转换第一待传输数据得到。在一些实施例中,将客户端21中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据,第一待传输数据可以包括第一内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第一内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第一内存数据可以为Pandas dataframe。
在一些实施例中,中间服务器22还接收客户端21发送的数据接收信息;其中,数据接收信息用于指示大数据服务器集群23接收序列结构数据及接收后的操作。中间服务器22通过接收数据接收信息,可明确由大数据服务器集群23接收序列结构数据及接收后的操作。在一些实施例中,接收后的操作包括:转换序列结构数据为第二内存数据。在一些实施例中,第二内存数据为Spark dataframe。
在一些实施例中,中间服务器22向大数据服务器集群23传输序列结构数据时,通过确定大数据服务器集群23中的接收节点,进而向接收节点传输序列结构数据。在一些实施例中,大数据服务器集群23可分配接收节点,分配方式可以为随机分配,或者基于节点的状态分配,或者其他方式分配。节点的状态例如包括但不限于工作状态、存储状态等,工作状态例如为分析、计算、空闲等,存储状态例如为存储空间的占用量。在一些实施例中,大数据服务器集群23分配接收节点后,可通知中间服务器22接收节点的信息,进而使中间服务器22确定大数据服务器集群23中的接收节点。
在一些实施例中,中间服务器22可通知大数据服务器集群23接收序列结构数据及接收后的操作。在一些实施例中,中间服务器22将数据接收信息传输给接收节点,或,基于数据接收信息指示接收节点接收序列结构数据后的操作,进而使接收节点明确接收序列结构数据后,转换序列结构数据为第二内存数据,例如转换序列结构数据为Sparkdataframe。
在一些实施例中,中间服务器22接收大数据服务器集群23传输的序列结构数据并向客户端21传输该序列结构数据。在一些实施例中,大数据服务器集群23传输的序列结构数据为大数据服务器集群转换第二待传输数据得到。第二待传输数据为可序列化的数据。在一些实施例中,将大数据服务器集群23中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据。更进一步地,第二待传输数据可以包括第四内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第四内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第四内存数据可以为Sparkdataframe。
在一些实施例中,中间服务器22还用于接收客户端21发送的数据发送信息;其中,数据发送信息用于指示大数据服务器集群23发送序列结构数据及发送前的操作。中间服务器22通过接收数据发送信息,可明确由大数据服务器集群23发送序列结构数据及发送前的操作。在一些实施例中,发送前的操作包括:转换第二待传输数据为序列结构数据。在一些实施例中,第二待传输数据可以为Spark dataframe。
在一些实施例中,中间服务器22通过确定大数据服务器集群23中的发送节点,进而指示发送节点发送序列结构数据。在一些实施例中,大数据服务器集群23可分配发送节点,分配方式可以为随机分配,或者基于节点的状态分配,或者其他方式分配。节点的状态例如包括但不限于工作状态、存储状态等,工作状态例如为分析、计算、空闲等,存储状态例如为存储空间的占用量。在一些实施例中,大数据服务器集群23分配发送节点后,可通知中间服务器22发送节点的信息,进而使中间服务器22确定大数据服务器集群23中的发送节点。
在一些实施例中,中间服务器22可通知大数据服务器集群23发送序列结构数据及发送前的操作。在一些实施例中,中间服务器22将数据发送信息传输给发送节点,或,基于数据发送信息指示发送节点传输序列结构数据前的操作,进而使发送节点明确发送序列结构数据前,转换第二待传输数据为序列结构数据,例如转换Spark dataframe为序列结构数据。
在一些实施例中,中间服务器22可以为livy server,也可以为实现livy server功能的设备。在一些实施例中,中间服务器22通过HTTP方式传输数据。在一些实施例中,中间服务器22可以为软件系统、硬件系统或者软硬件结合的系统。
大数据服务器集群23可通过中间服务器22接收客户端21的数据。在一些实施例中,大数据服务器集群23用于接收中间服务器22传输的序列结构数据。其中,序列结构数据为客户端21转换第一待传输数据得到;第一待传输数据为可序列化的数据。在一些实施例中,由大数据服务器集群23中的节点接收中间服务器22传输的序列结构数据。在一些实施例中,将客户端21中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据。更进一步地,第一待传输数据可以包括第一内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第一内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第一内存数据可以为Pandas dataframe。
在一些实施例中,大数据服务器集群23转换接收的序列结构数据为第二内存数据。在一些实施例中,由大数据服务器集群23中的节点接收序列结构数据后转换为第二内存数据。在一些实施例中,第二内存数据可以为Spark dataframe。
在一些实施例中,大数据服务器集群23的控制节点231从多个工作节点232中分配至少一个接收节点。在一些实施例中,分配方式可以为随机分配,或者基于节点的状态分配,或者其他方式分配。节点的状态例如包括但不限于工作状态、存储状态等,工作状态例如为分析、计算、空闲等,存储状态例如为存储空间的占用量。在一些实施例中,控制节点231分配接收节点后,可通知中间服务器22至少一个接收节点的信息,以使至少一个接收节点接收中间服务器22传输的序列结构数据,并转换序列结构数据为第二内存数据,第二内存数据例如为Spark dataframe。
在一些实施例中,接收节点转换序列结构数据为第二内存数据时,基于中间服务器22发送的数据接收信息,或,基于中间服务器22指示的接收后的操作,转换序列结构数据为第二内存数据;其中,数据接收信息用于指示大数据服务器集群23接收序列结构数据及接收后的操作。可见,接收节点对于接收数据的操作是由数据接收信息来指示,属于被动式。
在一些实施例中,大数据服务器集群23向客户端21传输数据,大数据服务器集群23将待传输数据转换为序列结构数据,可利用中间服务器22线上传输序列结构数据,客户端21再将序列结构数据转换为内存数据。
在一些实施例中,大数据服务器集群23向客户端21传输数据,大数据服务器集群23用于获取第二待传输数据;其中,第二待传输数据为可序列化的数据。在一些实施例中,由大数据服务器集群23中的节点获取第二待传输数据。在一些实施例中,将大数据服务器集群23中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据。更进一步地,第二待传输数据可以包括第四内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第四内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第四内存数据可以为Spark dataframe。
在一些实施例中,大数据服务器集群23转换第二待传输数据为序列结构数据,从而避免内存数据和文件之间的显性转换。在一些实施例中,由大数据服务器集群23中的节点转换第二待传输数据为序列结构数据。在一些实施例中,序列结构数据为json数据。在一些实施例中,大数据服务器集群23向中间服务器22传输序列结构数据,以使中间服务器22向客户端21传输序列结构数据。
在一些实施例中,大数据服务器集群23的控制节点231从多个工作节点232中分配至少一个发送节点。在一些实施例中,分配方式可以为随机分配,或者基于节点的状态分配,或者其他方式分配。节点的状态例如包括但不限于工作状态、存储状态等,工作状态例如为分析、计算、空闲等,存储状态例如为存储空间的占用量。在一些实施例中,控制节点231分配发送节点后,可通知中间服务器22至少一个发送节点的信息,以使至少一个发送节点获取第二待传输数据、转换第二待传输数据为序列结构数据并向中间服务器22传输序列结构数据。在一些实施例中,第二待传输数据例如为Spark dataframe。
在一些实施例中,发送节点转换第二待传输数据为序列结构数据时,基于中间服务器22发送的数据发送信息,或,基于中间服务器22指示的发送前的操作,转换第二待传输数据为序列结构数据;其中,数据发送信息用于指示大数据服务器集群23发送序列结构数据及发送前的操作。可见,发送节点对于发送数据的操作是由数据发送信息来指示,属于被动式。
在一些实施例中,大数据服务器集群23向客户端21传输Spark dataframe,大数据服务器集群23将Spark dataframe转换为json数据,可利用livy server线上传输json数据,客户端21再将json数据转换为Spark dataframe。可见,Spark dataframe无需与文件进行显性转换,Pandas dataframe与Spark dataframe之间通过json数据作为中间表示,达到互相转换的目的。
在一些实施例中,大数据服务器集群23中的节点可以为软件系统、硬件系统或者软硬件结合的系统。
图3为本公开实施例提供的一种客户端30的框图。在一些实施例中,客户端30可以实现为图2中的客户端21或者客户端21的一部分。如图3所示,客户端30可划分为多个单元,例如可包括但不限于:获取单元301、转换单元302和传输单元303。
获取单元301,用于获取第一待传输数据;其中,第一待传输数据为可序列化的数据。在一些实施例中,将客户端30中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据,获取单元301获取的第一待传输数据可以包括第一内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第一内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第一内存数据可以为Pandasdataframe。
转换单元302,用于转换第一待传输数据为序列结构数据,从而避免内存数据和文件之间的显性转换。在一些实施例中,序列结构数据为json数据。
传输单元303,用于向中间服务器传输序列结构数据;其中,中间服务器用于向大数据服务器集群传输序列结构数据。
在一些实施例中,传输单元303还用于向中间服务器发送数据接收信息;数据接收信息用于指示大数据服务器集群接收序列结构数据及接收后的操作。在一些实施例中,接收后的操作包括:转换序列结构数据为第二内存数据。在一些实施例中,第二内存数据为Spark dataframe,便于大数据服务器集群读取和存储。
在一些实施例中,传输单元303向中间服务器传输序列结构数据之前,向中间服务器发送数据接收信息。在一些实施例中,传输单元303向中间服务器传输序列结构数据的同时,向中间服务器发送数据接收信息。在一些实施例中,数据接收信息可以通过信令方式发送,例如在客户端30与中间服务器建立通信的过程中发送数据接收信息。在一些实施例中,数据接收信息也可以不单独发送,而是在序列结构数据中增加扩展位,扩展位可以是一个字节或者一个比特位,通过约定扩展位的取值,指示大数据服务器集群接收序列结构数据及接收后的操作。
传输单元303通过向中间服务器发送数据接收信息,以使中间服务器可通知大数据服务器集群接收序列结构数据并对接收数据进行操作,可见,大数据服务器集群对于接收数据的操作是由中间服务器来指示,属于被动式。在一些实施例中,中间服务器的通知方式可以为直接将数据接收信息传输给大数据服务器集群,也可以为基于数据接收信息指示大数据服务器集群接收序列结构数据及接收后的操作。
在一些实施例中,客户端30还包括接收单元,用于接收中间服务器传输的序列结构数据。更进一步地,转换单元302还用于转换接收单元接收的序列结构数据为第三内存数据。在一些实施例中,第三内存数据可以为Pandas dataframe。
在一些实施例中,传输单元303还用于向中间服务器发送数据发送信息;其中,数据发送信息用于指示大数据服务器集群发送序列结构数据及发送前的操作。在一些实施例中,发送前的操作包括:转换第二待传输数据为序列结构数据;其中,第二待传输数据为可序列化的数据。在一些实施例中,将大数据服务器集群中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据。更进一步地,第二待传输数据可以包括第四内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第四内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第四内存数据可以为Spark dataframe。
在一些实施例中,传输单元303向中间服务器发送数据发送信息后,等待接收中间服务器传输的序列结构数据。需要说明的是,前述“等待”并非传输单元303需要特殊设置的动作,仅用于表明传输单元303发送数据发送信息与接收序列结构数据之间存在时间间隔。在一些实施例中,数据发送信息可以通过信令方式发送,例如在客户端30与中间服务器建立通信的过程中发送数据发送信息。
传输单元303通过向中间服务器发送数据发送信息,以使中间服务器可通知大数据服务器集群发送序列结构数据及发送前的操作,可见,大数据服务器集群对于发送数据的操作是由中间服务器来通知,属于被动式。在一些实施例中,中间服务器的通知方式可以为直接将数据发送信息传输给大数据服务器集群,也可以为基于数据发送信息指示大数据服务器集群发送序列结构数据及发送前的操作。
在一些实施例中,客户端30可以为软件系统、硬件系统或者软硬件结合的系统。
在一些实施例中,客户端30中各单元的划分仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如获取单元301、转换单元302和传输单元303可以实现为一个单元;获取单元301、转换单元302或传输单元303也可以划分为多个子单元。可以理解的是,各个单元或子单元能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。
图4为本公开实施例提供的一种中间服务器40的框图。在一些实施例中,中间服务器40可以实现为图2中的中间服务器22或者中间服务器22的一部分。如图4所示,中间服务器40可包括但不限于以下单元:接收单元401和传输单元402。
接收单元401用于接收客户端传输的序列结构数据,该序列结构数据为客户端转换第一待传输数据得到。在一些实施例中,将客户端中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据,第一待传输数据可以包括第一内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第一内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第一内存数据可以为Pandasdataframe。
在一些实施例中,接收单元401还用于接收客户端发送的数据接收信息;其中,数据接收信息用于指示大数据服务器集群接收序列结构数据及接收后的操作。在一些实施例中,接收后的操作包括:转换序列结构数据为第二内存数据。在一些实施例中,第二内存数据为Spark dataframe。
在一些实施例中,接收单元401还用于接收大数据服务器集群传输的序列结构数据。在一些实施例中,大数据服务器集群传输的序列结构数据为大数据服务器集群转换第二待传输数据得到。第二待传输数据为可序列化的数据。在一些实施例中,将大数据服务器集群中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据。更进一步地,第二待传输数据可以包括第四内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第四内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第四内存数据可以为Spark dataframe。
在一些实施例中,接收单元401还用于接收客户端发送的数据发送信息;其中,数据发送信息用于指示大数据服务器集群发送序列结构数据及发送前的操作。在一些实施例中,发送前的操作包括:转换第二待传输数据为序列结构数据。在一些实施例中,第二待传输数据可以为Spark dataframe。
传输单元402用于向大数据服务器集群传输接收单元401接收的客户端的序列结构数据。在一些实施例中,传输单元402向大数据服务器集群传输序列结构数据时,通过确定大数据服务器集群中的接收节点,进而向接收节点传输序列结构数据。在一些实施例中,大数据服务器集群可分配接收节点,分配方式可以为随机分配,或者基于节点的状态分配,或者其他方式分配。节点的状态例如包括但不限于工作状态、存储状态等,工作状态例如为分析、计算、空闲等,存储状态例如为存储空间的占用量。在一些实施例中,大数据服务器集群分配接收节点后,可通知传输单元402接收节点的信息,进而使传输单元402确定大数据服务器集群中的接收节点。
在一些实施例中,传输单元402还用于通知大数据服务器集群接收序列结构数据及接收后的操作。在一些实施例中,传输单元402将数据接收信息传输给接收节点,或,基于数据接收信息指示接收节点接收序列结构数据后的操作,进而使接收节点明确接收序列结构数据后,转换序列结构数据为第二内存数据,例如转换序列结构数据为Sparkdataframe。
在一些实施例中,传输单元402还用于向客户端传输接收单元401接收的大数据服务器集群的序列结构数据。在一些实施例中,传输单元402通过确定大数据服务器集群中的发送节点,进而指示发送节点发送序列结构数据。在一些实施例中,大数据服务器集群可分配发送节点,分配方式可以为随机分配,或者基于节点的状态分配,或者其他方式分配。节点的状态例如包括但不限于工作状态、存储状态等,工作状态例如为分析、计算、空闲等,存储状态例如为存储空间的占用量。在一些实施例中,大数据服务器集群分配发送节点后,可通知传输单元402发送节点的信息,进而使传输单元402确定大数据服务器集群中的发送节点。
在一些实施例中,传输单元402还用于通知大数据服务器集群发送序列结构数据及发送前的操作。在一些实施例中,传输单元402将数据发送信息传输给发送节点,或,基于数据发送信息指示发送节点传输序列结构数据前的操作,进而使发送节点明确发送序列结构数据前,转换第二待传输数据为序列结构数据,例如转换Spark dataframe为序列结构数据。
在一些实施例中,中间服务器40可以为livy server,也可以为实现livy server功能的设备。在一些实施例中,中间服务器40通过HTTP方式传输数据。在一些实施例中,中间服务器40可以为软件系统、硬件系统或者软硬件结合的系统。
在一些实施例中,中间服务器40中各单元的划分仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,接收单元401和传输单元402可以实现为一个单元;接收单元401或传输单元402也可以划分为多个子单元。可以理解的是,各个单元或子单元能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。
图5为本公开实施例提供的一种大数据服务器集群中的节点50的框图。大数据服务器集群包括:控制节点和多个工作节点。在一些实施例中,节点50可以实现为图2中的工作节点232或者工作节点232的一部分。在一些实施例中,节点50可以实现为图2中的控制节点231或者控制节点231的一部分。如图5所示,节点50可包括但不限于以下单元:接收单元501和转换单元502。
接收单元501可通过中间服务器接收客户端的数据。在一些实施例中,接收单元501用于接收中间服务器传输的序列结构数据。其中,序列结构数据为客户端转换第一待传输数据得到;第一待传输数据为可序列化的数据。在一些实施例中,将客户端中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据。更进一步地,第一待传输数据可以包括第一内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第一内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第一内存数据可以为Pandas dataframe。
转换单元502用于转换接收单元501接收的序列结构数据为第二内存数据。在一些实施例中,第二内存数据可以为Spark dataframe。
在一些实施例中,转换单元502转换序列结构数据为第二内存数据时,基于中间服务器发送的数据接收信息,或,基于中间服务器指示的接收后的操作,转换序列结构数据为第二内存数据;其中,数据接收信息用于指示大数据服务器集群接收序列结构数据及接收后的操作。可见,转换单元502对于接收数据的操作是由数据接收信息来指示,属于被动式。
在一些实施例中,大数据服务器集群的控制节点从多个工作节点中分配至少一个接收节点。在一些实施例中,分配方式可以为随机分配,或者基于节点的状态分配,或者其他方式分配。节点的状态例如包括但不限于工作状态、存储状态等,工作状态例如为分析、计算、空闲等,存储状态例如为存储空间的占用量。在一些实施例中,控制节点分配接收节点后,可通知中间服务器至少一个接收节点的信息,以使至少一个接收节点的接收单元501接收中间服务器传输的序列结构数据,转换单元502转换序列结构数据为第二内存数据,第二内存数据例如为Spark dataframe。
在一些实施例中,节点50还可包括传输单元,用于通过中间服务器向客户端传输数据。在一些实施例中,转换单元502将待传输数据转换为序列结构数据,传输单元将序列结构数据传输给中间服务器,中间服务器线上传输序列结构数据给客户端,客户端再将序列结构数据转换为内存数据。
在一些实施例中,节点50向客户端传输数据,节点50还包括获取单元,用于获取第二待传输数据;其中,第二待传输数据为可序列化的数据。在一些实施例中,将大数据服务器集群中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据。更进一步地,第二待传输数据可以包括第四内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第四内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第四内存数据可以为Spark dataframe。
在一些实施例中,转换单元502还用于转换获取单元获取的第二待传输数据为序列结构数据,从而避免内存数据和文件之间的显性转换。在一些实施例中,序列结构数据为json数据。
在一些实施例中,转换单元502转换第二待传输数据为序列结构数据时,基于中间服务器发送的数据发送信息,或,基于中间服务器指示的发送前的操作,转换第二待传输数据为序列结构数据;其中,数据发送信息用于指示大数据服务器集群发送序列结构数据及发送前的操作。可见,转换单元502对于发送数据的操作是由数据发送信息来指示,属于被动式。
在一些实施例中,大数据服务器集群的控制节点从多个工作节点中分配至少一个发送节点。在一些实施例中,分配方式可以为随机分配,或者基于节点的状态分配,或者其他方式分配。节点的状态例如包括但不限于工作状态、存储状态等,工作状态例如为分析、计算、空闲等,存储状态例如为存储空间的占用量。在一些实施例中,控制节点分配发送节点后,可通知中间服务器至少一个发送节点的信息,以使至少一个发送节点的获取单元获取第二待传输数据、转换单元502转换第二待传输数据为序列结构数据,传输单元向中间服务器传输序列结构数据。在一些实施例中,第二待传输数据例如为Spark dataframe。
在一些实施例中,节点50可以为软件系统、硬件系统或者软硬件结合的系统。
在一些实施例中,节点50中各单元的划分仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如接收单元501和转换单元502可以实现为一个单元;接收单元501或转换单元502也可以划分为多个子单元。可以理解的是,各个单元或子单元能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。
图6是本公开实施例提供的一种电子设备的结构示意图。如图6所示,电子设备包括:至少一个处理器601、至少一个存储器602和至少一个通信接口603。电子设备中的各个组件通过总线系统604耦合在一起。通信接口603,用于与外部设备之间的信息传输。可理解,总线系统604用于实现这些组件之间的连接通信。总线系统604除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但为了清楚说明起见,在图6中将各种总线都标为总线系统604。
可以理解,本实施例中的存储器602可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
在一些实施方式中,存储器602存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统和应用程序。
其中,操作系统,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本公开实施例提供的与大数据服务器集群进行数据传输的方法、客户端与大数据服务器集群进行数据传输的方法、与客户端进行数据传输的方法中任一方法的程序可以包含在应用程序中。
在本公开实施例中,处理器601通过调用存储器602存储的程序或指令,具体的,可以是应用程序中存储的程序或指令,处理器601用于执行本公开实施例提供的与大数据服务器集群进行数据传输的方法、客户端与大数据服务器集群进行数据传输的方法、与客户端进行数据传输的方法中任一方法各实施例的步骤。
本公开实施例提供的与大数据服务器集群进行数据传输的方法、客户端与大数据服务器集群进行数据传输的方法、与客户端进行数据传输的方法中任一方法可以应用于处理器601中,或者由处理器601实现。处理器601可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本公开实施例提供的与大数据服务器集群进行数据传输的方法、客户端与大数据服务器集群进行数据传输的方法、与客户端进行数据传输的方法中任一方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成方法的步骤。
图7是本公开实施例提供的一种客户端与大数据服务器集群进行数据传输的交互图,描述了客户端向大数据服务器集群传输数据的过程,如图7所示,包括如下步骤701至705:
701、客户端获取第一待传输数据。第一待传输数据为可序列化的数据。在一些实施例中,将客户端中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据。更进一步地,第一待传输数据可以包括第一内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第一内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第一内存数据可以为Pandas dataframe。
702、客户端转换第一待传输数据为序列结构数据,从而避免内存数据和文件之间的显性转换。在一些实施例中,序列结构数据为json数据。
703、客户端向中间服务器传输序列结构数据。中间服务器接收客户端传输的序列结构数据。
704、中间服务器向大数据服务器集群传输序列结构数据。在一些实施例中,中间服务器22可以为livy server,也可以为实现livy server功能的设备。在一些实施例中,中间服务器向大数据服务器集群传输序列结构数据时,通过确定大数据服务器集群中的接收节点,进而向接收节点传输序列结构数据。在一些实施例中,接收节点由大数据服务器集群,分配方式可以为随机分配,或者基于节点的状态分配,或者其他方式分配。节点的状态例如包括但不限于工作状态、存储状态等,工作状态例如为分析、计算、空闲等,存储状态例如为存储空间的占用量。在一些实施例中,大数据服务器集群分配接收节点后,可通知中间服务器接收节点的信息,进而使中间服务器确定大数据服务器集群中的接收节点。
705、大数据服务器集群转换序列结构数据为第二内存数据。在一些实施例中,第二内存数据为Spark dataframe,便于大数据服务器集群读取和存储。
在一些实施例中,客户端还可向中间服务器发送数据接收信息;其中,数据接收信息用于指示大数据服务器集群接收序列结构数据及接收后的操作。在一些实施例中,接收后的操作包括:转换序列结构数据为第二内存数据。
在一些实施例中,客户端向中间服务器传输序列结构数据之前,向中间服务器发送数据接收信息。在一些实施例中,客户端向中间服务器传输序列结构数据的同时,向中间服务器发送数据接收信息。在一些实施例中,数据接收信息可以通过信令方式发送,例如在客户端与中间服务器建立通信的过程中发送数据接收信息。在一些实施例中,数据接收信息也可以不单独发送,而是在序列结构数据中增加扩展位,扩展位可以是一个字节或者一个比特位,通过约定扩展位的取值,指示大数据服务器集群接收序列结构数据及接收后的操作。
在一些实施例中,中间服务器接收到数据接收信息后,可以直接将数据接收信息传输给大数据服务器集群,也可以为基于数据接收信息指示大数据服务器集群接收序列结构数据及接收后的操作。大数据服务器集群可基于接收后的操作,将序列结构数据转换为第二内存数据,例如转换序列结构数据为Spark dataframe。
在一些实施例中,客户端向大数据服务器集群传输Pandas dataframe,客户端将Pandas dataframe转换为json数据,可利用livy server线上传输json数据,大数据服务器集群再将json数据转换为Spark dataframe。可见,Pandas dataframe无需与文件进行显性转换,Pandas dataframe与Spark dataframe之间通过json数据作为中间表示,达到互相转换的目的。另外,由livy server通过HTTP方式线上传输json数据,避免线下直接操作文件系统,进而不受操作权限的限制。
图8是本公开实施例提供的一种客户端与大数据服务器集群进行数据传输的交互图,描述了大数据服务器集群向客户端传输数据的过程,如图8所示,包括如下步骤801至805:
801、大数据服务器集群获取第二待传输数据。第二待传输数据为可序列化的数据。在一些实施例中,将大数据服务器集群中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据。更进一步地,第二待传输数据可以包括第四内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第四内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第四内存数据可以为Spark dataframe。
802、大数据服务器集群转换第二待传输数据为序列结构数据,从而避免内存数据和文件之间的显性转换。在一些实施例中,序列结构数据为json数据。在一些实施例中,转换第二待传输数据为序列结构数据时,基于中间服务器发送的数据发送信息,或,基于中间服务器指示的发送前的操作,转换第二待传输数据为序列结构数据;其中,数据发送信息用于指示大数据服务器集群发送序列结构数据及发送前的操作。
803、大数据服务器集群向中间服务器传输序列结构数据。中间服务器接收大数据服务器集群传输的序列结构数据。在一些实施例中,大数据服务器集群的控制节点从多个工作节点中分配至少一个发送节点。在一些实施例中,分配方式可以为随机分配,或者基于节点的状态分配,或者其他方式分配。节点的状态例如包括但不限于工作状态、存储状态等,工作状态例如为分析、计算、空闲等,存储状态例如为存储空间的占用量。在一些实施例中,控制节点分配发送节点后,可通知中间服务器至少一个发送节点的信息,以使至少一个发送节点获取第二待传输数据、转换第二待传输数据为序列结构数据并向中间服务器传输序列结构数据。在一些实施例中,第二待传输数据例如为Spark dataframe。
804、中间服务器向客户端传输序列结构数据。
805、客户端转换接收的序列结构数据为第三内存数据。在一些实施例中,第三内存数据可以为Pandas dataframe。
在一些实施例中,客户端还向中间服务器发送数据发送信息;其中,数据发送信息用于指示大数据服务器集群发送序列结构数据及发送前的操作。在一些实施例中,发送前的操作包括:转换第二待传输数据为序列结构数据。在一些实施例中,客户端向中间服务器发送数据发送信息后,等待接收中间服务器传输的序列结构数据。需要说明的是,前述“等待”并非客户端需要特殊设置的动作,仅用于表明客户端发送数据发送信息与接收序列结构数据之间存在时间间隔。在一些实施例中,数据发送信息可以通过信令方式发送,例如在客户端与中间服务器建立通信的过程中发送数据发送信息。
在一些实施例中,大数据服务器集群向客户端传输Spark dataframe,大数据服务器集群将Spark dataframe转换为json数据,可利用livy server线上传输json数据,客户端再将json数据转换为Spark dataframe。可见,Spark dataframe无需与文件进行显性转换,Pandas dataframe与Spark dataframe之间通过json数据作为中间表示,达到互相转换的目的。
图9为本公开实施例提供的与大数据服务器集群进行数据传输的方法流程图。该方法应用于客户端。如图9所示,与大数据服务器集群进行数据传输的方法包括步骤901至903:
901、获取第一待传输数据。在一些实施例中,将客户端中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据,客户端获取的第一待传输数据为可序列化的数据。更进一步地,第一待传输数据可以包括第一内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第一内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第一内存数据可以为Pandas dataframe。
902、转换第一待传输数据为序列结构数据,从而避免内存数据和文件之间的显性转换。在一些实施例中,序列结构数据为json数据。
903、向中间服务器传输序列结构数据,以使中间服务器向大数据服务器集群传输序列结构数据。在一些实施例中,中间服务器可以为livy server,也可以为实现livyserver功能的设备。
在一些实施例中,与大数据服务器集群进行数据传输的方法还包括步骤:向中间服务器发送数据接收信息。其中,数据接收信息用于指示大数据服务器集群接收序列结构数据及接收后的操作。在一些实施例中,接收后的操作包括:转换序列结构数据为第二内存数据。在一些实施例中,第二内存数据为Spark dataframe,便于大数据服务器集群读取和存储。
在一些实施例中,向中间服务器传输序列结构数据之前,向中间服务器发送数据接收信息。在一些实施例中,向中间服务器传输序列结构数据的同时,向中间服务器发送数据接收信息。在一些实施例中,数据接收信息可以通过信令方式发送,例如在客户端与中间服务器建立通信的过程中发送数据接收信息。在一些实施例中,数据接收信息也可以不单独发送,而是在序列结构数据中增加扩展位,扩展位可以是一个字节或者一个比特位,通过约定扩展位的取值,指示大数据服务器集群接收序列结构数据及接收后的操作。
在一些实施例中,通过向中间服务器发送数据接收信息,以使中间服务器可通知大数据服务器集群接收序列结构数据并对接收数据进行操作,可见,大数据服务器集群对于接收数据的操作是由中间服务器来指示,属于被动式。在一些实施例中,中间服务器的通知方式可以为直接将数据接收信息传输给大数据服务器集群,也可以为基于数据接收信息指示大数据服务器集群接收序列结构数据及接收后的操作。
在一些实施例中,与大数据服务器集群进行数据传输的方法还包括步骤:接收所述中间服务器传输的序列结构数据;转换接收的序列结构数据为第三内存数据。在一些实施例中,第三内存数据可以为Pandas dataframe。
在一些实施例中,与大数据服务器集群进行数据传输的方法还包括步骤:向中间服务器发送数据发送信息;其中,数据发送信息用于指示大数据服务器集群发送序列结构数据及发送前的操作。在一些实施例中,发送前的操作包括:转换第二待传输数据为序列结构数据;其中,第二待传输数据为可序列化的数据。在一些实施例中,将大数据服务器集群中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据。更进一步地,第二待传输数据可以包括第四内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第四内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第四内存数据可以为Spark dataframe。
在一些实施例中,向中间服务器发送数据发送信息后,等待接收中间服务器传输的序列结构数据。需要说明的是,前述“等待”并需要特殊设置的动作,仅用于表明发送数据发送信息与接收序列结构数据之间存在时间间隔。在一些实施例中,数据发送信息可以通过信令方式发送,例如在客户端与中间服务器建立通信的过程中发送数据发送信息。
通过向中间服务器发送数据发送信息,以使中间服务器可通知大数据服务器集群发送序列结构数据及发送前的操作,可见,大数据服务器集群对于发送数据的操作是由中间服务器来通知,属于被动式。在一些实施例中,中间服务器的通知方式可以为直接将数据发送信息传输给大数据服务器集群,也可以为基于数据发送信息指示大数据服务器集群发送序列结构数据及发送前的操作。
图10为本公开实施例提供的客户端与大数据服务器集群进行数据传输的方法流程图。该方法应用于中间服务器。在一些实施例中,中间服务器可以为livy server,也可以为实现livy server功能的设备。
如图10所示,客户端与大数据服务器集群进行数据传输的方法包括步骤1001和1002:
1001、接收客户端传输的序列结构数据;其中,序列结构数据为客户端转换第一待传输数据得到;第一待传输数据为可序列化的数据。在一些实施例中,将客户端中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据,第一待传输数据可以包括第一内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第一内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第一内存数据可以为Pandas dataframe。
1002、向大数据服务器集群传输序列结构数据。在一些实施例中,通过确定大数据服务器集群中的接收节点,进而向接收节点传输序列结构数据。在一些实施例中,大数据服务器集群可分配接收节点,分配方式可以为随机分配,或者基于节点的状态分配,或者其他方式分配。节点的状态例如包括但不限于工作状态、存储状态等,工作状态例如为分析、计算、空闲等,存储状态例如为存储空间的占用量。在一些实施例中,大数据服务器集群分配接收节点后,可通知中间服务器接收节点的信息,进而使中间服务器确定大数据服务器集群中的接收节点。
在一些实施例中,客户端与大数据服务器集群进行数据传输的方法还包括:接收客户端发送的数据接收信息;其中,数据接收信息用于指示大数据服务器集群接收序列结构数据及接收后的操作。通过接收数据接收信息,可明确由大数据服务器集群接收序列结构数据及接收后的操作。在一些实施例中,接收后的操作包括:转换序列结构数据为第二内存数据。在一些实施例中,第二内存数据为Spark dataframe。
在一些实施例中,客户端与大数据服务器集群进行数据传输的方法还包括:通知大数据服务器集群接收序列结构数据及接收后的操作。在一些实施例中,通知的方式为:将数据接收信息传输给接收节点,或,基于数据接收信息指示接收节点接收序列结构数据后的操作,进而使接收节点明确接收序列结构数据后,转换序列结构数据为第二内存数据,例如转换序列结构数据为Spark dataframe。
在一些实施例中,客户端与大数据服务器集群进行数据传输的方法还包括:接收大数据服务器集群传输的序列结构数据并向客户端传输该序列结构数据。在一些实施例中,大数据服务器集群传输的序列结构数据为大数据服务器集群转换第二待传输数据得到。第二待传输数据为可序列化的数据。在一些实施例中,将大数据服务器集群中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据。更进一步地,第二待传输数据可以包括第四内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第四内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第四内存数据可以为Spark dataframe。
在一些实施例中,客户端与大数据服务器集群进行数据传输的方法还包括:接收客户端发送的数据发送信息;其中,数据发送信息用于指示大数据服务器集群发送序列结构数据及发送前的操作。通过接收数据发送信息,可明确由大数据服务器集群发送序列结构数据及发送前的操作。在一些实施例中,发送前的操作包括:转换第二待传输数据为序列结构数据。在一些实施例中,第二待传输数据可以为Spark dataframe。
在一些实施例中,客户端与大数据服务器集群进行数据传输的方法还包括:通过确定大数据服务器集群中的发送节点,进而指示发送节点发送序列结构数据。在一些实施例中,大数据服务器集群可分配发送节点,分配方式可以为随机分配,或者基于节点的状态分配,或者其他方式分配。节点的状态例如包括但不限于工作状态、存储状态等,工作状态例如为分析、计算、空闲等,存储状态例如为存储空间的占用量。在一些实施例中,大数据服务器集群分配发送节点后,可通知中间服务器发送节点的信息,进而使中间服务器确定大数据服务器集群中的发送节点。
在一些实施例中,客户端与大数据服务器集群进行数据传输的方法还包括:通知大数据服务器集群发送序列结构数据及发送前的操作。在一些实施例中,通知的方式为:将数据发送信息传输给发送节点,或,基于数据发送信息指示发送节点传输序列结构数据前的操作,进而使发送节点明确发送序列结构数据前,转换第二待传输数据为序列结构数据,例如转换Spark dataframe为序列结构数据。
图11为本公开实施例提供的与客户端进行数据传输的方法流程图。该方法应用于大数据服务器集群中的节点。在一些实施例中,大数据服务器集群包括:控制节点和多个工作节点。
如图11所示,与客户端进行数据传输的方法包括步骤1001和1002:
1101、接收中间服务器传输的序列结构数据;其中,序列结构数据为客户端转换第一待传输数据得到;第一待传输数据为可序列化的数据。在一些实施例中,将客户端中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据。更进一步地,第一待传输数据可以包括第一内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第一内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第一内存数据可以为Pandas dataframe。
1102、转换接收的序列结构数据为第二内存数据。在一些实施例中,第二内存数据可以为Spark dataframe。
在一些实施例中,大数据服务器集群的控制节点从多个工作节点中分配至少一个接收节点。在一些实施例中,分配方式可以为随机分配,或者基于节点的状态分配,或者其他方式分配。节点的状态例如包括但不限于工作状态、存储状态等,工作状态例如为分析、计算、空闲等,存储状态例如为存储空间的占用量。在一些实施例中,控制节点分配接收节点后,可通知中间服务器至少一个接收节点的信息,以使至少一个接收节点接收中间服务器传输的序列结构数据,并转换序列结构数据为第二内存数据,第二内存数据例如为Sparkdataframe。
在一些实施例中,接收节点转换序列结构数据为第二内存数据时,基于中间服务器发送的数据接收信息,或,基于中间服务器指示的接收后的操作,转换序列结构数据为第二内存数据;其中,数据接收信息用于指示大数据服务器集群接收序列结构数据及接收后的操作。可见,接收节点对于接收数据的操作是由数据接收信息来指示,属于被动式。
在一些实施例中,与客户端进行数据传输的方法还包括:获取第二待传输数据;其中,第二待传输数据为可序列化的数据。在一些实施例中,将大数据服务器集群中的数据划分为三类:内存数据、可序列化的非内存数据和不可序列化的非内存数据。更进一步地,第二待传输数据可以包括第四内存数据和可序列化的非内存数据中的至少一种。在一些实施例中,第四内存数据可以为不可序列化的非内存数据转换得到的内存数据,也可以为可序列化的非内存数据转换得到的内存数据,还可以为两者分别转换得到的内存数据。在一些实施例中,第四内存数据可以为Spark dataframe。
在一些实施例中,与客户端进行数据传输的方法还包括:转换第二待传输数据为序列结构数据,从而避免内存数据和文件之间的显性转换。在一些实施例中,序列结构数据为json数据。
在一些实施例中,与客户端进行数据传输的方法还包括:向中间服务器传输第二待传输数据转换得到的序列结构数据,以使中间服务器向客户端传输该序列结构数据。
在一些实施例中,大数据服务器集群的控制节点从多个工作节点中分配至少一个发送节点。在一些实施例中,分配方式可以为随机分配,或者基于节点的状态分配,或者其他方式分配。节点的状态例如包括但不限于工作状态、存储状态等,工作状态例如为分析、计算、空闲等,存储状态例如为存储空间的占用量。在一些实施例中,控制节点分配发送节点后,可通知中间服务器至少一个发送节点的信息,以使至少一个发送节点获取第二待传输数据、转换第二待传输数据为序列结构数据并向中间服务器传输序列结构数据。在一些实施例中,第二待传输数据例如为Spark dataframe。
在一些实施例中,发送节点转换第二待传输数据为序列结构数据时,基于中间服务器发送的数据发送信息,或,基于中间服务器指示的发送前的操作,转换第二待传输数据为序列结构数据;其中,数据发送信息用于指示大数据服务器集群发送序列结构数据及发送前的操作。可见,发送节点对于发送数据的操作是由数据发送信息来指示,属于被动式。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员能够理解,本公开实施例并不受所描述的动作顺序的限制,因为依据本公开实施例,某些步骤可以采用其他顺序或者同时进行(例如在一些实施例中,客户端21向中间服务器22传输序列结构数据之前,向中间服务器22发送数据接收信息。在一些实施例中,客户端21向中间服务器22传输序列结构数据的同时,向中间服务器22发送数据接收信息)。另外,本领域技术人员能够理解,说明书中所描述的实施例均属于可选实施例。
本公开实施例还提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如与大数据服务器集群进行数据传输的方法、客户端与大数据服务器集群进行数据传输的方法、与客户端进行数据传输的方法中任一方法各实施例的步骤,为避免重复描述,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。
本领域的技术人员能够理解,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
虽然结合附图描述了本公开的实施方式,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (26)
1.一种数据传输的方法,其特征在于,应用于客户端,所述客户端为Spark客户端且所述Spark客户端配置有Pandas,方法包括:
获取第一待传输数据;其中,所述第一待传输数据为可序列化的数据;所述可序列化的数据由Pandas转换结构化数据文件得到;
转换所述第一待传输数据为序列结构数据;
向中间服务器传输所述序列结构数据;其中,所述中间服务器为启用Spark REST服务的服务器,且所述中间服务器用于基于Spark REST服务通过HTTP方式向大数据服务器集群传输序列结构数据,其中,所述大数据服务器集群为Spark集群。
2.根据权利要求1所述的方法,其特征在于,还包括:向中间服务器发送数据接收信息;其中,所述数据接收信息用于指示所述大数据服务器集群接收序列结构数据及接收后的操作。
3.根据权利要求2所述的方法,其特征在于,所述接收后的操作包括:转换所述序列结构数据为第二内存数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述中间服务器传输的序列结构数据;
转换接收的序列结构数据为第三内存数据。
5.根据权利要求1或4所述的方法,其特征在于,所述方法还包括:向所述中间服务器发送数据发送信息;其中,所述数据发送信息用于指示所述大数据服务器集群发送序列结构数据及发送前的操作。
6.根据权利要求5所述的方法,其特征在于,所述发送前的操作包括:转换第二待传输数据为序列结构数据;其中,所述第二待传输数据为可序列化的数据。
7.根据权利要求6所述的方法,其特征在于,所述第二待传输数据包括:第四内存数据;和/或,可序列化的非内存数据。
8.一种数据传输的方法,应用于中间服务器,其特征在于,所述中间服务器为启用Spark REST服务的服务器,所述方法包括:
接收客户端传输的序列结构数据;其中,所述客户端为Spark客户端且所述Spark客户端配置有Pandas,所述序列结构数据为所述客户端转换第一待传输数据得到;所述第一待传输数据为可序列化的数据;所述可序列化的数据由Pandas转换结构化数据文件得到;
基于Spark REST服务通过HTTP方式向大数据服务器集群传输所述序列结构数据,其中,所述大数据服务器集群为Spark集群。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:接收所述客户端发送的数据接收信息;其中,所述数据接收信息用于指示所述大数据服务器集群接收序列结构数据及接收后的操作。
10.根据权利要求8或9所述的方法,其特征在于,向大数据服务器集群传输所述序列结构数据,包括:
确定大数据服务器集群中的接收节点并向所述接收节点传输所述序列结构数据。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:将数据接收信息传输给所述接收节点,或,基于数据接收信息指示所述接收节点接收所述序列结构数据后的操作。
12.根据权利要求8所述的方法,其特征在于,所述方法还包括:接收大数据服务器集群传输的序列结构数据并向所述客户端传输所述序列结构数据;所述序列结构数据为所述大数据服务器集群转换第二待传输数据得到;所述第二待传输数据为可序列化的数据。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:接收所述客户端发送的数据发送信息;其中,所述数据发送信息用于指示所述大数据服务器集群发送序列结构数据及发送前的操作。
14.根据权利要求12所述的方法,其特征在于,所述方法还包括:确定所述大数据服务器集群中的发送节点并指示所述发送节点传输序列结构数据。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:将数据发送信息传输给所述发送节点,或,基于数据发送信息指示所述发送节点传输所述序列结构数据前的操作。
16.一种数据传输的方法,应用于大数据服务器集群中的节点,其特征在于,所述大数据服务器集群为Spark集群,所述方法包括:
接收中间服务器传输的序列结构数据;其中,所述中间服务器为启用Spark REST服务的服务器,且所述中间服务器基于Spark REST服务通过HTTP方式传输序列结构数据;所述序列结构数据为客户端转换第一待传输数据得到;其中,所述客户端为Spark客户端且所述Spark客户端配置有Pandas,所述第一待传输数据为可序列化的数据;所述可序列化的数据由Pandas转换结构化数据文件得到;
转换所述序列结构数据为第二内存数据。
17.根据权利要求16所述的方法,其特征在于,所述大数据服务器集群包括:控制节点和多个工作节点;所述方法还包括:所述控制节点从多个工作节点中分配至少一个接收节点;所述控制节点通知所述中间服务器所述至少一个接收节点;所述至少一个接收节点接收中间服务器传输的序列结构数据,并转换所述序列结构数据为第二内存数据。
18.根据权利要求16所述的方法,其特征在于,转换所述序列结构数据为第二内存数据,包括:
基于所述中间服务器发送的数据接收信息,或,基于所述中间服务器指示的接收后的操作,转换所述序列结构数据为第二内存数据;其中,所述数据接收信息用于指示所述大数据服务器集群接收序列结构数据及接收后的操作。
19.根据权利要求16所述的方法,其特征在于,所述方法还包括:获取第二待传输数据;其中,所述第二待传输数据为可序列化的数据;
转换所述第二待传输数据为序列结构数据;
向所述中间服务器传输所述序列结构数据。
20.根据权利要求19所述的方法,其特征在于,所述大数据服务器集群包括:控制节点和多个工作节点;所述方法还包括:所述控制节点从多个工作节点中分配至少一个发送节点;所述控制节点通知所述中间服务器所述至少一个发送节点;所述至少一个发送节点获取第二待传输数据、转换所述第二待传输数据为序列结构数据并向所述中间服务器传输所述序列结构数据。
21.根据权利要求19所述的方法,其特征在于,转换所述第二待传输数据为序列结构数据,包括:
基于所述中间服务器发送的数据发送信息,或,基于所述中间服务器指示的发送前的操作,转换所述第二待传输数据为序列结构数据;其中,所述数据发送信息用于指示所述大数据服务器集群发送序列结构数据及发送前的操作。
22.一种客户端,其特征在于,所述客户端为Spark客户端且所述Spark客户端配置有Pandas,所述客户端包括:
获取单元,用于获取第一待传输数据;其中,所述第一待传输数据为可序列化的数据;所述可序列化的数据由Pandas转换结构化数据文件得到;
转换单元,用于转换所述第一待传输数据为序列结构数据;
传输单元,用于向中间服务器传输所述序列结构数据;其中,所述中间服务器为启用Spark REST服务的服务器,且所述中间服务器用于基于Spark REST服务通过HTTP方式向大数据服务器集群传输序列结构数据,其中,所述大数据服务器集群为Spark集群。
23.一种中间服务器,其特征在于,所述中间服务器为启用Spark REST服务的服务器,所述中间服务器包括:
接收单元,用于接收客户端传输的序列结构数据;其中,所述客户端为Spark客户端且所述Spark客户端配置有Pandas,所述序列结构数据为所述客户端转换第一待传输数据得到;所述第一待传输数据为可序列化的数据;所述可序列化的数据由Pandas转换结构化数据文件得到;
传输单元,用于基于Spark REST服务通过HTTP方式向大数据服务器集群传输所述序列结构数据,其中,所述大数据服务器集群为Spark集群。
24.一种节点,应用于大数据服务器集群,其特征在于,所述大数据服务器集群为Spark集群,所述节点包括:
接收单元,用于接收中间服务器传输的序列结构数据;其中,所述中间服务器为启用Spark REST服务的服务器,且所述中间服务器基于Spark REST服务通过HTTP方式传输序列结构数据;所述序列结构数据为客户端转换第一待传输数据得到;其中,所述客户端为Spark客户端且所述Spark客户端配置有Pandas,所述第一待传输数据为可序列化的数据;所述可序列化的数据由Pandas转换结构化数据文件得到;
转换单元,用于转换所述序列结构数据为第二内存数据。
25.一种电子设备,其特征在于,包括:处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如权利要求1至21任一项所述方法的步骤。
26.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如权利要求1至21任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911319365.XA CN111092947B (zh) | 2019-12-19 | 2019-12-19 | 数据传输的方法、客户端、中间服务器、节点及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911319365.XA CN111092947B (zh) | 2019-12-19 | 2019-12-19 | 数据传输的方法、客户端、中间服务器、节点及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111092947A CN111092947A (zh) | 2020-05-01 |
CN111092947B true CN111092947B (zh) | 2022-05-10 |
Family
ID=70396162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911319365.XA Active CN111092947B (zh) | 2019-12-19 | 2019-12-19 | 数据传输的方法、客户端、中间服务器、节点及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111092947B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104168306A (zh) * | 2014-06-26 | 2014-11-26 | 湖北安标信息技术有限公司 | 基于分布式系统的配置集成方法 |
CN104954453A (zh) * | 2015-06-02 | 2015-09-30 | 浙江工业大学 | 基于云计算的数据挖掘rest服务平台 |
CN105868019A (zh) * | 2016-02-01 | 2016-08-17 | 中国科学院大学 | 一种Spark平台性能自动优化方法 |
CN106020963A (zh) * | 2016-06-07 | 2016-10-12 | 中国建设银行股份有限公司 | 一种跨系统内部服务调用方法和装置 |
CN107092676A (zh) * | 2017-04-18 | 2017-08-25 | 广东浪潮大数据研究有限公司 | 一种数据处理方法及装置 |
CN108062251A (zh) * | 2018-01-09 | 2018-05-22 | 福建星瑞格软件有限公司 | 一种服务器资源回收方法以及计算机设备 |
CN108153859A (zh) * | 2017-12-24 | 2018-06-12 | 浙江工商大学 | 一种基于Hadoop与Spark的效用次序并行确定方法 |
CN109308224A (zh) * | 2017-07-27 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 跨平台数据通信、跨平台数据处理的方法、装置及系统 |
CN109840253A (zh) * | 2019-01-10 | 2019-06-04 | 北京工业大学 | 企业级大数据平台架构 |
CN110166312A (zh) * | 2018-02-16 | 2019-08-23 | 丛林网络公司 | 使用随机测试床自动创建网络装置模型 |
CN110489323A (zh) * | 2019-07-09 | 2019-11-22 | 北京字节跳动网络技术有限公司 | 可视化的rpc api调试方法、装置、介质和设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10467039B2 (en) * | 2017-08-07 | 2019-11-05 | Open Data Group Inc. | Deployment and management platform for model execution engine containers |
US11334589B2 (en) * | 2018-03-27 | 2022-05-17 | Paypal, Inc. | System and platform for computing and analyzing big data |
-
2019
- 2019-12-19 CN CN201911319365.XA patent/CN111092947B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104168306A (zh) * | 2014-06-26 | 2014-11-26 | 湖北安标信息技术有限公司 | 基于分布式系统的配置集成方法 |
CN104954453A (zh) * | 2015-06-02 | 2015-09-30 | 浙江工业大学 | 基于云计算的数据挖掘rest服务平台 |
CN105868019A (zh) * | 2016-02-01 | 2016-08-17 | 中国科学院大学 | 一种Spark平台性能自动优化方法 |
CN106020963A (zh) * | 2016-06-07 | 2016-10-12 | 中国建设银行股份有限公司 | 一种跨系统内部服务调用方法和装置 |
CN107092676A (zh) * | 2017-04-18 | 2017-08-25 | 广东浪潮大数据研究有限公司 | 一种数据处理方法及装置 |
CN109308224A (zh) * | 2017-07-27 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 跨平台数据通信、跨平台数据处理的方法、装置及系统 |
CN108153859A (zh) * | 2017-12-24 | 2018-06-12 | 浙江工商大学 | 一种基于Hadoop与Spark的效用次序并行确定方法 |
CN108062251A (zh) * | 2018-01-09 | 2018-05-22 | 福建星瑞格软件有限公司 | 一种服务器资源回收方法以及计算机设备 |
CN110166312A (zh) * | 2018-02-16 | 2019-08-23 | 丛林网络公司 | 使用随机测试床自动创建网络装置模型 |
CN109840253A (zh) * | 2019-01-10 | 2019-06-04 | 北京工业大学 | 企业级大数据平台架构 |
CN110489323A (zh) * | 2019-07-09 | 2019-11-22 | 北京字节跳动网络技术有限公司 | 可视化的rpc api调试方法、装置、介质和设备 |
Non-Patent Citations (6)
Title |
---|
"[Spark]使用Spark的REST服务Livy";mryqu;《http://blog.sina.com.cn/s/blog_72ef7bea0102y4xo.html》;20180717;正文第1-4段,"使用Livy的REST API" * |
"Data-at-rest security for spark";Syed Yousaf Shah et al.;《2016 IEEE International Conference on Big Data (Big Data)》;20170206;全文 * |
"Livy,基于Apache Spark的开源REST服务,加入Cloudera Labs";匿名;《https://cloud.tencent.com/developer/article/1078808》;20180401;全文 * |
"Spark SQL,如何将 DataFrame 转为 json 格式";匿名;《https://zhuanlan.zhihu.com/p/51764079》;20181206;全文 * |
"基于Spark-on-EGO的资源调度器的设计与实现";张梅;《万方学位论文数据库》;20180929;全文 * |
Pandas中DataFrame对象转json格式;DexterLien;《https://blog.csdn.net/lpwmm/article/details/100651450》;20190909;正文第1-9行 * |
Also Published As
Publication number | Publication date |
---|---|
CN111092947A (zh) | 2020-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108924250B (zh) | 基于区块链的业务请求处理方法、装置和计算机设备 | |
CN110995513B (zh) | 物联网系统中的数据发送、接收方法、物联网设备及平台 | |
CN103279351B (zh) | 一种任务调度的方法及装置 | |
CN113778463B (zh) | 一种业务服务部署方法及装置 | |
US9537940B2 (en) | Exchange of information between processing servers | |
CN103944961A (zh) | 一种分享应用的方法、装置及系统 | |
US10162719B2 (en) | Ordering device, data processing device, ordering method, computer program product, and multiplex system | |
CN111092947B (zh) | 数据传输的方法、客户端、中间服务器、节点及电子设备 | |
US8386692B2 (en) | Method for communicating between nodes and server apparatus | |
CN105491082A (zh) | 远程资源访问方法和交换设备 | |
US20190059103A1 (en) | Control device and communication system | |
US20170142227A1 (en) | Data processing apparatus and data processing method | |
CN111309467B (zh) | 任务分发方法及装置、电子设备及存储介质 | |
JP6283728B2 (ja) | 大容量データ転送装置及び方法 | |
JP6285473B2 (ja) | 通信設定通知装置 | |
CN110928692B (zh) | 一种任务处理方法、装置及电子设备 | |
TWI673610B (zh) | 遠端工作系統及其工作方法 | |
CN111240867A (zh) | 一种信息通讯系统及方法 | |
CN109981674A (zh) | 一种远程过程调用方法、装置、设备及介质 | |
US20240069754A1 (en) | Computing system and associated method | |
JP5365377B2 (ja) | 配信システム、集信システム、配信方法、集信方法、及びプログラム | |
CN113691630B (zh) | Dns请求处理方法、装置、系统、电子设备和存储介质 | |
JP2017058923A (ja) | ログ記録システム | |
KR102268796B1 (ko) | 하이퍼바이저 기반 plc 서비스 처리 장치 | |
JP6816469B2 (ja) | 通信装置、通信システム、通信方法、および、通信プログラム |
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 |