欢迎来到天天文库
浏览记录
ID:42556776
大小:566.23 KB
页数:21页
时间:2019-09-17
《分布式图计算GraphLab分析1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、GraphLab准备阶段的研究与分析GraphLab的准备阶段即从加载图文件到GAS计算之前的GraphLab内部准备过程。共分为三个阶段:图的加载、图的构建和图的完成。下图为GraphLab准备阶段的流程图:参数:owning_proc,record图的加载Load图的加载即从外部将图文件加载到GraphLab屮。该过程分为两步:加载图文件和解析图文件。1.加载图文件通过load_fofmat()函数将图文件以用户指定的格式加载到GraphLab中。在load()函数中判断文件的存储路径,即NFS(网络文件系统)和HDFS(分布式文件系统),根据图文件的存储位置不同,可调用函数load」ro
2、m_hdfs()或者load_from_posixfs()加载图文件。GraphLab支持的标准图文件格式如下:Formats*Differences*Classify^Regulation^e・"Advantages*PortableFormat^1P该图文件祜式只能存储图结构,不能存储图的数据」三种通用的團文件格式Q[$rcID][targetID]Q12q15卩75、57p7如vertexIDsdonotne^dtobeconsecutiveandthisformatcannotstoreverticeswithnoedges.asnap*TheformatisidenticaltoTS
3、VTSVwithoneminordifference:linesbeginningwith"tt"aretreatedascommentsandignored*'flvertices:4edges:5^12215・75卩527IpThisformatcannotstoreverticeswithnoedges*adj«?[vertexID][numberoftargetvertices][targetID1][targetID2][targetID3]・・*p1225“711^517^Wemavincludethelin卄4、onnectedvertices・Suchlinesareonlynecessarj*fortrukdisconnectedvertices.t5_种GraphLab余定的格式』biinsv"Whereeachblockstoresapairof32bitunsignedintegervaluesinx86littleendianformat*'0x00000001000000020x00000001000000ot>0x00000005000000070x00000007000000050x0000000700000001Disconnectedverticesarestoredas:-'5、6、07、l8、29、310、411、512、613、7p14、015、l16、217、318、419、520、621、7p22、VID23、2*32-1p24、stcVID25、destVID»Non-PortableFormats*该图文件格式可以存储图结构和图的数抿卩两种GraphLab特定的格式」grapbjrbP&binaQp2.解析图文件GraphLab利用内置的行解析器对不同类型的图文件采取不同的解析方式。首先对加载的图文件进行类型判断,即tsv,snapzbintsv4等儿种标准图文件类型。再根据图文件类型调用不同的行解析器对图文件解析,如果图文件类型是用户口定义的,需口行编写解析器。如果该文件类型为snap,则调用行解析器snap_parser()26、对该文件解析。通过解析可获得每条边的源节点和目标节点对。在图加载过程屮涉及到的函数及其简单分析如下:Load_format(conststd::string&path,conststd::string&format)"以标准图文件格式加载图//以标准图文件格式加载图,并且构建一个行解析器,使它指向该图文件类型的行解析西数{line_parser_typeline_p且rser;//彳亍解析器if(format==Hsnapn){怩析snap类型的行解析函数line_parser=builtin_parsers::snap_parser;load()函数lo27、ad(path,line_parser);Load(std::stringprefix,line_parser_typeline_parser)在文件系统或HDFS中加载所看文件茗匹配"[prefix]*啲文件〃在文件系统或者HDFS中加载所有文件名匹配“[prefix]*11的文件{rpc•full_barrier();if(prefix.length()==0)return;//判断路径名,选
4、onnectedvertices・Suchlinesareonlynecessarj*fortrukdisconnectedvertices.t5_种GraphLab余定的格式』biinsv"Whereeachblockstoresapairof32bitunsignedintegervaluesinx86littleendianformat*'0x00000001000000020x00000001000000ot>0x00000005000000070x00000007000000050x0000000700000001Disconnectedverticesarestoredas:-'
5、
6、0
7、l
8、2
9、3
10、4
11、5
12、6
13、7p
14、0
15、l
16、2
17、3
18、4
19、5
20、6
21、7p
22、VID
23、2*32-1p
24、stcVID
25、destVID»Non-PortableFormats*该图文件格式可以存储图结构和图的数抿卩两种GraphLab特定的格式」grapbjrbP&binaQp2.解析图文件GraphLab利用内置的行解析器对不同类型的图文件采取不同的解析方式。首先对加载的图文件进行类型判断,即tsv,snapzbintsv4等儿种标准图文件类型。再根据图文件类型调用不同的行解析器对图文件解析,如果图文件类型是用户口定义的,需口行编写解析器。如果该文件类型为snap,则调用行解析器snap_parser()
26、对该文件解析。通过解析可获得每条边的源节点和目标节点对。在图加载过程屮涉及到的函数及其简单分析如下:Load_format(conststd::string&path,conststd::string&format)"以标准图文件格式加载图//以标准图文件格式加载图,并且构建一个行解析器,使它指向该图文件类型的行解析西数{line_parser_typeline_p且rser;//彳亍解析器if(format==Hsnapn){怩析snap类型的行解析函数line_parser=builtin_parsers::snap_parser;load()函数lo
27、ad(path,line_parser);Load(std::stringprefix,line_parser_typeline_parser)在文件系统或HDFS中加载所看文件茗匹配"[prefix]*啲文件〃在文件系统或者HDFS中加载所有文件名匹配“[prefix]*11的文件{rpc•full_barrier();if(prefix.length()==0)return;//判断路径名,选
此文档下载收益归作者所有