Spark
GraphXÊÇÒ»¸ö·Ö²¼Ê½Í¼´¦Àí¿ò¼Ü£¬Spark GraphX»ùÓÚSparkƽ̨Ìṩ¶Ôͼ¼ÆËãºÍͼÍÚ¾ò¼ò½àÒ×ÓõĶø·á¸»¶à²ÊµÄ½Ó¿Ú£¬¼«´óµÄ·½±ãÁË´ó¼Ò¶Ô·Ö²¼Ê½Í¼´¦ÀíµÄÐèÇó¡£
´ó¼Ò¶¼ÖªµÀ£¬Éç½»ÍøÂçÖÐÈËÓëÈËÖ®¼äÓÐºÜ¶à¹ØÏµÁ´£¬ÀýÈçTwitter¡¢Facebook¡¢Î¢²©¡¢Î¢ÐÅ£¬ÕâЩ¶¼ÊÇ´óÊý¾Ý²úÉúµÄµØ·½£¬¶¼ÐèҪͼ¼ÆË㣬ÏÖÔÚµÄͼ´¦Àí»ù±¾¶¼ÊÇ·Ö²¼Ê½µÄͼ´¦Àí£¬¶ø²¢·Çµ¥»ú´¦Àí£¬Spark
GraphXÓÉÓڵײãÊÇ»ùÓÚSparkÀ´´¦ÀíµÄ£¬ËùÒÔÌìÈ»¾ÍÊÇÒ»¸ö·Ö²¼Ê½µÄͼ´¦Àíϵͳ¡£
ͼµÄ·Ö²¼Ê½»òÕß²¢Ðд¦ÀíÆäʵÊǰÑÕâÕÅͼ²ð·Ö³ÉºÜ¶àµÄ×Óͼ£¬È»ºóÎÒÃÇ·Ö±ð¶ÔÕâЩ×Óͼ½øÐмÆË㣬¼ÆËãµÄʱºò¿ÉÒÔ·Ö±ðµü´ú½øÐзֽ׶εļÆË㣬¼´¶Ôͼ½øÐв¢ÐмÆËã¡£
ÏÂÃæÎÒÃÇ¿´Ò»ÏÂͼ¼ÆËãµÄ¼òµ¥Ê¾Àý£º

´ÓͼÖÐÎÒÃÇ¿ÉÒÔ¿´³ö£ºÄõ½WikipediaµÄÎĵµÒԺ󣬿ÉÒÔ±ä³ÉTableÐÎʽµÄÊÓͼ£¬È»ºó»ùÓÚTableÐÎʽµÄÊÓͼÎÒÃÇ¿ÉÒÔ·ÖÎöHyperlinks³¬Á´½Ó£¬Ò²¿ÉÒÔ·ÖÎöTerm-Doc
Graph£¬È»ºó¾¹ýLDAÖ®ºó½øÈëWordTopics£¬Ö®ÓÚÉÏÃæµÄHyperlinks£¬ÎÒÃÇ¿ÉÒÔʹÓÃPageRankÈ¥·ÖÎö£¬ÔÚÏÂÃæµÄEditor
Graphµ½Community£¬Õâ¸ö¹ý³Ì¿ÉÒÔ³ÆÖ®ÎªTriangle Computation£¬ÕâÊǼÆËãÈý½ÇÐεÄÒ»¸öËã·¨£¬»ùÓÚ´Ë£¬»á·¢ÏÖÒ»¸öÉçÇø£¬´ÓÉÏÃæµÄ·ÖÎöÖÐÎÒÃÇ¿ÉÒÔ·¢ÏÖͼ¼ÆËãÓкܶàµÄ×ö·¨ºÍËã·¨£¬Í¬Ê±Ò²·¢ÏÖͼºÍ±í¸ñ¿ÉÒÔ×ö»¥ÏàµÄת»»£¬²»¹ý²¢·ÇËùÓеÄͼ¼ÆËã¿ò¼Ü¶¼Ö§³ÖͼÓë±í¸ñµÄ»¥Ïàת»»¡£
Spark GraphXµÄÓÅÊÆÔÚÓÚÄܹ»°Ñ±í¸ñºÍͼ½øÐл¥Ïàת»»£¬ÕâÒ»µã¿ÉÒÔ´øÀ´·Ç³£¶àµÄÓÅÊÆ£¬ÏÖÔںܶà¿ò¼ÜÒ²ÔÚ½¥½¥µÄÍùÕâ·½Ãæ·¢Õ¹£¬ÀýÈçGraphLibÒѾʵÏÖÁË¿ÉÒÔ¶ÁÈ¡GraphÖеÄData£¬Ò²¿ÉÒÔ¶ÁÈ¡TableÖеÄData£¬Ò²¿ÉÒÔ¶ÁÈ¡Text×ܵÄdata¼´Îı¾ÖеÄÄÚÈݵȣ¬Óë´ËͬʱSpark
GraphX»ùÓÚSparkҲΪGraphXÔöÌíÁ˶îÍâµÄºÜ¶àÓÅÊÆ£¬ÀýÈçºÍmllib¡¢Spark SQLÐ×÷µÈ¡£
µ±½ñͼ¼ÆËãÁìÓò¶ÔͼµÄ¼ÆËã´ó¶àÊýÖ»¿¼ÂÇÁÚ¾Ó½ÚµãµÄ¼ÆË㣬Ҳ¾ÍÊÇ˵һ¸ö½Úµã¼ÆËãµÄʱºòÖ»»á¿¼ÂÇÆäÁھӽڵ㣬¶ÔÓÚ·ÇÁÚ¾Ó½ÚµãÊDz»¹ØÐĵģ¬ÈçÏÂͼËùʾ£º

