一种异构集群的Hadoop矩阵处理方法,包括以下步骤:搭建一个物理集群,设置一个Master节点及多个Slaver节点;在所述Master节点及多个Slaver节点上分别配置Java开发环境下的编程环境,并预编矩阵相乘CUDA版的Map和Reduce代码;读取内存中已存储第一矩阵A及第二矩阵B的相关信息,并根据预编代码对所述存储的第一矩阵A及第二矩阵B进行MapReduce矩阵相乘运算;控制运算结果直接写进分布式文件系统HDFS;其中,所述A=(aij)是m×s的矩阵,B=(bij)是s×n的矩阵。本发明专利技术从算法角度提升Hadoop矩阵相乘性能有限,能够更深层次提高程序的性能,有效提高了矩阵相乘运算的效率。
【技术实现步骤摘要】
本专利技术属于数据处理
,尤其涉及一种异构集群的Hadoop矩阵处理方法及系统。
技术介绍
高矩阵运算已广泛应用于工业、科技等重要领域,从图像处理、数据挖掘到生物计算等,矩阵乘法是矩阵运算中最为重要的计算之一。但随着矩阵规模的扩展,短时间内进行矩阵相乘变得困难起来。传统矩阵乘法采用单个节点串行处理或GPU并行处理方案。该方案虽然在一定程度上提高了性能,但是并不适用于海量数据处理。Hadoop是一个能够对大数据处理的分布式框架,是MapReduce编程模型最为流行的开源实现。它简化了数据分发、处理、计算和任务调度,并具有高容错、高可靠、高可扩展和高资源利用率等特性。编程人员只需要编写Map和Reduce函数,Hadoop会自动将任务分配到集群的各个节点,并执行任务,从而达到数据并行。论文(孙远帅,陈,官新均,林琛)“基于Hadoop的大数据乘法处理方法”,提出采用内积法和外积法实现MapReduce的矩阵相乘。然而,(1)对于海量数据处理应用,Hadoop表现并不理想。海量数据处理应用,有两个特点:计算密集和数据密集,Hadoop主要适用于数据密集型应用;(2)采用内积法的MapReduce仅仅一个作业就可以完成任务,但是Map阶段的中间输出结果很大,Hadoop框架在Map阶段需要将中间结果写入本地磁盘,Shuffle阶段需要复制对应分区的中间结果,因此,该方案在实际应用中很少使用。外积法在降低一定并发粒度的情况下,把原先的作业分成两个,相对减少了中间结果的数据量,但是第一个作业的输出需要作为第二个作业的输入,此时需要等待第一个作业完成方能进行第二个作业。
技术实现思路
本专利技术鉴于上述现有技术的不足,提供一种异构集群的Hadoop矩阵处理方法,有效提升Hadoop矩阵的相乘效率。本专利技术的实施例提供一种异构集群的Hadoop矩阵处理方法,包括以下步骤,搭建一个物理集群,设置一个Master节点及多个Slaver节点;在所述Master节点及多个Slaver节点上分别配置Java开发环境下的编程环境,并预编矩阵相乘CUDA版的Map和Reduce代码;读取内存中已存储第一矩阵A及第二矩阵B的相关信息,并根据预编代码对所述存储的第一矩阵A及第二矩阵B进行MapReduce矩阵相乘运算;控制运算结果直接写进分布式文件系统HDFS;其中,所述A=(aij)是m×s的矩阵,B=(bij)是s×n的矩阵。优选地,所述Java开发环境下的编程环境是指Java开发环境JDK,Hadoop,IntelGPU的编程环境CUDA,JCuda,Ganglia;其中,JCuda提供了Java直接访问CUDA的API,Ganglia实时监控集群的CPU、内存、网络、硬盘利用率。优选地,所述第一矩阵A及第二矩阵B的存储方式采用三元组表格存储方式,具体列信息包括i,j,aiTbj;其中,aiT为第一矩阵A的第i行;bj为第二矩阵B的第j列。优选地,MapReduce矩阵相乘运算具体包括:Map阶段,根据预编代码得到emit((i,j),aiT·bj),其中Reduce阶段,直接获得Map阶段的结果。优选地,在所述步骤控制运算结果直接写进分布式文件系统HDFS之后,还包括步骤,搭建Web服务器,显示程序的加速比及所述物理集群的软硬件配置信息。优选地,如果reduce阶段处理的数据个数为零,Map阶段将中间输入结果直接写进分布式文件系统HDFS。优选地,在所述第一矩阵A及第二矩阵B的存储方式采用三元组表格存储方式存储之前,首先对所述第一矩阵A及第二矩阵B进行预处理,按照三元组存储表格方式采集第一矩阵A及第二矩阵B中的相关信息。本专利技术的实施例还提供一种异构集群的Hadoop矩阵处理系统,所述处理系统包括:环境搭建单元,用于搭建一个物理集群,并设置一个Master节点及多个Slaver节点;配置及代码预编单元,用于为节点配置Java开发环境下的编程环境,并预编矩阵相乘CUDA版的Map和Reduce代码;存储单元,用于存储需要进行相乘运算的矩阵信息;执行单元,用于读取存储单元中已存储的矩阵信息,并根据预编代码对所述存储矩阵进行MapReduce矩阵相乘运算;输出单元,控制将运算结果直接写进分布式文件系统HDFS。优选地,所述处理系统还包括一个性能监控及显示单元,用于显示程序的加速比及所述物理集群的软硬件配置信息。优选地,根据预编代码对所述存储矩阵进行MapReduce矩阵相乘运算的两个矩阵在所述存储单元中的信息存储方式采用三元组表格存储方式,具体列信息包括i,j,aiTbj;其中,aiT为第一个矩阵的第i行;bj为第二个矩阵的第j列。以上技术方案中,采用Master节点及多个Slaver节点并行处理Hadoop矩阵乘法任务,并通过预编矩阵相乘CUDA版的Map和Reduce代码,实现GPU对Hadoop矩阵乘法任务进行加速,从算法角度提升Hadoop矩阵相乘性能有限,能够更深层次提高程序的性能,有效提高了矩阵相乘运算的效率。附图说明图1是本专利技术一种实施例的异构集群的Hadoop矩阵处理方法的流程示意图。图2是本专利技术一种实施例的异构集群的Hadoop矩阵处理系统的结构框图。图3是本专利技术一种异构集群的Hadoop矩阵处理系统结构图。具体实施方式为了使本专利技术所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,本专利技术的实施例提供一种异构集群的Hadoop矩阵相乘算法,包括以下步骤,步骤S100,搭建一个物理集群,设置一个Master节点及多个Slaver节点;步骤S200,在所述Master节点及多个Slaver节点上分别配置Java开发环境下的编程环境,并预编矩阵相乘CUDA版的Map和Reduce代码;步骤S300,读取内存中已存储第一矩阵A及第二矩阵B的相关信息,并根据预编代码对所述存储的第一矩阵A及第二矩阵B进行MapReduce矩阵相乘运算;步骤S400,控制运算结果直接写进分布式文件系统HDFS;其中,所述A=(aij)是m×s的矩阵,B=(bij)是s×n的矩阵。优选地,在步骤S200中,在每个Master及Slaver节点上部署和安装配置Java开发环境本文档来自技高网...
【技术保护点】
一种异构集群的Hadoop矩阵处理方法,其特征在于:包括以下步骤,搭建一个物理集群,设置一个Master节点及多个Slaver节点;在所述Master节点及多个Slaver节点上分别配置Java开发环境下的编程环境,并预编矩阵相乘CUDA版的Map和Reduce代码;读取内存中已存储第一矩阵A及第二矩阵B的相关信息,并根据预编代码对所述存储的第一矩阵A及第二矩阵B进行MapReduce矩阵相乘运算;控制运算结果直接写进分布式文件系统HDFS;其中,所述A=(aij)是m×s的矩阵,B=(bij)是s×n的矩阵。
【技术特征摘要】
1.一种异构集群的Hadoop矩阵处理方法,其特征在于:包括以下步骤,
搭建一个物理集群,设置一个Master节点及多个Slaver节点;
在所述Master节点及多个Slaver节点上分别配置Java开发环境下的编程环
境,并预编矩阵相乘CUDA版的Map和Reduce代码;
读取内存中已存储第一矩阵A及第二矩阵B的相关信息,并根据预编代码
对所述存储的第一矩阵A及第二矩阵B进行MapReduce矩阵相乘运算;
控制运算结果直接写进分布式文件系统HDFS;
其中,所述A=(aij)是m×s的矩阵,B=(bij)是s×n的矩阵。
2.根据权利要求1所述的异构集群的Hadoop矩阵处理方法,其特征在于:
所述Java开发环境下的编程环境是指Java开发环境JDK,Hadoop,IntelGPU
的编程环境CUDA,JCuda,Ganglia;
其中,JCuda提供了Java直接访问CUDA的API,Ganglia实时监控集群的
CPU、内存、网络、硬盘利用率。
3.根据权利要求1所述的异构集群的Hadoop矩阵处理方法,其特征在于:
所述第一矩阵A及第二矩阵B的存储方式采用三元组表格存储方式,具体
列信息包括i,j,aiTbj;
其中,aiT为第一矩阵A的第i行;bj为第二矩阵B的第j列。
4.根据权利要求3所述的异构集群的Hadoop矩阵处理方法,其特征在于:
MapReduce矩阵相乘运算具体包括:
Map阶段,根据预编代码得到emit((i,j),aiT·bj),其中Reduce阶段,直接获得Map阶段的结果。
5.根据权利要求1所述的异构集群的Hadoop矩阵处理方法,其特征在于:
在所述步骤控制运算结果直接写进分布式文件系统HDFS之后,还包括步骤,
搭建Web...
【专利技术属性】
技术研发人员:刘勇,喻之斌,须成忠,
申请(专利权)人:中国科学院深圳先进技术研究院,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。