基于Spark Shuffle的远程直接内存访问系统技术方案

技术编号:21308784 阅读:38 留言:0更新日期:2019-06-12 10:53
本发明专利技术提供了一种基于Spark Shuffle的远程直接内存访问系统。所述系统包括:发送端及接收端;所述发送端包括发送器、发送通道及发送管理器;所述发送器将获取到的传输数据存储至所述发送通道,并调用所述发送管理器;所述发送管理器被调用后,根据所述传输数据生成核对信息,并将所述核对信息存储至所述发送通道;所述接收端包括接收器、接收通道及接收管理器;所述接收器通过远程直接内存访问技术获取所述发送通道中的传输数据及核对信息,将所述传输数据及所述核对信息存储至所述接收通道,并调用所述接收管理器;所述接收管理器被调用后,根据所述核对信息对所述传输数据进行核验。

Remote Direct Memory Access System Based on Park Shuffle

The invention provides a remote direct memory access system based on Park Shuffle. The system comprises a sender and a receiver; the sender includes a sender, a transmission channel and a transmission manager; the sender stores the acquired transmission data into the transmission channel and invokes the transmission manager; after the transmission manager is invoked, the check information is generated from the transmission data and stored in the transmission channel. The receiver includes a receiver, a receiving channel and a receiving manager; the receiver obtains the transmission data and checking information in the transmitting channel through remote direct memory access technology, stores the transmission data and the checking information into the receiving channel, and calls the receiving manager; after the receiving manager is invoked, the checking information is checked according to the checking information. The transmission data are verified.

【技术实现步骤摘要】
基于SparkShuffle的远程直接内存访问系统
本专利技术涉及远程内存直接访问
,尤指一种基于SparkShuffle的远程直接内存访问系统。
技术介绍
在MapReduce框架中,Shuffle是连接Map和Reduce之间的桥梁,Reduce要读取到Map的输出必须要经过Shuffle这个环节;而Reduce和Map过程通常不在一台节点,这意味着Shuffle阶段通常需要跨网络以及一些磁盘的读写操作,因此Shuffle的性能高低直接影响了整个程序的性能和吞吐量。与MapReduce计算框架一样,Spark作业也有Shuffle阶段,通常以Shuffle来划分Stage;而Stage之间的数据交互是需要Shuffle来完成的。整个过程如图1所示。不管是MapReduce还是Spark作业,Shuffle操作是很消耗CPU、RAM、磁盘还有网络资源的;需要尽可能地避免Shuffle操作。
技术实现思路
为了解决目前Spark的Shuffle阶段消耗过大、数据通量低等问题,本专利技术实施例的主要目的在于提供一种一种基于SparkShuffle的远程直接内存访问系统,所述系统包括:发送端及接收端;所述发送端包括发送器、发送通道及发送管理器;所述发送器将获取到的传输数据存储至所述发送通道,并调用所述发送管理器;所述发送管理器被调用后,根据所述传输数据生成核对信息,并将所述核对信息存储至所述发送通道;所述接收端包括接收器、接收通道及接收管理器;所述接收器通过远程直接内存访问技术获取所述发送通道中的传输数据及核对信息,将所述传输数据及所述核对信息存储至所述接收通道,并调用所述接收管理器;所述接收管理器被调用后,根据所述核对信息对所述传输数据进行核验。可选的,在本专利技术一实施例中,所述发送端还包括注册器,所述注册器用于将传输任务注册为支持远程直接内存访问的格式;其中,所述传输任务中存储所述传输数据。可选的,在本专利技术一实施例中,所述发送管理器还用于查看所述发送器及所述发送通道的状态,并向所述发送器反馈发送状态提醒,以使所述发送器根据所述发送状态提醒,通过所述传输任务获取所述传输数据。可选的,在本专利技术一实施例中,所述接收端还包括监听器,所述监听器用于监听所述接收通道,当监听到所述传输数据进入所述接收通道时,向所述接收器发送接收提醒,以使所述接收器根据所述接收提醒调用所述接收管理器。可选的,在本专利技术一实施例中,所述接收管理器还用于查看所述接收器及所述接收通道的状态,并向所述接收器反馈接收状态提醒,以使所述接收器根据所述接收状态提醒,通过所述发送通道获取所述传输数据。可选的,在本专利技术一实施例中,所述核对信息包括数据明细及汇总信息;所述接收管理器被调用后,根据所述核对信息对所述传输数据进行核验进一步包括:所述接收管理器根据所述数据明细核对所述传输数据的明细,并根据所述汇总信息核对所述传输数据的总数。可选的,在本专利技术一实施例中,所述接收管理器还用于对所述传输数据进行核验后,所述接收管理器向所述接收器发送核验结果。可选的,在本专利技术一实施例中,所述核验结果包括核验通过或核验不通过;所述核验结果为核验不通过时,所述接收器向所述发送器发送传输失败提醒。本专利技术中的远程直接内存访问系统,实现了绕过操作系统级的访问控制,直接访问远程计算机内存数据,从而大幅提高节点间的数据通量,缩短数据处理完成时间。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为Shuffle阶段的流程示意图;图2为TCPSocket与RDMA数据传输的示意图;图3为本专利技术实施例一种基于SparkShuffle的远程直接内存访问系统的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。传统的TCPSocket数据传输需要经过很多步骤:数据先从源端应用程序拷贝到当前主机的Sockets缓存区,然后再拷贝到TransportProtocolDriver,然后到NICDriver,最后NIC通过网络将数据发送到目标主机的NIC,目标主机又经过上面步骤将数据传输到应用程序,整个过程如图2所示。网络数据的传输很大一部分时间用于数据的拷贝。如果需要传输的数据很大,那么这个阶段用的时间很可能占整个作业运行时间的很大一部分。RDMA技术可以直接省掉不同层的数据拷贝,使得目标主机直接从源端主机内存获取数据。RDMA(RemoteDirectMemoryAccess)技术全称远程直接内存访问,是一种直接内存访问技术,它将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介入。这允许高通量、低延迟的网络通信,尤其适合在大规模并行计算机集群中使用。RDMA有以下几个特点:Zero-copy、直接硬件接口(Directhardwareinterface),绕过内核和TCP/IP的IO、亚微秒延迟、Flowcontrolandreliabilityisoffloadedinhardware。如图3所示为本专利技术实施例一种基于SparkShuffle的远程直接内存访问系统的结构示意图,图中所示系统包括:发送端及接收端;所述发送端包括发送器10、发送通道11及发送管理器12;所述发送器10将获取到的传输数据存储至所述发送通道11,并调用所述发送管理器12;所述发送管理器12被调用后,根据所述传输数据生成核对信息,并将所述核对信息存储至所述发送通道11;所述接收端包括接收器20、接收通道21及接收管理器22;所述接收器20通过远程直接内存访问技术获取所述发送通道11中的传输数据及核对信息,将所述传输数据及所述核对信息存储至所述接收通道21,并调用所述接收管理器22;所述接收管理器22被调用后,根据所述核对信息对所述传输数据进行核验。在本实施例中,发送器10将准备发送的传输数据放置于发送通道11中的队列里,并调用发送管理器12。发送管理器12根据传输数据生成核对信息,核对信息中具体可以包括例如数据总条数、数据类型等信息。发送管理器12将核对信息发送至发送通道11。接收端的接收器20从发送通道11利用远程直接内存访问技术(RDMA)获取发送通道11中的传输数据及核对信息。接收器20将接收到的传输数据及核对信息放置于接收通道21的队列中,并调用接收管理器22对传输数据进行核对。具体的,接收管理器22依据核对信息中记载的内容,对传输数据进行核对。例如对传输数据的总条数、类型等进行核对。其中,发送管理器12及接收管理器22负责管理追踪发送器10、发送通道11、接收器20和接收通道21状态,负责维护通道启停等操作。同时提供etl处理模块,可以实现shuffle阶段对buffer中存储数据的预处理,包括数据核对等能力。发送器10负责接收sparkmap任务的b本文档来自技高网...