Ŀǰ»ùÓÚͼµÄ²¢ÐмÆËã¿ò¼ÜÒѾÓкܶ࣬±ÈÈçÀ´×ÔGoogleµÄPregel¡¢À´×ÔApache¿ªÔ´µÄͼ¼ÆËã¿ò¼ÜGiraph£¬ÒÔ¼°ÎÒÃÇ×îÎªÖøÃûµÄGraphLab£¬µ±È»Ò²°üº¬HAMA£¬ÆäÖÐPregel¡¢HAMA¡¢Giraph¶¼ÊǷdz£ÀàËÆµÄ£¬¶¼ÊÇ»ùÓÚBSPÄ£ÐÍ£¬BSPÄ£ÐÍʵÏÖÁËSuperStep¼´³¬²½£¬BSPÊ×ÏȽøÐб¾µØ¼ÆË㣬Ȼºó½øÐÐÈ«¾ÖµÄͨÐÅ£¬È»ºó½øÐÐÈ«¾ÖµÄBarrier£»BSP×î´óµÄºÃ´¦ÊDZà³Ì¼òµ¥£¬¶øÆäÎÊÌâÔÚÓÚһЩÇé¿öÏÂBSPÔËËãµÄÐÔÄܷdz£²î£¬
ÒòΪÎÒÃÇÓÐÒ»¸öÈ«¾ÖBarrierµÄ´æÔÚ£¬ËùÒÔϵͳËÙ¶ÈÈ¡¾öÓÚ×îÂýµÄ¼ÆË㣬Ҳ¾Í°ÑľͰÔÀíÌåÏÖÎÞÒÅ£¬ÁíÍâÒ»·½Ã棬ºÜ¶àÏÖʵÉú»îÖеÄÍøÂçÊÇ·ûºÏÃÝÂÉ·Ö²¼µÄ£¬Ò²¾ÍÊǶ¨µã¡¢±ßµÈ·Ö²¼Ê½ºÜ²»¾ùÔÈ£¬ËùÒÔÔÚÕâÖÖÇé¿öÏÂBSPµÄľͰÔÀíµ¼ÖÂÁËÐÔÄÜÎÊÌâ»áµÃµ½ºÜ´óµÄ·Å´ó£¬¶ÔÕâ¸öÎÊÌâµÄ½â¾ö£¬ÒÔGraphLabΪÀý£¬Ê¹ÓÃÁËÒ»ÖÖÒì²½µÄ¸ÅÄî¶øÃ»ÓÐÈ«²¿µÄBarrier£»×îºó£¬²»µÃ²»ÌáµÄÒ»µãÊÇÔÚSpark
GraphxÖпÉÒÔÓü«Îª¼ò½àµÄ´úÂë·Ç³£·½±ãµÄʹÓÃPregelµÄAPI¡£
»ùÓÚͼµÄ¼ÆËã¿ò¼ÜµÄ¹²Í¬ÌصãÊdzéÏó³öÁËÒ»ÅúAPIÀ´¼ò»¯»ùÓÚͼµÄ±à³Ì£¬ÕâÍùÍù±ÈÒ»°ãµÄdata-parellelϵͳµÄÐÔÄܸ߳öºÜ¶à±¶¡£
´«Í³µÄͼ¼ÆË㣬ÍùÍùÐèÒª²»Í¬µÄϵͳ֧³Ö²»Í¬µÄView£¬ÀýÈçÔÚTable ViewÕâÖÖÊÓͼÏ¿ÉÄÜÐèÒªSparkµÄÖ§³Ö»òÕßHadoopµÄÖ§³Ö£¬¶øÔÚGraph
ViewÕâÖÖÊÓͼÏ¿ÉÄÜÐèÒªPregel»òÕßGraphLabµÄÖ§³Ö£¬Ò²¾ÍÊǰÑͼºÍ±í·Ö±ðÔÚ²»Í¬µÄϵͳÖнøÐÐÀÁ·´¦Àí£¬ÈçÏÂͼËùʾ£º

ÉÏÃæËùÃèÊöµÄͼ¼ÆËã´¦Àí·½Ê½ÊÇ´«Í³µÄ¼ÆË㷽ʽ£¬µ±È»ÏÖÔÚ³ýÁËSpark GraphXÖ®ÍâµÄͼ¼ÆËã¿ò¼ÜÒ²ÔÚ¿¼ÂÇÕâ¸öÎÊÌ⣻²»Í¬ÏµÍ³´øÀ´µÄÎÊÌâÊÇÖ®Ò»ÊÇÐèҪѧϰ¡¢²¿ÊðºÍ¹ÜÀí²»Í¬µÄϵͳ£¬ÀýÈçҪͬʱѧϰ¡¢²¿ÊðºÍ¹ÜÀíHadoop¡¢Hive¡¢Spark¡¢Giraph¡¢GraphLabµÈ£º

