This application provides a method and system for sorting large data. When sorting large data for an application, the reading and sorting data device starts N threads to read the line content of the data file at the same time according to the number and size of the file corresponding to the application, converts the line content of the file for each thread to obtain the data to be sorted, and according to the data to be sorted belongs to. Data interval sends data sorting request to corresponding data sorting device; data sorting device sorts the data carried in the data sorting request according to sorting rules; when all data sorting devices complete data sorting, reading sorting result device according to the size of the boundary value of data interval and sorting rules, according to Secondly, the sorted data is obtained from the sorting server corresponding to each data interval as the sorted data corresponding to the application. This method can avoid the problem of data skew and improve the efficiency of data sorting.
【技术实现步骤摘要】
一种大数据排序方法和系统
本专利技术涉及信息
,特别涉及一种大数据排序方法和系统。
技术介绍
在大数据处理场景中,对输入数据进行排序是一种常用的操作方法,会遇到待排序数据远超计算机内存的情况。现有的大数据排序方法,利用多台计算机协同处理,将大数据文件拆分为多份,每一份由一台计算机在内存中进行排序,再暂存外存,最后再由一台计算机依次读取已排序的部分文件,进行最终的归并排序,效率非常很低。
技术实现思路
有鉴于此,本申请提供一种大数据排序方法和系统,能够避免数据倾斜问题,且能够提高数据排序效率。为解决上述技术问题,本申请的技术方案是这样实现的:一种大数据排序方法,该方法包括:针对一个应用进行大数据排序时,读取排序数据设备根据该应用对应的文件数目和文件大小,启动N个线程同时读取数据文件的行内容,针对每个线程进行文件的行内容的转换获取待排序的数据,并根据所述待排序的数据所属的数据区间向对应的数据排序设备发送数据排序请求;数据排序设备接收到读取排序数据设备发送的数据排序请求时,将该数据排序请求中携带的数据按照排序规则进行排序;当所有数据排序设备完成数据排序时,读取排序结果 ...
【技术保护点】
1.一种大数据排序方法,其特征在于,该方法包括:针对一个应用进行大数据排序时,读取排序数据设备根据该应用对应的文件数目和文件大小,启动N个线程同时读取数据文件的行内容,针对每个线程进行文件的行内容的转换获取待排序的数据,并根据所述待排序的数据所属的数据区间向对应的数据排序设备发送数据排序请求;数据排序设备接收到读取排序数据设备发送的数据排序请求时,将该数据排序请求中携带的数据按照排序规则进行排序;当所有数据排序设备完成数据排序时,读取排序结果设备按照数据区间的边界值的大小和排序规则,依次从各数据区间对应的排序服务器上获取排序后的数据,作为该应用对应的排序后的数据。
【技术特征摘要】
1.一种大数据排序方法,其特征在于,该方法包括:针对一个应用进行大数据排序时,读取排序数据设备根据该应用对应的文件数目和文件大小,启动N个线程同时读取数据文件的行内容,针对每个线程进行文件的行内容的转换获取待排序的数据,并根据所述待排序的数据所属的数据区间向对应的数据排序设备发送数据排序请求;数据排序设备接收到读取排序数据设备发送的数据排序请求时,将该数据排序请求中携带的数据按照排序规则进行排序;当所有数据排序设备完成数据排序时,读取排序结果设备按照数据区间的边界值的大小和排序规则,依次从各数据区间对应的排序服务器上获取排序后的数据,作为该应用对应的排序后的数据。2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:读取排序数据设备准备读取该应用对应的大数据时,将该大数据对应的数据区间总数发送给排序服务发现设备;排序服务发现设备接收到所述读取排序数据设备发送的数据区间总数时,在服务器资源池中选择资源满足所述数据区间总数需求的服务器,将选择的服务器部署为数据排序设备;配置各数据区间与数据排序设备的地址信息之间的映射关系,并发送给读取排序数据设备;读取排序数据设备根据所述映射关系连接对应的数据排序设备。3.根据权利要求2所述的方法,其特征在于,所述方法进一步包括:所述在服务器资源池中选择资源满足所述数据区间总数需求的服务器,之前,所述方法进一步包括:确定当前是否存在该应用对应的数据排序设备;若确定存在,且存在的数据排序设备的资源满足数据区间总数的需求,则选择资源满足数据区间总数需求的数据排序设备,配置各数据区间与选择的数据排序设备的地址信息之间的映射关系,并发送给读取排序数据设备;若确定存在,且存在的数据排序设备的资源不能满足数据区间总数的需求,则再选择与所述存在的数据排序设备能够共同满足数据区间总数的服务器,将选择的服务器部署为数据排序设备;配置各数据区间,与已存在的和新部署的数据排序设备的地址信息之间的映射关系,并发送给读取排序数据设备;若确定不存在,在服务器资源池中选择资源满足所述数据区间总数需求的服务器。4.根据权利要求3所述的方法,其特征在于,所述方法进一步包括:当数据排序设备接收到读取排序数据设备发送的数据排序请求时,将本设备上的数据排序功能锁定;当数据排序设备将所述数据排序请求中的数据排序完成时,将本设备上的数据排序功能解锁。5.根据权利要求2所述的方法,其特征在于,所述方法进一步包括:读取排序数据设备上的所有线程均已完成读取数据时,通知排序服务发现设备;当排序服务发现设备接收到针对该应用进行大数据读取的所有读取排序数据设备已完成读取数据的通知时,确定针对该应用已完成数据的读取,将各数据区间和数据排序设备映射关系,以及排序规则发送给读取排序结果设备,使读取排序结果设备根据数据区间的边界值的大小和排序规则从各数据排序设备上依次读取数据。6.根据权利要求1-5任一项所述的方法,其特征在于,所述将该数据排序请求中携带的数据按照排序规则进行排序时,通过写入多键值映射multimap中进行排序。7.一种大数据排序系统,其特征在于,该系统包括:...
【专利技术属性】
技术研发人员:樊宇,
申请(专利权)人:北京京东尚科信息技术有限公司,北京京东世纪贸易有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。