【技术保护点】
1.一种基于Spark Shuffle的远程直接内存访问系统,其特征在于,所述系统包括:发送端及接收端;所述发送端包括发送器、发送通道及发送管理器;所述发送器将获取到的传输数据存储至所述发送通道,并调用所述发送管理器;所述发送管理器被调用后,根据所述传输数据生成核对信息,并将所述核对信息存储至所述发送通道;所述接收端包括接收器、接收通道及接收管理器;所述接收器通过远程直接内存访问技术获取所述发送通道中的传输数据及核对信息,将所述传输数据及所述核对信息存储至所述接收通道,并调用所述接收管理器;所述接收管理器被调用后,根据所述核对信息对所述传输数据进行核验。

【技术特征摘要】
1.一种基于SparkShuffle的远程直接内存访问系统,其特征在于,所述系统包括:发送端及接收端;所述发送端包括发送器、发送通道及发送管理器;所述发送器将获取到的传输数据存储至所述发送通道,并调用所述发送管理器;所述发送管理器被调用后,根据所述传输数据生成核对信息,并将所述核对信息存储至所述发送通道;所述接收端包括接收器、接收通道及接收管理器;所述接收器通过远程直接内存访问技术获取所述发送通道中的传输数据及核对信息,将所述传输数据及所述核对信息存储至所述接收通道,并调用所述接收管理器;所述接收管理器被调用后,根据所述核对信息对所述传输数据进行核验。2.根据权利要求1所述的系统,其特征在于,所述发送端还包括注册器,所述注册器用于将传输任务注册为支持远程直接内存访问的格式;其中,所述传输任务中存储所述传输数据。3.根据权利要求2所述的系统,其特征在于,所述发送管理器还用于查看所述发送器及所述发送通道的状态,并向所述发送器反馈发送状态提醒,以使所述发送器根据所述发送状态提醒,通过所述传输任务获取所述传输数据。4.根据...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:中国人民银行清算总中心
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1