´ó¼Ò¶¼ÖªµÀ¡°Detail is evil¡±£¬Èç¹ûÎÒÃÇÄܹ»ÓøüÉٵĿò¼Ü½â¾ö¸ü¶àµÄÎÊÌâÄÇÊǸüºÃµÄ¡£
Æäʵ×î¹Ø¼üµÄÎÊÌ⻹ÊÇЧÂÊÎÊÌ⣬ÒòΪÔÚ²»Í¬µÄת»»Öмäÿ²½¶¼ÒªÂ䵨µÄ»°£¬Êý¾Ýת»»ºÍ¸´ÖÆ´øÀ´µÄ¿ªÏúÒ²·Ç³£´ó£¬°üÀ¨ÐòÁл¯´øÀ´µÄ¿ªÏú£¬Í¬Ê±Öмä½á¹ûºÍÏàÓ¦µÄ½á¹¹ÎÞ·¨ÖØÓã¬ÌرðÊÇһЩ½á¹¹ÐԵĶ«Î÷£¬Æ©Èç˵¶¥µã»òÕ߱ߵĽṹһֱûÓб䣬ÕâÖÖÇé¿öϽṹÄÚ²¿µÄStructureÊDz»ÐèÒª¸Ä±äµÄ£¬¶øÈç¹ûÿ´Î¶¼ÖØÐ¹¹½¨µÄ»°£¬¾ÍËã²»±äÒ²ÎÞ·¨ÖØÓã¬Õâ»Øµ¼Ö·dz£²îµÄÐÔÄÜ£º

½â¾ö·½°¸¾ÍÊÇSpark GraphX£¬GarphXʵÏÖÁËUnified
Representation£¬GraphXͳһÁËTable ViewºÍGraph View£¬»ùÓÚSpark¿ÉÒԷdz£ÇáËɵÄ×öpipelineµÄ²Ù×÷£º

Èç¹ûºÍSpark SQL½áºÏ£¬ÎÒÃÇ¿ÉÒÔÓÃSQLÓï¾äÀ´½øÐÐETL£¬È»ºó·ÅÈëGraphXÀ´´¦Àí£¬ÊǷdz£·½±ãµÄ¡£
ÔÚSpark GraphXÖеÄGraphÆäʵÊÇProperty Graph£¬Ò²¾ÍÊÇ˵ͼµÄÿ¸ö¶¥µãºÍ±ß¶¼ÊÇÓÐÊôÐԵģ¬ÈçÏÂͼËùʾ£º

ÀýÈçΪ3µÄ¶¥µãµÄÃû³ÆÎªrxin£¬ÊÇѧÉústu.£¬5Õâ¸ö¶¥µãÊÇfranlin£¬ÊÇÒ»¸öprof.£¬5µ½3±íÃ÷5ÊÇ3µÄAdvisor£¬ÉÏͼÖÐÀ¶É«µÄ±íʾµÄÊÇÏàÓ¦¶¥µãµÄProperty£¬¶ø»ÆÉ«³È»ÆÉ«²¿·Ö±íʾµÄ±ßµÄProperty£¬±ßºÍ¶¥µã¶¼ÊÇÓÐIDµÄ£¬¶ÔÓÚ¶¥µã¶øÑÔÓÐ×ÔÉíµÄID£¬¶ø¶ÔÓÚ±ßÀ´ËµÓÐSourceIDºÍDestinationID£¬¼´¶ÔÓڱ߶øÑÔ»áÓÐÁ½¸öIDÀ´±í´ï´ÓÄĸö¶¥µã³ö·¢µ½Äĸö¶¥µã½áÊø£¬À´±íÃ÷±ßµÄ·½Ïò£¬Õâ¾ÍÊÇProperty
GraphµÄ±íʾ·½·¨£»Èç¹û°ÑProperty·´Ó³µ½±íÉϵϰ£¬ÀýÈçÎÒÃÇÔÚVertex TableÖÐIdΪµÄ3µÄProperty¾ÍÊÇ(rxin,
student)£¬¶øÔÚEdge TableÖÐ3µ½7±íÃ÷µÄ±ßµÄPropertyÊÇCollaboratorµÄ¹ØÏµ£¬2µ½5ÊÇColleagueµÄ¹ØÏµ£»¸üÎªÖØÒªµÄÊÇProperty
GraphºÍTableÖ®¼äÊÇ¿ÉÒÔÏ໥ת»»µÄ£¬ÔÚGraphXÖÐËùÓвÙ×÷µÄ»ù´¡ÊÇtable operatorºÍgraph
operator£¬£¬Æä¼Ì³Ð×ÔSparkÖеÄRDD£¬¶¼ÊÇÕë¶Ô¼¯ºÏ½øÐвÙ×÷¡£ |