CN109325026A - 基于大数据平台的数据处理方法、装置、设备及介质 - Google Patents
基于大数据平台的数据处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN109325026A CN109325026A CN201810920367.3A CN201810920367A CN109325026A CN 109325026 A CN109325026 A CN 109325026A CN 201810920367 A CN201810920367 A CN 201810920367A CN 109325026 A CN109325026 A CN 109325026A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- capacity
- free memory
- partition
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于大数据平台的数据处理方法、装置、设备及介质,包括:获取大数据平台中的各个节点的数据表格信息和空余内存容量,数据表格信息包括数据表格容量和数据表格读取次数;按照数据表格读取次数从大到小的顺序对数据表格进行排序,并根据各个节点的空余内存容量对数据表格按照排序的顺序进行选取,得到待切分数据,其中,待切分数据小于或等于各个节点的总空余内存容量;根据各个节点的空余内存容量,将待切分数据进行切分处理,得到分区数据;获取各个节点的空余内存容量的空余容量比例,并根据空余容量比例将分区数据发送至各个节点的内存。该方法可减少在大数据平台读取数据的时间,提高了数据的读取效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于大数据平台的数据处理方法、装置、设备及介质。
背景技术
在进行大数据的计算过程中,每次对数据进行读取时,都需要通过存储数据的机器的硬盘I/O中进行读取,而在I/O口中读取数据需要耗费的时间较长,若需要重复读取一些数据时,在I/O口的读取所消耗的时间就会更多。因此,增加了在大数据的计算过程的时间,且计算的效率不高。
发明内容
基于此,有必要针对上述技术问题,提供一种可以减少数据读取时间,提高数据读取效率的基于大数据平台的数据处理方法、装置、计算机设备及存储介质。
一种基于大数据平台的数据处理方法,包括:
获取大数据平台中的各个节点的数据表格信息和空余内存容量,所述数据表格信息包括数据表格容量和数据表格读取次数;
按照所述数据表格读取次数从大到小的顺序对数据表格进行排序,并根据所述各个节点的所述空余内存容量对所述数据表格按照所述排序的顺序进行选取,得到待切分数据,其中,所述待切分数据小于或等于各个节点的总空余内存容量;
根据所述各个节点的所述空余内存容量,将所述待切分数据进行切分处理,得到分区数据;
获取所述各个节点的所述空余内存容量的空余容量比例,并根据所述空余容量比例将所述分区数据发送至所述各个节点的内存。
一种基于大数据平台的数据处理装置,包括:
获取模块,用于获取大数据平台中的各个节点的数据表格信息和空余内存容量,所述数据表格信息包括数据表格容量和数据表格读取次数;
排序模块,用于按照所述数据表格读取次数从大到小的顺序对数据表格进行排序,并根据所述各个节点的所述空余内存容量对所述数据表格按照所述排序的顺序进行选取,得到待切分数据,其中,所述待切分数据小于或等于各个节点的总空余内存容量;
分区模块,用于根据所述各个节点的所述空余内存容量,将所述待切分数据进行切分处理,得到分区数据;
发送模块,用于获取所述各个节点的所述空余内存容量的空余容量比例,并根据所述空余容量比例将所述分区数据发送至所述各个节点的内存。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于大数据平台的数据处理方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述基于大数据平台的数据处理方法的步骤。
上述基于大数据平台的数据处理方法、装置、设备及介质中,在判定需要进行切分并写入内存的数据后,只需要在第一次读取该数据时,通过硬盘的I/O口进行读取,之后再需要读取该数据时,之前从内存中调用,大大减少了读取数据的时间。根据数据读取次数对数据表格进行排序,还通过各个节点的空余内存容量判定需要进行切分并写入内存的数据,减少了从硬盘的I/O口进行读取的数据量,减少在大数据平台读取数据的时间,提高了数据的读取效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中基于大数据平台的数据处理方法的一应用环境示意图;
图2是本发明一实施例中基于大数据平台的数据处理方法的一流程图;
图3是本发明一实施例中基于大数据平台的数据处理方法中对步骤S20的实现流程图;
图4是本发明一实施例中基于大数据平台的数据处理方法中对步骤S30的实现流程图;
图5是本发明一实施例中基于大数据平台的数据处理方法中对步骤S40的实现流程图;
图6是本发明一实施例中基于大数据平台的数据处理方法中对各个节点的内存空间进行监控的一流程图;
图7是本发明一实施例中基于大数据平台的数据处理方法中对步骤S80的实现流程图;
图8是本发明一实施例中基于大数据平台的数据处理装置的一原理框图;
图9是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供的基于大数据平台的数据处理方法,可应用在如图1的应用环境中,即该数据处理方法应用在大数据平台中,大数据平台是指用于存储服务端集群中各个数据库的数据,并对数据进行计算、分析或处理等操作的平台。该大数据平台中包括了客户端和服务端。其中,客户端(节点)通过网络与服务端进行通信。客户端将数据表格信息和空余内存容量发送至服务端。服务端根据该各个客户端的数据表格信息和空余内存容量对数据表格进行切分,并发送至客户端。其中,客户端(节点)可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种基于大数据平台的数据处理方法,以该方法应用在图1中的服务端为例进行说明,包括如下步骤:
S10:获取大数据平台中的各个节点的数据表格信息和空余内存容量,数据表格信息包括数据表格容量和数据表格读取次数。
在本实施例中,该一个节点为大数据平台中处理大数据程序的一台计算机,该服务端下有多个节点同时处理大数据程序中的数据,各个节点通过网络互相通信,各个节点之间可以通过网络相互发送和接收数据。
数据表格是指在处理大数据程序时使用的数据,其中,该数据表格信息包括的数据表格容量是指该数据表格的容量大小,该数据表格读取次数是指在一定时间内该数据表格被读取的次数,其中一定时间可以为一个月、三个月或六个月等。
该空余内存容量是指每个节点的内存中处于空闲状态的内存的容量。可以理解地,对于一个节点的总内存,可以包括该节点中被占用的内存和空闲状态的内存两部分。
具体地,每个节点中被占用的内存会根据该节点实际运行情况产生变化,该变化包括程序运行占用的内存的上升或下降,因此,为了保证节点中程序运行占用的内存根据实际运行情况而变化时,该节点仍能够正常运行,在获取该空余内存容量时,可以根据各个节点的使用情况,设置一定的额度。具体地,可以在获取该空余内存容量时,设置一定的比例来实现,例如,设置比例为80%,在获取到该节点空闲状态的内存的容量之后,再将该节点空闲状态的内存的容量乘以该比例(80%),即得到空余内存容量。
进一步地,在获取该数据表格容量时,可以使用预先编辑好的代码语句进行获取,例如可以通过SQL中的select语句获取该数据表格容量;在获取该数据表格读取次数时,可以在大数据程序中查询历史读取记录,从该历史读取记录中获取每一数据表格的数据表格读取次数。
S20:按照数据表格读取次数从大到小的顺序对数据表格进行排序,并根据各个节点的空余内存容量对数据表格按照排序的顺序进行选取,得到待切分数据,其中,待切分数据小于或等于各个节点的总空余内存容量。
在本实施例中,该待切分数据是指需要进行切分处理的数据表格。具体地,在按照数据表格读取次数从大到小的顺序对数据表格进行排序后,根据各个节点的空余内存容量,对数据表格按照该排序的顺序进行选取,根据选取的结果,在各个节点硬盘的I/O口中读取该数据表格,作为待切分数据。在选取时,根据各个节点的空余内存容量,计算出所有节点的总空余内存容量,按照排序的顺序对数据表格进行选取,得到待切分数据,并保证选取出来的切分数据的总数据量小于或等于总空余内存容量。
优选地,可以通过设置读取次数阈值(例如,三次)的方式,将该数据表格读取次数小于该读取次数阈值对应的数据表格从该排序结果中删除,即只保留该数据表格读取次数大于或等于该读取次数阈值对应的数据表格作为排序后的结果。
S30:根据各个节点的空余内存容量,将待切分数据进行切分处理,得到分区数据。
在本实施例中,该分区数据是指将待切分数据进行切分处理后,得到的数据。
具体地,根据各个节点的空余内存容量,确定将待切分数据切分后分配到每个分区数据的数据量,在确定该分区数据的数据量时,通过获取空余内存容量最小的节点的空余内存容量,根据该空余内存容量最小的节点的空余内存容量作为该分区数据的数据量的最大数据量。在确定出分区数据的数据量后,根据切分数据的总数据量,获取该分区数据的数量,并根据该数量,将待切分数据进行切分,得到分区数据。
S40:获取各个节点的空余内存容量的空余容量比例,并根据空余容量比例将分区数据发送至各个节点的内存。
在本实施例中,该空余容量比例是指各个节点的空余内存容量之间的比例。在将分区数据发送至各个节点的内存时,根据该空余容量比例,获取将该分区数据发送至每个节点的内存的数量,并根据每个节点获取到的数量,将分区数据发送至各个节点的内存。例如:现有三个节点,分别为节点A、节点B和节点C,且节点A的空余内存容量为5GB,节点B的空余内存容量为2GB和节点C的空余内存容量为1GB,则该三个节点的空余容量比例为A:B:C=5:2:1。现有8个分区数据,按照该比例对每个节点获取到分区数据的数量进行分配,得到的结果为节点A获取到5个分区数据、节点B获取到2个分区数据以及节点C取到1个分区数据。
在本实施例中,在判定需要进行切分并写入内存的数据后,只需要在第一次读取该数据时,通过硬盘的I/O口进行读取,之后再需要读取该数据时,之前从内存中调用,大大减少了读取数据的时间。根据数据读取次数对数据表格进行排序,还通过各个节点的空余内存容量判定需要进行切分并写入内存的数据,减少了从硬盘的I/O口进行读取的数据量,减少在大数据平台读取数据的时间,提高了数据的读取效率。
在一实施例中,如图3所示,步骤S20中,即根据各个节点的空余内存容量对数据表格按照排序的顺序进行选取,得到待切分数据,具体包括如下步骤:
S21:根据各个节点的空余内存容量,获取总空余内存容量。
在本实施例中,该总空余内存容量是指所有节点的空余内存容量的总和。具体地,根据各个节点的空余内存容量,将各个节点的空余内存容量进行叠加,得到该总空余内存容量。
S22:按照数据表格读取次数从大到小的顺序对数据表格的数据表格容量进行逐项叠加,得到数据表格总容量,并在每次叠加之后判断数据表格总容量是否大于总空余内存容量。
在本实施例中,数据表格总容量是指在对每个数据表格容量进行逐项叠加后,得到的数据表格容量总和。其中,逐项叠加是指按照数据表格读取次数从大到小的顺序,对数据表格容量依次叠加,例如,现有三个数据表格对应的数据表格容量,按照数据表格读取次数从大到小的顺序先对第一个和第二个数据表格对应的数据表格容量进行叠加,然后判断此时数据表格总容量是否大于总空余内存容量。可以理解地,数据表格总容量在每次叠加之后都会更新。在每一次叠加之后,都要对该数据表格总容量是否大于该总空余内存容量进行判断,并根据判断结果,进行下一步骤操作。
S23:若数据表格总容量小于或等于总空余内存容量,则将叠加的数据表格容量对应的数据表格放入待选数据集中。
在本实施例中,待选数据集是指数据表格的集合,且在待选数据集中的数据表格的数据表格总容量小于或等于总空余内存容量。
具体地,在对数据表格容量每一次叠加之后,若该数据表格总容量小于或等于该总空余内存容量,则将该叠加的数据表格容量对应的数据表格放入该待选数据集中,并进行下一次叠加操作。
S24:若数据表格总容量大于总空余内存容量,则停止对数据表格的数据表格容量进行逐项叠加。
具体地,若在叠加之后,该数据表格总容量大于该总空余内存容量,则停止对数据表格的数据表格容量进行逐项叠加的操作,确保待选数据集的总容量小于或等于总空余内存容量。
S25:将待选数据集中的数据表格作为待切分数据。
具体地,在该对数据表格容量的逐项叠加操作结束后,将该待选数据集中的数据表格作为待切分数据。
本实施例中,通过按照数据表格读取次数从大到小的顺序进行排序,再根据该顺序对数据表格容量进行逐项叠加,能够提高选取的数据表格的效率。且在每次叠加后对数据表格总容量判断,能够在确定待切分数据时,该待切分数据的数据表格总容量不会超过总空余内存容量,能够确保后续各个节点正常运行的稳定性。
在一实施例中,如图4所示,步骤S30中,即根据各个节点的空余内存容量,将待切分数据进行切分处理,得到分区数据,具体包括如下步骤:
S31:根据各个节点的空余内存容量,获取哈希分区表的数量。
在本实施例中,哈希分区表是指用于存放将待切分数据进行切分后得到的数据的数据表格。
具体地,哈希分区表的数量是根据各个节点的空余内存容量进行确定,确保得到的单个哈希分区表的数据量不大于空余内存容量最小的节点的空余内存容量,保证单个节点至少能存入一个分区数据的数据量。
由于多个节点并行读取数据能加快从内存读取速度,因此,该哈希分区表的数量可以大于节点数量,保证每个节点至少存放一个分区数据。优选地,为了避免数据倾斜,将该切分数据均匀的分布在各个哈希分区表上,最大化内存的吞吐量,所以哈希分区表的数量可以是2的幂,例如2、4、8或16等。
S32:根据哈希分区表的数量,使用哈希分区的切分方法,将待切分数据进行切分,得到切分数据。
在本实施例中,哈希分区即散列分区,是指在指定数量的分区中均等地划分数据的方法,并根据分区键的散列值将行映射到分区中。其中,分区键是指对数据表格进行分区定义分区的关键数据,且该分区键必须作为一个列存在于数据表格中。
具体地,在本实施例中,该数据表格是从不同节点中获取,该分区键无法统一,因此根据哈希分区表的数量,创建相应数量的哈希分区表,通过哈希函数计算出每个哈希分区表的哈希值,作为每个哈希分区表的分区键。再根据计算得到的分区键,将待切分数据进行切分,得到该切分数据。
S33:将切分数据映射至哈希分区表内,得到分区数据。
具体地,在得到切分数据后,通过该哈希函数,计算每个切分数据的哈希值,若切分数据的哈希值和哈希分区表的哈希值相同,则将该切分数据映射到该哈希分区表内,得到分区数据。
在本实施例中,根据各个节点的空余内存容量,将待切分数据进行切分,得到分区数据,能够在将待切分数据写入内存时,提高内存的使用率,也提高了将待切分数据写入内存的数据量。同时,使用哈希分区的方式进行切分,能够减少寻找分区键的时间,提高了数据分区的效率。
在一实施例中,如图5所示,步骤S40中,即获取各个节点的空余内存容量的空余容量比例,并根据空余容量比例将分区数据发送至各个节点的内存,具体包括如下步骤:
S41:根据各个节点的空余内存容量,获取各个节点的空余内存容量的空余容量比例。
具体地,根据各个节点的空余内存容量,计算出各个节点的空余内存容量的空余容量比例。例如:现有三个正常子节点,分别为节点A、节点B和节点C,且节点A的空余内存容量为3GB、节点B的空余内存容量为2GB和节点C的空余内存容量为1GB,则该三个节点的空余容量比例为A:B:C=3:2:1。
S42:根据空余容量比例,确定分配至每个节点的分区数据的分配数量。
具体地,在获取到各个节点的空余内存容量的空余容量比例后,则根据该各个节点的空余内存容量的空余容量比例将该分区数据进行划分。根据划分的结果,确定每个节点的分区数据的分配数量。
S43:根据分配数量,将分区数据分配至各个节点的内存。
具体地,在确定该分配至每个节点的分区数据的分配数量后,根据该分配数量,将分区数据分配至各个节点的内存。
其中,分配的方式可以采用远程过程调用(RPC,Remote Procedure Call)的方式进行分配。即获取各个节点的存储设备的信息,该存储设备的信息包括该存储设备的网卡、内存和处理器。进一步地,在获取到各个节点的存储设备的信息后,将各个节点分配到的分区数据,组成远程过程调用消息,发送至各个节点的存储设备的网卡。
各个节点的存储设备的网卡接收到该远程过程调用消息,该远程过程调用消息包括待写入的数据部分,其中,待写入的数据部分为分区数据中存储的数据。
各个节点的存储设备的处理器发送地址分配消息,地址分配消息包括处理器为待写入的数据预分配的内存地址。各个节点的存储设备的处理器可以调用该存储设备的应用程序接口函数为分区数据中存储的数据预分配内存地址,并将地址分配消息发送至各个节点的存储设备的网卡。该应用程序接口函数是指用于给分区数据分配内存地址的函数,该各个节点可以根据该内存地址将分配到的分区数据存储在内存中。
在本实施例中,根据各个节点的空余内存容量的空余容量比例对分区数据进行分配,能够针对每个节点的空余内存容量,对分区数据进行分配,提高了在对分区数据进行分配时的效率,也提高了将分区数据写入内存的成功率。
在一实施例中,如图6所示,步骤S40之后,该基于大数据平台的数据处理方法还包括如下步骤:
S50:对各个节点的当前内存空间进行监控。
由于各个节点在实际运行的过程中,有可能出现节点在运行中占用内存过大,而导致内存空间不足的情况,为了保证各个节点的正常运行,需要对各个节点的当前内存空间进行监控。
对各个节点的当前内存空间进行监控的方式可以是使用zabbix对各个节点的内存进行监控。其中,zabbix是一个提供分布式系统监视以及网络监控功能的开源解决方案。zabbix能监控每个节点的各种参数,包括每个截得内存空间的情况,并提供灵活的通知机制。具体地,由于zabbix是一个分布式监视系统,因此该zabbix系统包括负责监控的监控端和负责实时记录各个节点内存空间的记录端。进一步地,通过将zabbix负责实时记录各个节点内存空间的记录端运行在各个节点的内存中,对各个节点的内存空间情况进行实时记录,将记录的结果反馈至该监控端。
S60:若检测到任一节点的当前内存空间不足,则将当前内存空间不足的节点作为故障节点,将当前内存空间充足的节点作为正常节点。
具体地,若节点当前内存空间完全不足是指该节点的当前内存空间没有一点剩余,这种情况除了会影响该节点的正常运行,还有可能导致该节点出现死机或者其他故障,因此,在使用zabbix对各个节点的内存进行监控时,可以预设一个内存空间阈值,例如15%,即若该监控端检测到任一节点的当前内存空间小于15%,则判定该节点当前内存空间不足,将该当前内存空间不足的节点作为故障节点,将当前内存空间充足的节点作为正常节点。
S70:获取正常节点的剩余内存空间。
在本实施例中,该正常节点的剩余内存空间是指在每个正常节点的内存容量中,处于空闲状态的内存空间。
S80:将故障节点中的分区数据作为待分配数据。
在本实施例中,待分配数据是指为了保证该故障节点的正常运行,从故障节点的内存中,获取得到的分区数据的集合。
S90:根据正常节点的剩余内存空间将待分配数据进行切分处理,得到切分数据。
具体地,根据该正常节点的剩余内存空间,获取将该待分配数据进行切分处理的哈希分区表的数量,根据该哈希分区表的数量,使用哈希分区的切分方法,将待分配数据进行切分,得到该切分数据。
需要说明的是,在根据正常节点的剩余内存空间将待分配数据进行切分处理时,为了保证每个正常节点至少分配到一个切分数据,单个切分数据的数据量,不大于剩余内存空间最小的正常节点的剩余内存空间。
S100:获取正常节点的剩余内存空间的剩余容量比例,并根据剩余容量比例将切分数据发送至各个正常节点的内存。
具体地,根据各个正常节点的剩余内存空间,计算出正常节点的剩余内存空间的剩余容量比例。并根据该比例对切分数据进行划分,根据划分的结果,确定每个正常节点的切分数据的分配数量。根据该分配数量,将切分数据发送至各个正常节点的内存。
在本实施例中,当检测到有节点的当前内存空间不足时,对该当前内存空间不足的节点的内存中的切分数据进行重新分配,能够在保证了切分数据的存储的同时,也能够保证节点正常运行。
在一实施例中,如图7所示,步骤S80中,即将故障节点中的分区数据作为待分配数据,具体包括如下步骤:
S81:根据正常节点的剩余内存空间,获取正常节点的总剩余内存空间。
在本实施例中,该总剩余内存空间是指所有正常节点的剩余内存空间大小的总和。
S82:根据正常节点的总剩余内存空间,将故障节点的内存中的分区数据的数据量进行逐项叠加,得到分区数据总容量,并在每次叠加之后判断分区数据总容量是否大于总剩余内存空间。
在本实施例中,分区数据总容量是指在对每个分区数据的数据量进行逐项叠加后,得到的容量总和。其中,逐项叠加是指分区数据的数据量依次叠加,例如,现有三个分区数据对应的数据量,第一个和第二个分区数据对应的数据量进行叠加,然后判断此时分区数据总容量是否大于总剩余内存容量。可以理解地,分区数据总容量在每次叠加之后都会更新。
具体地,由于预先有设置内存空间阈值,即使只从故障节点中获取一个分区数据,也能保证该故障节点的当前内存空间恢复充足状态,而由于该故障节点的当前内存空间不足,说明有可能该故障节点正在运行的数据量比较大,因此为了保证该故障节点当前的运行,可以在每一次叠加之后,对该分区数据总容量是否大于该总剩余内存空间进行判断,并根据判断结果,进行下一步骤操作。
S83:若分区数据总容量小于或等于总剩余内存空间,则将叠加的分区数据总容量对应的分区数据放入待处理数据集中。
在本实施例中,待处理数据集是指从故障节点的内存中获取的分区数据的集合。
具体地,在对分区数据的数据量每一次叠加之后,若该分区数据总容量小于或等于该总剩余内存空间,则将该叠加的分区数据的数据量对应的分区数据放入该待处理数据集中,并进行下一次叠加操作。
S84:若分区数据总容量大于总剩余内存空间,则停止对分区数据的数据量进行逐项叠加。
具体地,若在叠加之后,该分区数据总容量大于该总剩余内存空间,则停止对分区数据的数据量进行逐项叠加的操作,确保待处理数据集的总容量小于或等于总剩余内存空间。
S85:将待处理数据集中的分区数据作为待切分数据。
具体地,在该对分区数据的数据量的逐项叠加操作结束后,将该待处理数据集中的分区数据作为待切分数据。
在本实施例中,根据正常节点的总剩余内存空间,获取故障节点的分区数据,作为写入正常节点的内存的切分数据,能够避免当故障节点的分区数据的总容量大于正常节点的总剩余内存空间,无法将该故障节点的分区数据写入正常节点的内存的情况,提升了在重新分配故障节点的分区数据时的效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种基于大数据平台的数据处理装置,该基于大数据平台的数据处理装置与上述实施例中基于大数据平台的数据处理方法一一对应。如图8所示,该基于大数据平台的数据处理装置包括获取模块81、排序模块82、分区模块83和发送模块84。各功能模块详细说明如下:
获取模块81,用于获取大数据平台中的各个节点的数据表格信息和空余内存容量,数据表格信息包括数据表格容量和数据表格读取次数;
排序模块82,用于按照数据表格读取次数从大到小的顺序对数据表格进行排序,并根据各个节点的空余内存容量对数据表格按照排序的顺序进行选取,得到待切分数据,其中,待切分数据小于或等于各个节点的总空余内存容量;
分区模块83,用于根据各个节点的空余内存容量,将待切分数据进行切分处理,得到分区数据;
第一发送模块84,用于获取各个节点的空余内存容量的空余容量比例,并根据空余容量比例将分区数据发送至各个节点的内存。
优选地,排序模块82包括:
第一获取子模块821,用于根据各个节点的空余内存容量,获取总空余内存容量;
第一叠加子模块822,用于按照数据表格读取次数从大到小的顺序对数据表格的数据表格容量进行逐项叠加,得到数据表格总容量,并在每次叠加之后判断数据表格总容量是否大于总空余内存容量;
第一判断子模块823,用于若数据表格总容量小于或等于总空余内存容量,则将叠加的数据表格容量对应的数据表格放入待选数据集中;
第二判断子模块824,用于若数据表格总容量大于总空余内存容量,则停止对数据表格的数据表格容量进行逐项叠加;
待切分子模块825,用于将待选数据集中的数据表格作为待切分数据。
优选地,分区模块83包括:
分区表数量获取子模块831,用于根据各个节点的空余内存容量,获取哈希分区表的数量;
切分子模块832,用于根据哈希分区表的数量,使用哈希分区的切分方法,将待切分数据进行切分,得到切分数据;
映射子模块833,用于将切分数据映射至哈希分区表内,得到分区数据。
优选地,第一发送模块84包括:
空余容量比例获取子模块841,用于根据各个节点的空余内存容量,获取各个节点的空余内存容量的空余容量比例;
分配子模块842,用于根据空余容量比例,确定分配至每个节点的分区数据的分配数量;
发送子模块843,用于根据分配数量,将分区数据分配至各个节点的内存。
优选地,该基于大数据平台的数据处理装置还包括:
监控模块85,用于对各个节点的当前内存空间进行监控;
节点判断模块86,用于若检测到任一节点的当前内存空间不足,则将当前内存空间不足的节点作为故障节点,将当前内存空间充足的节点作为正常节点;
剩余内存空间获取模块87,用于获取正常节点的剩余内存空间;
数据处理模块88,用于将故障节点中的分区数据作为待分配数据;
切分模块89,用于根据正常节点的剩余内存空间将待分配数据进行切分处理,得到切分数据;
第二发送模块810,用于获取正常节点的剩余内存空间的剩余容量比例,并根据剩余容量比例将切分数据发送至各个正常节点的内存。
优选地,该数据处理模块88包括:
第二获取子模块881,用于根据正常节点的剩余内存空间,获取正常节点的总剩余内存空间;
第二叠加子模块882,用于根据正常节点的总剩余内存空间,将故障节点的内存中的分区数据的数据量进行逐项叠加,得到分区数据总容量,并在每次叠加之后判断分区数据总容量是否大于总剩余内存空间;
第三判断子模块883,用于若分区数据总容量小于或等于总剩余内存空间,则将叠加的分区数据总容量对应的分区数据放入待处理数据集中;
第四判断子模块884,用于若分区数据总容量大于总剩余内存空间,则停止对分区数据的数据量进行逐项叠加;
待处理子模块885,用于将待处理数据集中的分区数据作为待切分数据。
关于基于大数据平台的数据处理装置的具体限定可以参见上文中对于基于大数据平台的数据处理方法的限定,在此不再赘述。上述基于大数据平台的数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据表格信息。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于大数据平台的数据处理方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取大数据平台中的各个节点的数据表格信息和空余内存容量,数据表格信息包括数据表格容量和数据表格读取次数;
按照数据表格读取次数从大到小的顺序对数据表格进行排序,并根据各个节点的空余内存容量对数据表格按照排序的顺序进行选取,得到待切分数据,其中,待切分数据小于或等于各个节点的总空余内存容量;
根据各个节点的空余内存容量,将待切分数据进行切分处理,得到分区数据;
获取各个节点的空余内存容量的空余容量比例,并根据空余容量比例将分区数据发送至各个节点的内存。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取各个节点的数据表格信息和空余内存容量,数据表格信息包括数据表格容量和数据表格读取次数;
按照数据表格读取次数从大到小的顺序对数据表格进行排序,并根据各个节点的空余内存容量对数据表格按照排序的顺序进行选取,得到待切分数据,其中,待切分数据小于或等于各个节点的总空余内存容量;
根据大数据平台中的各个节点的空余内存容量,将待切分数据进行切分处理,得到分区数据;
获取各个节点的空余内存容量的空余容量比例,并根据空余容量比例将分区数据发送至各个节点的内存。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于大数据平台的数据处理方法,其特征在于,包括:
获取大数据平台中的各个节点的数据表格信息和空余内存容量,所述数据表格信息包括数据表格容量和数据表格读取次数;
按照所述数据表格读取次数从大到小的顺序对数据表格进行排序,并根据所述各个节点的所述空余内存容量对所述数据表格按照所述排序的顺序进行选取,得到待切分数据,其中,所述待切分数据小于或等于各个节点的总空余内存容量;
根据所述各个节点的所述空余内存容量,将所述待切分数据进行切分处理,得到分区数据;
获取所述各个节点的所述空余内存容量的空余容量比例,并根据所述空余容量比例将所述分区数据发送至所述各个节点的内存。
2.如权利要求1所述的基于大数据平台的数据处理方法,其特征在于,所述根据所述各个节点的所述空余内存容量对所述数据表格按照所述排序的顺序进行选取,得到待切分数据,包括:
根据所述各个节点的所述空余内存容量,获取总空余内存容量;
按照所述数据表格读取次数从大到小的顺序对所述数据表格的数据表格容量进行逐项叠加,得到数据表格总容量,并在每次叠加之后判断所述数据表格总容量是否大于所述总空余内存容量;
若所述数据表格总容量小于或等于所述总空余内存容量,则将叠加的数据表格容量对应的数据表格放入待选数据集中;
若所述数据表格总容量大于所述总空余内存容量,则停止对所述数据表格的数据表格容量进行逐项叠加;
将所述待选数据集中的所述数据表格作为所述待切分数据。
3.如权利要求1所述的基于大数据平台的数据处理方法,其特征在于,所述根据所述各个节点的所述空余内存容量,将所述待切分数据进行切分处理,得到分区数据,包括:
根据所述各个节点的所述空余内存容量,获取哈希分区表的数量;
根据所述分哈希分区表的数量,使用哈希分区的切分方法,将所述待切分数据进行切分,得到切分数据;
将所述切分数据映射至所述哈希分区表内,得到所述分区数据。
4.如权利要求1所述的基于大数据平台的数据处理方法,其特征在于,所述获取所述各个节点的所述空余内存容量的空余容量比例,并根据所述空余容量比例将所述分区数据发送至所述各个节点的内存,包括:
根据所述各个节点的空余内存容量,获取所述各个节点的所述空余内存容量的空余容量比例;
根据所述空余容量比例,确定分配至每个节点的所述分区数据的分配数量;
根据所述分配数量,将所述分区数据分配至所述各个节点的内存。
5.如权利要求1所述的基于大数据平台的数据处理方法,其特征在于,在将所述分区数据发送至各个节点的内存的步骤之后,所述方法还包括:
对所述各个节点的当前内存空间进行监控;
若检测到任一所述节点的当前内存空间不足,则将所述当前内存空间不足的节点作为故障节点,将当前内存空间充足的节点作为正常节点;
获取所述正常节点的剩余内存空间;
将所述故障节点中的分区数据作为待分配数据;
根据所述正常节点的剩余内存空间将所述待分配数据进行切分处理,得到切分数据;
获取所述正常节点的剩余内存空间的剩余容量比例,并根据所述剩余容量比例将所述切分数据发送至各个所述正常节点的内存。
6.如权利要求5所述的基于大数据平台的数据处理方法,其特征在于,所述将所述故障节点中的分区数据作为待分配数据,包括:
根据所述正常节点的剩余内存空间,获取所述正常节点的总剩余内存空间;
根据所述正常节点的总剩余内存空间,将所述故障节点的内存中的所述分区数据的数据量进行逐项叠加,得到分区数据总容量,并在每次叠加之后判断所述分区数据总容量是否大于所述总剩余内存空间;
若所述分区数据总容量小于或等于所述总剩余内存空间,则将叠加的分区数据总容量对应的分区数据放入待处理数据集中;
若所述分区数据总容量大于所述总剩余内存空间,则停止对所述分区数据的数据量进行逐项叠加;
将所述待处理数据集中的所述分区数据作为所述待切分数据。
7.一种基于大数据平台的数据处理装置,其特征在于,所述基于大数据平台的数据处理装置包括:
获取模块,用于获取大数据平台中的各个节点的数据表格信息和空余内存容量,所述数据表格信息包括数据表格容量和数据表格读取次数;
排序模块,用于按照所述数据表格读取次数从大到小的顺序对数据表格进行排序,并根据所述各个节点的所述空余内存容量对所述数据表格按照所述排序的顺序进行选取,得到待切分数据,其中,所述待切分数据小于或等于各个节点的总空余内存容量;
分区模块,用于根据所述各个节点的所述空余内存容量,将所述待切分数据进行切分处理,得到分区数据;
第一发送模块,用于获取所述各个节点的所述空余内存容量的空余容量比例,并根据所述空余容量比例将所述分区数据发送至所述各个节点的内存。
8.如权利要求7所述的基于大数据平台的数据处理装置,其特征在于,所述排序模块包括:
第一获取子模块,用于根据所述各个节点的所述空余内存容量,获取总空余内存容量;
第一叠加子模块,用于按照所述数据表格读取次数从大到小的顺序对所述数据表格的数据表格容量进行逐项叠加,得到数据表格总容量,并在每次叠加之后判断所述数据表格总容量是否大于所述总空余内存容量;
第一判断子模块,用于若所述数据表格总容量小于或等于所述总空余内存容量,则将叠加的数据表格容量对应的数据表格放入待选数据集中;
第二判断子模块,用于若所述数据表格总容量大于所述总空余内存容量时,则停止对所述数据表格的数据表格容量进行逐项叠加;
待切分子模块,用于将所述待选数据集中的所述数据表格作为所述待切分数据。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述基于大数据平台的数据处理方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述基于大数据平台的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810920367.3A CN109325026B (zh) | 2018-08-14 | 2018-08-14 | 基于大数据平台的数据处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810920367.3A CN109325026B (zh) | 2018-08-14 | 2018-08-14 | 基于大数据平台的数据处理方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109325026A true CN109325026A (zh) | 2019-02-12 |
CN109325026B CN109325026B (zh) | 2023-09-26 |
Family
ID=65264116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810920367.3A Active CN109325026B (zh) | 2018-08-14 | 2018-08-14 | 基于大数据平台的数据处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109325026B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515964A (zh) * | 2019-08-30 | 2019-11-29 | 百度在线网络技术(北京)有限公司 | 一种文件更新方法、装置、电子设备和介质 |
CN111611243A (zh) * | 2020-05-13 | 2020-09-01 | 第四范式(北京)技术有限公司 | 数据处理方法及装置 |
CN111737347A (zh) * | 2020-06-15 | 2020-10-02 | 中国工商银行股份有限公司 | 在Spark平台顺序切分数据的方法及装置 |
CN114253733A (zh) * | 2021-12-24 | 2022-03-29 | 苏州浪潮智能科技有限公司 | 一种内存管理方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207907A (zh) * | 2010-03-30 | 2011-10-05 | 联想(北京)有限公司 | 数据操作的方法、装置及计算机 |
KR101547466B1 (ko) * | 2014-03-28 | 2015-08-26 | 고려대학교 산학협력단 | 오라클 데이터베이스에서 데이터를 복원하는 방법 및 장치 |
CN106776368A (zh) * | 2016-11-29 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种数据读取时的缓存管理方法、装置及系统 |
CN108108127A (zh) * | 2017-12-15 | 2018-06-01 | 中链科技有限公司 | 一种文件读取方法及系统 |
-
2018
- 2018-08-14 CN CN201810920367.3A patent/CN109325026B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207907A (zh) * | 2010-03-30 | 2011-10-05 | 联想(北京)有限公司 | 数据操作的方法、装置及计算机 |
KR101547466B1 (ko) * | 2014-03-28 | 2015-08-26 | 고려대학교 산학협력단 | 오라클 데이터베이스에서 데이터를 복원하는 방법 및 장치 |
CN106776368A (zh) * | 2016-11-29 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种数据读取时的缓存管理方法、装置及系统 |
CN108108127A (zh) * | 2017-12-15 | 2018-06-01 | 中链科技有限公司 | 一种文件读取方法及系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515964A (zh) * | 2019-08-30 | 2019-11-29 | 百度在线网络技术(北京)有限公司 | 一种文件更新方法、装置、电子设备和介质 |
CN111611243A (zh) * | 2020-05-13 | 2020-09-01 | 第四范式(北京)技术有限公司 | 数据处理方法及装置 |
CN111611243B (zh) * | 2020-05-13 | 2023-06-13 | 第四范式(北京)技术有限公司 | 数据处理方法及装置 |
CN111737347A (zh) * | 2020-06-15 | 2020-10-02 | 中国工商银行股份有限公司 | 在Spark平台顺序切分数据的方法及装置 |
CN111737347B (zh) * | 2020-06-15 | 2024-02-13 | 中国工商银行股份有限公司 | 在Spark平台顺序切分数据的方法及装置 |
CN114253733A (zh) * | 2021-12-24 | 2022-03-29 | 苏州浪潮智能科技有限公司 | 一种内存管理方法、装置、计算机设备和存储介质 |
CN114253733B (zh) * | 2021-12-24 | 2024-01-12 | 苏州浪潮智能科技有限公司 | 一种内存管理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109325026B (zh) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109325026A (zh) | 基于大数据平台的数据处理方法、装置、设备及介质 | |
CN108897638B (zh) | 数据备份方法、装置、计算机设备和存储介质 | |
CN109558234A (zh) | 一种定时任务调度方法和装置 | |
CN109189785A (zh) | 数据存储方法、装置、计算机设备及存储介质 | |
CN110781214A (zh) | 数据库读写方法、装置、计算机设备和存储介质 | |
CN110213326B (zh) | 元数据节点集群的扩容方法、系统、设备和存储介质 | |
US20070005669A1 (en) | Method and system for automated disk i/o optimization of restored databases | |
CN109542961A (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN104424287B (zh) | 数据查询方法和装置 | |
CN1983265A (zh) | 具有倒置层次结构的文件系统 | |
CN104035836A (zh) | 集群检索平台中的自动容灾恢复方法及系统 | |
CN109040191B (zh) | 文件下载方法、装置、计算机设备和存储介质 | |
CN110309123A (zh) | 数据库操作的处理方法、装置、计算机设备及存储介质 | |
CN107402950A (zh) | 基于分库分表的文件处理方法和装置 | |
CN106021566A (zh) | 一种提高单台数据库并发处理能力的方法、装置及系统 | |
CN113760513A (zh) | 一种分布式任务调度方法、装置、设备和介质 | |
CN109241182A (zh) | 大数据实时同步方法、装置、计算机设备及存储介质 | |
CN111209090A (zh) | 一种云平台中虚拟机的创建方法、组件及服务器 | |
US7315959B2 (en) | Real-time remote backup system and related method | |
CN114528085A (zh) | 资源调度方法、装置、计算机设备、存储介质和程序产品 | |
CN108512948A (zh) | 通讯录更新方法、装置、计算机设备和存储介质 | |
CN109995871A (zh) | 一种Pod调度方法及装置 | |
CN107943615B (zh) | 基于分布式集群的数据处理方法与系统 | |
CN109766313A (zh) | 地质项目数据处理方法、装置及计算机设备 | |
CN109886647A (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 |