Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
SparkÔÚÌÚѶÊý¾Ý²Ö¿âTDWµÄÓ¦ÓÃ
 
À´Ô´£º±êµã·û ·¢²¼ÓÚ£º2014-12-8
  4749  次浏览      28
 

ΪÁËÂú×ãÍÚ¾ò·ÖÎöÓë½»»¥Ê½ÊµÊ±²éѯµÄ¼ÆËãÐèÇó£¬ÌÚѶ´óÊý¾ÝʹÓÃÁËSparkƽ̨À´Ö§³ÖÍÚ¾ò·ÖÎöÀà¼ÆËã¡¢½»»¥Ê½ÊµÊ±²éѯ¼ÆËãÒÔ¼°ÔÊÐíÎó²î·¶Î§µÄ¿ìËÙ²éѯ¼ÆË㣬ĿǰÌÚѶ´óÊý¾ÝÓµÓг¬¹ý200̨µÄSpark¼¯Èº£¬²¢¶ÀÁ¢Î¬»¤SparkºÍShark·ÖÖ§¡£Spark¼¯ÈºÒÑÎȶ¨ÔËÐÐ2Ä꣬»ýÀÛÁË´óÁ¿µÄ°¸ÀýºÍÔËÓª¾­ÑéÄÜÁ¦£¬ÁíÍâ¶à¸öÒµÎñµÄ´óÊý¾Ý²éѯÓë·ÖÎöÓ¦Óã¬ÒÑÔÚÂ½ÐøÉÏÏß²¢Îȶ¨ÔËÐС£ÔÚSQL²éѯÐÔÄÜ·½ÃæÆÕ±é±ÈMapReduce¸ß³ö2±¶ÒÔÉÏ£¬ÀûÓÃÄÚ´æ¼ÆËãºÍÄÚ´æ±íµÄÌØÐÔ£¬ÐÔÄÜÖÁÉÙÔÚ10±¶ÒÔÉÏ¡£ÔÚµü´ú¼ÆËãÓëÍÚ¾ò·ÖÎö·½Ã棬¾«×¼ÍƼö½«Ð¡Ê±ºÍÌì¼¶±ðµÄÄ£ÐÍѵÁ·×ª±äΪSparkµÄ·ÖÖÓ¼¶±ðµÄѵÁ·£¬Í¬Ê±¼ò½àµÄ±à³Ì½Ó¿ÚʹµÃË㷨ʵÏÖ±ÈMRÔÚʱ¼ä³É±¾ºÍ´úÂëÁ¿Éϸ߳öÐí¶à¡£

Spark VS MapReduce

¾¡¹ÜMapReduceÊÊÓôó¶àÊýÅú´¦Àí¹¤×÷£¬²¢ÇÒÔÚ´óÊý¾Ýʱ´ú³ÉΪÆóÒµ´óÊý¾Ý´¦ÀíµÄÊ×Ñ¡¼¼Êõ£¬µ«ÓÉÓÚÒÔϼ¸¸öÏÞÖÆ£¬Ëü¶ÔһЩ³¡¾°²¢²»ÊÇ×îÓÅÑ¡Ôñ£º

1.ȱÉÙ¶Ôµü´ú¼ÆËãÒÔ¼°DAGÔËËãµÄÖ§³Ö

2.Shuffle¹ý³Ì¶à´ÎÅÅÐòºÍÂ䵨£¬MRÖ®¼äµÄÊý¾ÝÐèÒªÂäHdfsÎļþϵͳ

SparkÔÚºÜ¶à·½Ãæ¶¼ÃÖ²¹ÁËMapReduceµÄ²»×㣬±ÈMapReduceµÄͨÓÃÐÔ¸üºÃ£¬µü´úÔËËãЧÂʸü¸ß£¬×÷ÒµÑÓ³Ù¸üµÍ£¬ËüµÄÖ÷ÒªÓÅÊÆ°üÀ¨£º

1.ÌṩÁËÒ»Ì×Ö§³ÖDAGͼµÄ·Ö²¼Ê½²¢ÐмÆËãµÄ±à³Ì¿ò¼Ü£¬¼õÉÙ¶à´Î¼ÆËãÖ®¼äÖмä½á¹ûдµ½HdfsµÄ¿ªÏú

2.ÌṩCache»úÖÆÀ´Ö§³ÖÐèÒª·´¸´µü´ú¼ÆËã»òÕß¶à´ÎÊý¾Ý¹²Ïí£¬¼õÉÙÊý¾Ý¶ÁÈ¡µÄIO¿ªÏú

3.ʹÓöàÏ̳߳ØÄ£ÐÍÀ´¼õÉÙtaskÆô¶¯¿ªÉÔ£¬shuffle¹ý³ÌÖбÜÃâ²»±ØÒªµÄsort²Ù×÷ÒÔ¼°¼õÉÙ´ÅÅÌIO²Ù×÷

4.¹ã·ºµÄÊý¾Ý¼¯²Ù×÷ÀàÐÍ

MapReduceÓÉÓÚÆäÉè¼ÆÉϵÄÔ¼ÊøÖ»Êʺϴ¦ÀíÀëÏß¼ÆË㣬ÔÚʵʱ²éѯºÍµü´ú¼ÆËãÉÏÈÔÓнϴóµÄ²»×㣬¶øËæ×ÅÒµÎñµÄ·¢Õ¹£¬Òµ½ç¶Ôʵʱ²éѯºÍµü´ú·ÖÎöÓиü¶àµÄÐèÇ󣬵¥´¿ÒÀ¿¿MapReduce¿ò¼ÜÒѾ­²»ÄÜÂú×ãÒµÎñµÄÐèÇóÁË¡£SparkÓÉÓÚÆä¿ÉÉìËõ¡¢»ùÓÚÄÚ´æ¼ÆËãµÈÌØµã£¬ÇÒ¿ÉÒÔÖ±½Ó¶ÁдHadoopÉÏÈκθñʽµÄÊý¾Ý£¬³ÉΪÂú×ãÒµÎñÐèÇóµÄ×î¼ÑºòÑ¡Õß¡£

Ó¦ÓÃSparkµÄ³É¹¦°¸Àý

Ŀǰ´óÊý¾ÝÔÚ»¥ÁªÍø¹«Ë¾Ö÷ÒªÓ¦ÓÃÔÚ¹ã¸æ¡¢±¨±í¡¢ÍƼöϵͳµÈÒµÎñÉÏ¡£ÔÚ¹ã¸æÒµÎñ·½ÃæÐèÒª´óÊý¾Ý×öÓ¦Ó÷ÖÎö¡¢Ð§¹û·ÖÎö¡¢¶¨ÏòÓÅ»¯µÈ£¬ÔÚÍÆ¼öϵͳ·½ÃæÔòÐèÒª´óÊý¾ÝÓÅ»¯Ïà¹ØÅÅÃû¡¢¸öÐÔ»¯ÍƼöÒÔ¼°Èȵãµã»÷·ÖÎöµÈ¡£ÕâЩӦÓó¡¾°µÄÆÕ±éÌØµãÊǼÆËãÁ¿´ó¡¢Ð§ÂÊÒªÇó¸ß¡£SparkǡǡÂú×ãÁËÕâЩҪÇ󣬸ÃÏîĿһ¾­ÍƳö±ãÊܵ½¿ªÔ´ÉçÇøµÄ¹ã·º¹Ø×¢ºÍºÃÆÀ¡£²¢ÔÚ½üÁ½ÄêÄÚ·¢Õ¹³ÉΪ´óÊý¾Ý´¦ÀíÁìÓò×îÖËÊÖ¿ÉÈȵĿªÔ´ÏîÄ¿¡£±¾Õ½«ÁоٹúÄÚÍâÓ¦ÓÃSparkµÄ³É¹¦°¸Àý¡£

1.ÌÚѶ¡£¹ãµãͨÊÇ×îÔçʹÓÃSparkµÄÓ¦ÓÃÖ®Ò»¡£ÌÚѶ´óÊý¾Ý¾«×¼ÍƼö½èÖúSpark¿ìËÙµü´úµÄÓÅÊÆ£¬Î§ÈÆ¡°Êý¾Ý+Ëã·¨+ϵͳ¡±ÕâÌ×¼¼Êõ·½°¸£¬ÊµÏÖÁËÔÚ¡°Êý¾Ýʵʱ²É¼¯¡¢Ë㷨ʵʱѵÁ·¡¢ÏµÍ³ÊµÊ±Ô¤²â¡±µÄÈ«Á÷³Ìʵʱ²¢ÐиßάËã·¨£¬×îÖճɹ¦Ó¦ÓÃÓÚ¹ãµãͨpCTRͶ·ÅϵͳÉÏ£¬Ö§³ÖÿÌìÉϰÙÒÚµÄÇëÇóÁ¿¡£»ùÓÚÈÕÖ¾Êý¾ÝµÄ¿ìËÙ²éѯϵͳҵÎñ¹¹½¨ÓÚSparkÖ®ÉϵÄShark£¬ÀûÓÃÆä¿ìËÙ²éѯÒÔ¼°ÄÚ´æ±íµÈÓÅÊÆ£¬³Ðµ£ÁËÈÕÖ¾Êý¾ÝµÄ¼´Ï¯²éѯ¹¤×÷¡£ÔÚÐÔÄÜ·½Ã棬ÆÕ±é±ÈHive¸ß2-10±¶£¬Èç¹ûʹÓÃÄÚ´æ±íµÄ¹¦ÄÜ£¬ÐÔÄܽ«»á±ÈHive¿ì°Ù±¶¡£

2.Yahoo¡£Yahoo½«SparkÓÃÔÚAudience ExpansionÖеÄÓ¦Óá£Audience ExpansionÊÇ¹ã¸æÖÐѰÕÒÄ¿±êÓû§µÄÒ»ÖÖ·½·¨£ºÊ×ÏÈ¹ã¸æÕßÌṩһЩ¹Û¿´ÁË¹ã¸æ²¢ÇÒ¹ºÂò²úÆ·µÄÑù±¾¿Í»§£¬¾Ý´Ë½øÐÐѧϰ£¬Ñ°ÕÒ¸ü¶à¿ÉÄÜת»¯µÄÓû§£¬¶ÔËûÃǶ¨Ïò¹ã¸æ¡£Yahoo²ÉÓõÄËã·¨ÊÇlogistic regression¡£Í¬Ê±ÓÉÓÚÓÐЩSQL¸ºÔØÐèÒª¸ü¸ßµÄ·þÎñÖÊÁ¿£¬ÓÖ¼ÓÈëÁËרÃÅÅÜSharkµÄ´óÄڴ漯Ⱥ£¬ÓÃÓÚÈ¡´úÉÌÒµBI/OLAP¹¤¾ß£¬³Ðµ£±¨±í/ÒDZíÅ̺ͽ»»¥Ê½/¼´Ï¯²éѯ£¬Í¬Ê±Óë×ÀÃæBI¹¤¾ß¶Ô½Ó¡£Ä¿Ç°ÔÚYahoo²¿ÊðµÄSpark¼¯ÈºÓÐ112̨½Úµã£¬2TBÄÚ´æ¡£

3.ÌÔ±¦¡£°¢ÀïËÑË÷ºÍ¹ã¸æÒµÎñ£¬×î³õʹÓÃMahout»òÕß×Ô¼ºÐ´µÄMRÀ´½â¾ö¸´ÔӵĻúÆ÷ѧϰ£¬µ¼ÖÂЧÂʵͶøÇÒ´úÂë²»Ò×ά»¤¡£ÌÔ±¦¼¼ÊõÍŶÓʹÓÃÁËSparkÀ´½â¾ö¶à´Îµü´úµÄ»úÆ÷ѧϰËã·¨¡¢¸ß¼ÆË㸴ÔӶȵÄËã·¨µÈ¡£½«SparkÔËÓÃÓÚÌÔ±¦µÄÍÆ¼öÏà¹ØËã·¨ÉÏ,ͬʱ»¹ÀûÓÃGraphx½â¾öÁËÐí¶àÉú²úÎÊÌ⣬°üÀ¨ÒÔϼÆË㳡¾°£º»ùÓÚ¶È·Ö²¼µÄÖÐÊà½Úµã·¢ÏÖ¡¢»ùÓÚ×î´óÁ¬Í¨Í¼µÄÉçÇø·¢ÏÖ¡¢»ùÓÚÈý½ÇÐμÆÊýµÄ¹ØÏµºâÁ¿¡¢»ùÓÚËæ»úÓÎ×ßµÄÓû§ÊôÐÔ´«²¥µÈ¡£

4.ÓÅ¿áÍÁ¶¹¡£ÓÅ¿áÍÁ¶¹ÔÚʹÓÃHadoop¼¯ÈºµÄÍ»³öÎÊÌâÖ÷Òª°üÀ¨£ºµÚÒ»ÊÇÉÌÒµÖÇÄÜBI·½Ã棬·ÖÎöʦÌá½»ÈÎÎñÖ®ºóÐèÒªµÈ´ýºÜ¾Ã²ÅµÃµ½½á¹û£»µÚ¶þ¾ÍÊÇ´óÊý¾ÝÁ¿¼ÆË㣬±ÈÈç½øÐÐһЩģÄâ¹ã¸æÍ¶·Å֮ʱ£¬¼ÆËãÁ¿·Ç³£´óµÄͬʱ¶ÔЧÂÊÒªÇóÒ²±È½Ï¸ß£¬×îºó¾ÍÊÇ»úÆ÷ѧϰºÍͼ¼ÆËãµÄµü´úÔËËãÒ²ÊÇÐèÒªºÄ·Ñ´óÁ¿×ÊÔ´ÇÒËٶȺÜÂý¡£×îÖÕ·¢ÏÖÕâЩӦÓó¡¾°²¢²»ÊʺÏÔÚMapReduceÀïÃæÈ¥´¦Àí¡£Í¨¹ý¶Ô±È£¬·¢ÏÖSparkÐÔÄܱÈMapReduceÌáÉýºÜ¶à¡£Ê×ÏÈ£¬½»»¥²éѯÏìÓ¦¿ì£¬ÐÔÄܱÈHadoopÌá¸ßÈô¸É±¶£»Ä£Äâ¹ã¸æÍ¶·Å¼ÆËãЧÂʸߡ¢ÑÓ³ÙС£¨Í¬hadoop±ÈÑÓ³ÙÖÁÉÙ½µµÍÒ»¸öÊýÁ¿¼¶£©£»»úÆ÷ѧϰ¡¢Í¼¼ÆËãµÈµü´ú¼ÆË㣬´ó´ó¼õÉÙÁËÍøÂç´«Êä¡¢Êý¾ÝÂ䵨µÈ£¬¼«´óµÄÌá¸ßµÄ¼ÆËãÐÔÄÜ¡£Ä¿Ç°SparkÒѾ­¹ã·ºÊ¹ÓÃÔÚÓÅ¿áÍÁ¶¹µÄÊÓÆµÍƼö£¨Í¼¼ÆË㣩¡¢¹ã¸æÒµÎñµÈ¡£

ÌÚѶ´óÊý¾ÝSparkµÄ¸Å¿ö

ÌÚѶ´óÊý¾Ý×ÛºÏÁ˶à¸öÒµÎñÏߵĸ÷ÖÖÐèÇóºÍÌØÐÔ£¬Ä¿Ç°ÕýÔÚ½øÐÐÒÔϹ¤×÷£º

1.¾­¹ý¸ÄÔìºÍÓÅ»¯µÄSharkºÍSparkÎüÊÕÁËTDWƽ̨µÄ¹¦ÄÜ£¬ÈçHiveµÄÌØÓй¦ÄÜ£ºÔªÊý¾ÝÖØ¹¹£¬·ÖÇøÓÅ»¯µÈ£¬Í¬Ê±¿ÉÒÔͨ¹ýIDE»òÕßÂå×Óµ÷¶ÈÀ´Ö±½ÓÖ´ÐÐHiveSql²éѯºÍ¶¨Ê±µ÷¶ÈSparkµÄÈÎÎñ;

2.ÓëGaiaºÍTDWµÄµ×²ã´æ´¢Ö±½Ó¼æÈÝ£¬¿ÉÒÔÖ±½Ó°²È«ÇÒ¸ßЧµØÊ¹ÓÃTDW¼¯ÈºÉϵÄÊý¾Ý;

3.¶ÔSparkµ×²ãµÄʹÓÃÃż÷£¬×ÊÔ´¹ÜÀíÓëµ÷¶È£¬ÈÎÎñ¼à¿ØÒÔ¼°ÈÝÔֵȶà¸ö¹¦ÄܽøÐÐÍêÉÆ£¬²¢Ö§³Ö¿ìËÙµÄÇ¨ÒÆºÍÀ©ÈÝ¡£

SparkÔÚÏàËÆ¶È¼ÆËã·½ÃæµÄÓ¦ÓÃ

ÏàËÆ¶ÈÊÇÖ¸Á½¸ö½ÚµãÖ®¼äÌØ¶¨ÊôÐÔµÄÏàËÆ³Ì¶È£¬ÏàËÆ¶È¼ÆËãÊÇÊý¾ÝÍÚ¾ò¡¢ÍƼöÒýÇæÖеÄ×î»ù±¾ÎÊÌâ¡£ÀýÈçÔÚÍÆ¼öϵͳÖÐͨ¹ý¼ÆËãÍÆ¼öÎïÆ·µÄÏàËÆ¶È£¬´Ó¶ø¸øÄ¿±êÓû§ÍƼöÓëËûϲ»¶µÄÎïÆ·ÏàËÆ¶È½Ï¸ßµÄÎïÆ·£¬»òÊǼÆËãÓû§Ö®¼äµÄÏàËÆ¶È£¬¸øÄ¿±êÓû§ÍƼöÓëÆäÏàËÆµÄÓû§Ï²»¶µÄÎïÆ·¡£Òò´Ë£¬ÏàËÆ¶È¼ÆËã¼¼ÊõÔںܴó³Ì¶ÈÉϾö¶¨×ÅÍÆ¼öϵͳµÄÐÔÄÜ¡£

Ëæ×Å´óÊý¾Ýʱ´úµÄÀ´ÁÙ£¬ÈÕÒæÔö¼ÓµÄÊý¾ÝÁ¿Ê¹µÃµ¥»úµÄ¼ÆËãÄÜÁ¦ÒѾ­Ô¶Ô¶ÎÞ·¨Âú×ãÐèÇó¡£ÔÚ¶Ô´ó¹æÄ£µÄ½Úµã¶Ô½øÐÐÏàËÆ¶È¼ÆËãʱ£¬·Ö²¼Ê½´¦ÀíÍùÍùÊÇ¿ÉÐеĽâ¾ö·½°¸¡£MapReduceÊÇĿǰÁ÷Ðеķֲ¼Ê½±à³Ì¿ò¼Ü¡£HadoopÓëSparkÊÇMapReduce±à³ÌÄ£Ð͵ÄÁ½¸ö¿ªÔ´ÊµÏÖ¡£Ïà±ÈÓÚHadoop£¬SparkÌṩÁËcache»úÖÆ£¬Ôö¼ÓÁ˶Եü´ú¼ÆËãµÄÖ§³Ö£»»¹ÌṩÁËDAGµ÷¶ÈÀ´Ö§³Ö¸´ÔӵļÆËãÈÎÎñ£¬¼õÉÙÁËÖмä½á¹ûµÄ´ÅÅ̶Áд£¬Äܹ»»ñµÃ¸ü¼ÑµÄÐÔÄÜ¡£

ÎÊÌâÃèÊö

ÊäÈëÊý¾Ý¿ÉÒÔ±íʾ³ÉÁ½ÕÅ±í£º

1.½Úµã¹ØÏµ±írelation£¬×Ö¶ÎÓÐid, fid£¬±íʾÁ½¸ö½Úµã´æÔÚ¹ØÏµ¡£

2.½ÚµãÌØÕ÷±ífeatures£¬×Ö¶ÎÓÐid, feature£¬±íʾÿ¸ö½Úµã¾ßÓеÄÌØÕ÷ÐÅÏ¢¡£

ÏÂÁÐÁ½¸ö±í¸ñ±íʾÁËÔÚÒ»¸öÓµÓÐ6¸ö½ÚµãµÄ¹ØÏµÍøÂçÖУ¬½Úµã¹ØÏµ±íºÍ½ÚµãÌØÕ÷±íµÄÇé¿ö¡£

ÏàËÆ¶È¼ÆËã¼´ÊÇ¶Ô½Úµã¹ØÏµ±íÖеÄËùÓнڵã¶Ô (id£¬fid)£¬ÆäÌØÕ÷ÏòÁ¿·Ö±ðΪ ºÍ,ÀûÓÃÏàËÆ¶È¼ÆË㺯Êýsimilarity-Calculation£¬¼ÆËãºÍÖ®¼äµÄÏàËÆ¶È¡£ÏàËÆ¶È¼ÆË㺯Êýsimilarity-CalculationÒÀ¾Ý¾ßÌåµÄÏàËÆ¶ÈºâÁ¿·½·¨¶ø¶¨¡£

MapReduce ½â¾ö·½°¸

HiveÊǽ¨Á¢ÔÚHadoopÖ®ÉÏÌṩSQL½Ó¿Ú´¦ÀíµÄº£Á¿Êý¾Ý´¦Àí¹¤¾ß£¬¶ÔÓÚÉÏÊöÏàËÆ¶È¼ÆËãÎÊÌ⣬Æä¼ÆËãÁ÷³Ì¿ÉÒÔÓÃÈçÏÂSQLÀ´ÃèÊö£¬²¢Ê¹ÓÃHiveÀ´¼ÆËã¡£

Õû¸ö¼ÆËãÁ÷³Ì¿ÉÒÔ·ÖΪÁ½¸ö²½Ö裺

ͨ¹ýÁ½´ÎJOIN²Ù×÷£¬Éú³ÉÒ»ÕÅÁÙʱ±í£¬ÁÙʱ±íÖеÄÒ»¸öÔª×é¶ÔÓ¦½Úµã¹ØÏµ±íÖеÄÒ»¶Ô½ÚµãºÍÕâÁ½¸ö½ÚµãµÄÌØÕ÷ÏòÁ¿¡£

±éÀúÁÙʱ±í£¬¶Ôÿ¸öÔª×éÖеÄÁ½¸ö½Úµã¼ÆËãÆäÏàËÆ¶È¡£

ÏÂͼչʾÁ˸ÃSQLÓï¾äµÄÖ´Ðйý³Ì£º

ʹÓÃHive¶ÔǧÒÚ½Úµã¹ØÏµ¼Ç¼½øÐÐÏàËÆ¶È¼ÆË㣬Á½´ÎJOIN²Ù×÷³ÉΪÐÔÄܵÄÖ÷Ҫƿ¾±Æ¿¾±¡£ÔÚÁ½´ÎJOINµÄ¹ý³ÌÖУ¬ÍøÂçÊý¾Ý´«ÊäºÍ´ÅÅ̶Áд´ïµ½ÁË200TB£¬¼¯Èº¶àÊý½áµãµÄÓ²ÅÌÎÞ·¨Ö§³Ö£¬ÈÎÎñʧ°Ü¾­³£·¢Éú£¬×÷ÒµÔËÐÐÁËʱ¼ä³¬¹ýÁË24Сʱ¡£Í¨¹ý½«½Úµã¹ØÏµ±í²ð·Ö³É¶à¸ö×Ó±í£¬Ã¿¸ö×Ó±í¶ÀÁ¢µØ½øÐÐÏàËÆ¶È¼ÆË㣬¶à¸ö×Ó±íµÄÈÎÎñ²¢ÐÐÖ´ÐУ¬×îºóÔÙ½«¶à¸ö×Ó×÷ÒµµÄ½á¹û»ã×Ü£¬µÃµ½×îÖÕ½á¹û¡£²ÉÓÃÕâÑùµÄ·½Ê½£¬×÷Òµ×Üʱ¼äÈÔÈ»³¬¹ýÁË24Сʱ¡£

Spark½â¾ö·½°¸

ͨ¹ý¶ÔHive¼ÆËã¹ý³ÌµÄ·ÖÎö£¬ÎÒÃÇ·¢ÏÖÍøÂçÊý¾Ý¿ªÏúÖ÷ÒªÀ´×ÔÓÚ½ÚµãÌØÕ÷ÏòÁ¿µÄ´óÁ¿¸´ÖÆ¡£¶ÔÓÚ½Úµã¹ØÏµ±íÖеÄÿ¶Ô¹ØÏµ£¬¼ÆËãʱ¶¼ÐèÒªµÃµ½Á½¸ö½ÚµãµÄÌØÕ÷ÏòÁ¿£¬´Ó¶øµ¼ÖÂÁË´óÁ¿µÄÊý¾Ý¸´ÖÆ¡£Òò´Ë£¬ÎÒÃÇ´ÓÁ½¸ö·½ÃæÈ¥¼õÉÙÊý¾Ý¸´ÖÆ£º

1.²ÉÓöþάͼ»®·ÖµÄ˼Ï룬¼õÉÙ½ÚµãµÄ¸´ÖÆÊýÄ¿

2.ÿ¸öÊý¾Ý·ÖÇøÖУ¬¶ÔÓÚͬһ¸ö½Úµã£¬Ö»±£ÁôÒ»·Ý¸Ã½ÚµãÌØÕ÷ÏòÁ¿

¶þάͼ»®·Ö·½·¨£º

ÈκÎÒ»ÕŹØÏµÍøÂ磬¶¼¿ÉÒÔÓÃÒ»¸ö´ó¾ØÕóMÀ´±íʾ£¬¾ØÕóµÄÁ½¸öά¶ÈÓÃÀ´±íʾ½Úµã£¬¾ØÕóµÄÔªËØM[i, j]±íʾ½ÚµãiºÍ½ÚµãjÊÇ·ñ´æÔÚ¹ØÁª£¬Èç¹û´æÔÚ£¬ÔòM[i,j]ֵΪ1£¬·ñÔò£¬M[i, j]ֵΪ0¡£ÏÂͼչʾÁËͨ¹ý²ÉÓöþά»®·ÖµÄ·½·¨£¬½«Ò»¸ö¾ØÕó»®·Ö³ÉÁË16¸ö·ÖÇø¡£

ʹÓöþά»®·Ö¿ÉÒÔ¼õÉÙ½ÚµãµÄ¸´ÖÆÊýÄ¿¡£¼ÙÉè·ÖÇø×ÜÊýΪ£¬²ÉÓÃһά»®·ÖµÄ·½·¨£¬×î²îÇé¿öÏÂÿ¸ö½ÚµãµÄ¸´ÖÆ·ÝÊýÊÇ£¬¼´Ã¿¸ö·ÖÇø¶¼»áÓиýڵãµÄ¸´ÖÆ£»²ÉÓöþά»®·Ö·½·¨£¬×î²îÇé¿öÏÂÿ¸ö½ÚµãµÄ¸´ÖÆ·ÝÊÇ ¡£¶ÔÓÚ´óÊý¾ÝÁ¿£¬·ÖÇø×ÜÊýͨ³£ºÜ´ó£¬ËùÒÔ²ÉÓöþά»®·Öͨ³£¿ÉÒÔ¼õÉÙÿ¸ö½ÚµãµÄ¸´ÖÆ·ÝÊý¡£

¼ÆËã²½Ö裺

ÀûÓöþά»®·Ö·½·¨½«½Úµã¹ØÏµ±í»®·Ö³É¶à¸öÊý¾Ý·ÖÇø£¬¼ÙÉèÎÒÃǽ«·ÖÇøÊýÉèΪ4£¬ÔòTable 1ËùʾµÄ½Úµã¹ØÏµ±í½«»á»®·Öµ½4¸ö·ÖÇø£¬Ã¿¸öÔª×é¶ÔÓ¦µÄ·ÖÇøÈçÏÂTable 3Ëùʾ£º

¸ù¾Ýÿ¸ö·ÖÇøÖеĽڵãÁÐ±í£¬¼ÆËã³öÿ¸ö½ÚµãËùÔڵķÖÇøÁÐ±í£¬³ÆÎªÂ·ÓÉ±í£¬¼Ç¼ÁËÿ¸ö½ÚµãËùÔڵķÖÇøÐÅÏ¢£¬Æä½á¹ûÈçTable 4Ëùʾ¡£

¸ù¾Ý·ÓÉ±í½«Ã¿¸ö½ÚµãµÄÌØÕ÷ÏòÁ¿·¢ËÍÖÁÿ¸ö·ÖÇøÖ®ÖУ¬±£Ö¤Ã¿¸ö·ÖÇøÖÐÒ»¸ö½ÚµãÖ»±£´æÒ»·ÝÌØÕ÷ÏòÁ¿£¬ÈçTable 5Ëùʾ¡£

¶ÔÓÚÿ¸ö·ÖÇø£¬½«¸Ã·ÖÇøµÄ¹ØÏµ¼¯ºÏÓë¸Ã·ÖÇøÖÐËùÓнáµãµÄÌØÕ÷ÏòÁ¿½øÐйØÁª£¬±éÀúÿ¶Ô½Úµã¹ØÏµ£¬ÀûÓÃÏàËÆ¶Èº¯ÊýºÍÌØÕ÷ÏòÁ¿¼ÆËã¶þÕßµÄÏàËÆ¶È¡£

ͨ¹ýÒÔÉϲ½Ö裬¼´¿ÉÒÔ¼ÆËã³ö½Úµã¹ØÏµ±íÖÐÿ¶Ô½ÚµãµÄÏàËÆ¶È¡£ÓëMapReduceµÄ¼ÆËã·½·¨Ïà±È£¬Èç¹ûÒ»¸öÓû§¶à´Î³öÏÖÔÚͬһ¸ö·ÖÇøÖУ¬±ÈÈçÓû§1ÔÚ·ÖÇø1ÖгöÏÖÁËÁ½´Î£¬ÉÏÊö¼ÆËã²½ÖèÖ»»á½«Óû§1µÄÌØÕ÷ÏòÁ¿·¢ËÍÒ»·Ýµ½·ÖÇø1ÖУ¬µ«ÊÇMapReduceµÄ¼ÆËã·½·¨»á·¢ËÍÁ½´Î£¬²úÉúÈßÓàµÄÍøÂçÊý¾Ý´«Ê䡣ʹÓÃÉÏÊö¼ÆËã·½·¨£¬ÎÒÃǽ«ÍøÂç´«ÊäÁ¿½µµ½ÁË50 T£¬Ô¶Ð¡ÓÚMapReduce·½·¨µÄÍøÂç´«ÊäÁ¿¡£

ϵͳ²ã´ÎÓÅ»¯£º

³ýÁËÔÚ¼ÆËãÁ÷³ÌÉϽøÐиĽø£¬ÎÒÃÇ»¹¶ÔSpark½øÐÐÁËÒÔÏ·½ÃæµÄÓÅ»¯£º

1.ÓÅ»¯·ÖÇø²ÎÊýÉèÖá£ÔÚÏàËÆ¶È¼ÆËãµÄÓ¦ÓÃÖУ¬·ÖÇø¸öÊýÔ½¶à£¬»áµ¼Ö½ڵãµÄ¸´ÖÆ·ÝÊýÔö¼Ó£¬´Ó¶øÔö´óÍøÂçÊý¾Ý´«ÊäÁ¿¡£Òò´ËÎÒÃÇ»ùÓÚÖмä½á¹ûµÄͳ¼ÆÐÅÏ¢À´È·¶¨È·¶¨·ÖÇø¸öÊý£¬Ê¹µÃÔÚ³ä·ÖÀûÓÃÿ¸ö½ÚµãÄÚ´æºÍCPUµÄǰÌáÏ£¬×îС»¯·ÖÇø¸öÊý¡£

2.ÓÅ»¯ÄÚ´æ±íʾ¡£ÓÉÓÚÊý¾ÝÁ¿´ó£¬¶ÔÏó¸öÊý¶à£¬µ¼ÖÂÄÚ´æÊ¹ÓÃÁ¿½Ï¸ß£¬GCʱ¼ä½Ï³¤¡£ÎÒÃÇʹÓÃÁд洢¸ñʽÀ´¶ÔÄÚ´æÊý¾Ý½øÐÐѹËõ£¬¼õÉÙÊý¾ÝÁ¿µÄͬʱҲ¼õÉÙÁ˶ÔÏó¸öÊý¡£

3.Ìá¸ßÍøÂçÎȶ¨ÐÔ¡£Ëæ×ż¯ÈºÖлúÆ÷ÊýÄ¿µÄÔö¼Ó£¬ÍøÂçÁ¬½ÓÊýÒ²»á³É±¶Ôö¼Ó¡£µ±ÍøÂç³öÏÖÓµ¼·Ê±£¬¾­³£»á°éËæ×ÅÁ¬½Ó³¬Ê±´Ó¶øµ¼ÖÂshuffleÊý¾ÝÀ­È¡Ê§°Ü¡£¸üÔã¸âµÄÇé¿öÊÇ£¬ÍøÂ糬ʱ»áÈÃMasterÎóÈÏΪExecutorÒѾ­¶ªÊ§£¬¹Ê»áʹµÃÕû¸öExecutorÉÏÒѾ­Íê³ÉµÄÈÎÎñÈ«²¿ÖØ×ö¡£Òò´ËÔÚshuffleʱÔö¼ÓÍøÂç³¬Ê±ÖØÊÔ»úÖÆ£¬Í¬Ê±¿ØÖÆÃ¿´Î·¢Ë͵ÄÇëÇóÁ¬½ÓÊý£¬±ÜÃâshuffleÀ­Êý¾Ý³¬Ê±£¬¼õÉÙÈÎÎñʧ°Ü´ÎÊý£¬·ÀÖ¹Executor¶ªÊ§µÄÇé¿ö³öÏÖ¡£

4.ʹÓÃsort-based shuffleʱ½«Îļþ¿éË÷ÒýÐÅÏ¢»º´æÒ»·ÝÔÚÄÚ´æÖУ¬ºóÐøÀ­Êý¾Ýʱֱ½Ó¶ÁÄÚ´æ»ñÈ¡Ë÷ÒýÐÅÏ¢¡£Ô¤²âÖ´ÐÐʱ£¬µ±Í¬Ò»ÈÎÎñµÄÒ»ÅúÔËÐÐʵÀýÓÐÒ»¸öÍê³Éʱ£¬É±µôÕýÔÚÔËÐÐµÄÆäÓàʵÀý£¬ÌáÔçÊͷżÆËã×ÊÔ´¡£

5.²ÎÊýµ÷Õû¡£ÓÉÓÚÿ¸öExecutor½ø³Ì»¹»áʹÓõ½¶ÑÍâÄڴ棬Òò´ËExecutor½ø³ÌÕ¼ÓõÄÄÚ´æÍùÍù»á´óÓÚJVMÉ趨µÄ×î´óÖµ£¬ÎªÁ˱£Ö¤Gaia²»»á½«³¬¹ýJVMÄÚ´æµÄExecutor½ø³Ìɱµô£¬ÅäÖòÎÊýyarn.executor.memoryOverheadÒÔÃâ±»kill¡£ÓÉÓÚExecutorÔÚFull GCʱÐèÒª½Ï³¤Ê±¼ä£¬ÐèÒªÅäÖòÎÊýspark.storage.blockManagerSlaveTimeoutMsÀ´ÑÓ³¤blockManagerµÄ³¬Ê±Ê±¼ä¡£

ʵÑé¶Ô±È

ʵÑé»·¾³£º·Ö±ðÔÚÓµÓÐ200̨¡¢600̨ºÍ1000̨TS5»úÆ÷½ÚµãµÄ¼¯ÈºÉϽøÐÐÁ˶Աȣ¬Ã¿Ì¨»úÆ÷ÓµÓÐ64GBÄڴ棬2*12TÓ²ÅÌ£¬24Ïß³ÌCPU¡£ÔÚÁ½¸öÊý¾Ý¼¯ÉϽøÐÐÁËHadoop¡¢ÉçÇøGraphXºÍTDW-SparkµÄÐÔÄܶԱȣ¬Ò»¸öÊý¾Ý¼¯ÓµÓÐÎå°ÙÒÚ½Úµã¶Ô£¬¶øÁíÒ»¸öÓµÓÐǧÒÚÁ¿¼¶µÄ½Úµã¶Ô¡£ÊµÑé½á¹ûÈçϱíËùʾ:

ͨ¹ýÉÏÊöʵÑé¶Ô±È£¬¿ÉÒÔ¿´³öÔÚMapReduceÉϵÄʵÏÖµÄÐÔÄÜÔ¶Ô¶µÍÓÚÔÚSparkÉϵÄÐÔÄÜ£¬Ê¹ÓÃJOINµÄ·½·¨Ê¹µÃÍøÂçͨÐÅ¿ªÏú·Ç³£´ó£¬Îå°ÙÒÚÊý¾Ý¼¯µÄÈÎÎñÖ´ÐÐʱ¼ä³¬¹ý12¸öСʱ£¬Ç§ÒÚÊý¾Ý¼¯ÈÎÎñÖ´ÐÐʱ¼ä³¬¹ý24¸öСʱ£»GraphX²ÉÓõÄͬÑùÊǶþάͼ»®·Ö£¬µ«ÊÇÓÉÓÚÆäÊÇÒ»¸öÃæÏòͨÓõÄͼ¼ÆËã¿ò¼Ü£¬Î¬»¤Á˸´ÔÓµÄÊý¾Ý½á¹¹ºÍ¼ÆËãÁ÷³Ì£¬Ôì³ÉÐÔÄÜϽµ¡£Í¬Ê±£¬GraphXÔÚÍøÂçÎȶ¨ÐÔ·½Ãæ´æÔÚÐí¶àÎÊÌ⣬µ±¼¯Èº¹æÄ£´ïµ½600̨ʱ±ã»áÓдóÁ¿µÄÈÎÎñʧ°Ü¡£

ÓëǰÁ½ÕßÏà±È£¬TDW-SparkÔÚ¼¯ÈºÎª200̨ʱÔÚÁ½¸öÊý¾Ý¼¯É϶¼»ñµÃÁ˽ϴóµÄÐÔÄÜÔö³¤£¬ËùÏûºÄʱ¼äÉÙÓÚGraphXµÄÒ»°ë¡£µ±¼¯Èº¹æÄ£´Ó200̨À©³äÖÁ600̨£¬TDW-SparkÔÚÎå°ÙÒÚ½Úµã¶ÔÊý¾Ý¼¯ÉÏ»ñµÃ¼ÓËÙ±È218%£¬ÔÚǧÒÚ½ÚµãÉϵļÓËÙ±ÈΪ280%£»µ±¼¯Èº¹æÄ£´Ó200̨À©³äÖÁ1000̨ʱ£¬¼ÓËٱȷֱðΪ279%ºÍ350%¡£Òò´Ë£¬TDW-Spark²»½öÔÚÐÔÄÜÉÏ»ñµÃÁ˺ܴóµÄÌáÉý£¬»¹¿ÉÒÔÔÚǧ̨¹æÄ£µÄ¼¯ÈºÖ®ÉÏÎȶ¨ÔËÐУ¬Í¬Ê±»ñµÃÁ¼ºÃµÄˮƽÀ©Õ¹ÄÜÁ¦¡£

SparkÔÚ»ùÓÚÎïÆ·µÄЭͬ¹ýÂËÍÆ¼öËã·¨µÄÓ¦ÓÃ

»¥ÁªÍøµÄ·¢Õ¹µ¼ÖÂÁËÐÅÏ¢±¬Õ¨¡£Ãæ¶Ôº£Á¿µÄÐÅÏ¢£¬ÈçºÎ¶ÔÐÅÏ¢½øÐÐˢѡºÍ¹ýÂË£¬½«Óû§×î¹Ø×¢×î¸ÐÐËȤµÄÐÅÏ¢Õ¹ÏÖÔÚÓû§ÃæÇ°£¬ÒѾ­³ÉΪÁËÒ»¸öؽ´ý½â¾öµÄÎÊÌâ¡£ÍÆ¼öϵͳ¿ÉÒÔͨ¹ýÓû§ÓëÐÅÏ¢Ö®¼äµÄÁªÏµ£¬Ò»·½Ãæ°ïÖúÓû§»ñÈ¡ÓÐÓõÄÐÅÏ¢£¬ÁíÒ»·½ÃæÓÖÄÜÈÃÐÅÏ¢Õ¹ÏÖÔÚ¶ÔÆä¸ÐÐËȤµÄÓû§ÃæÇ°£¬ÊµÏÖÁËÐÅÏ¢ÌṩÉÌÓëÓû§µÄ˫Ӯ¡£

Эͬ¹ýÂËÍÆ¼ö£¨Collaborative Filtering Recommendation£©Ëã·¨ÊÇ×î¾­µä×î³£ÓõÄÍÆ¼öËã·¨£¬Ë㷨ͨ¹ý·ÖÎöÓû§ÐËȤ£¬ÔÚÓû§ÈºÖÐÕÒµ½Ö¸¶¨Óû§µÄÏàËÆÓû§£¬×ÛºÏÕâЩÏàËÆÓû§¶ÔijһÐÅÏ¢µÄÆÀ¼Û£¬ÐγÉϵͳ¶Ô¸ÃÖ¸¶¨Óû§¶Ô´ËÐÅÏ¢µÄϲºÃ³Ì¶ÈÔ¤²â¡£Ð­Í¬¹ýÂË¿Éϸ·ÖΪÒÔÏÂÈýÖÖ£º

1.User-based CF: »ùÓÚUserµÄЭͬ¹ýÂË£¬Í¨¹ý²»Í¬Óû§¶ÔItemµÄÆÀ·ÖÀ´ÆÀ²âÓû§Ö®¼äµÄÏàËÆÐÔ£¬¸ù¾ÝÓû§Ö®¼äµÄÏàËÆÐÔ×ö³öÍÆ¼ö£»

2.Item-based CF: »ùÓÚItemµÄЭͬ¹ýÂË£¬Í¨¹ýÓû§¶Ô²»Í¬ItemµÄÆÀ·ÖÀ´ÆÀ²âItemÖ®¼äµÄÏàËÆÐÔ£¬¸ù¾ÝItemÖ®¼äµÄÏàËÆÐÔ×ö³öÍÆ¼ö£»

3.Model-based CF: ÒÔÄ£ÐÍΪ»ù´¡µÄЭͬ¹ýÂË£¨Model-based Collaborative Filtering£©ÊÇÏÈÓÃÀúÊ·×ÊÁϵõ½Ò»¸öÄ£ÐÍ£¬ÔÙÓôËÄ£ÐͽøÐÐÔ¤²âÍÆ¼ö¡£

ÎÊÌâÃèÊö

ÊäÈëÊý¾Ý¸ñʽ£ºUid£¬ItemId£¬Rating £¨Óû§Uid¶ÔItemIdµÄÆÀ·Ö£©¡£

Êä³öÊý¾Ý£ºÃ¿¸öItemIdÏàËÆÐÔ×î¸ßµÄǰN¸öItemId¡£

ÓÉÓÚÆª·ùÏÞÖÆ£¬ÕâÀïÎÒÃÇֻѡÔñ»ùÓÚItemµÄЭͬ¹ýÂËËã·¨½â¾öÕâ¸öÀý×Ó¡£

Ëã·¨Âß¼­£º»ùÓÚItemµÄЭͬ¹ýÂËËã·¨µÄ»ù±¾¼ÙÉèΪÁ½¸öÏàËÆµÄItem»ñµÃͬһ¸öÓû§µÄºÃÆÀµÄ¿ÉÄÜÐԽϸߡ£Òò´Ë£¬¸ÃËã·¨Ê×ÏȼÆËãÓû§¶ÔÎïÆ·µÄϲºÃ³Ì¶È£¬È»ºó¸ù¾ÝÓû§µÄϲºÃ¼ÆËãItemÖ®¼äµÄÏàËÆ¶È£¬×îºóÕÒ³öÓëÿ¸öItem×îÏàËÆµÄǰN¸öItem¡£¸ÃËã·¨µÄÏêϸÃèÊöÈçÏ£º

1.¼ÆËãÓû§Ï²ºÃ£º²»Í¬Óû§¶ÔItemµÄÆÀ·ÖÊýÖµ¿ÉÄÜÏà²î½Ï´ó£¬Òò´ËÐèÒªÏȶÔÿ¸öÓû§µÄÆÀ·Ö×ö¶þÔª»¯´¦Àí£¬ÀýÈç¶ÔÓÚijһÓû§¶ÔijһItemµÄÆÀ·Ö´óÓÚÆä¸ø³öµÄƽ¾ùÆÀ·ÖÔò±ê¼ÇΪºÃÆÀ1£¬·ñÔòΪ²îÆÀ0¡£

2.¼ÆËãItemÏàËÆÐÔ£º²ÉÓÃJaccardϵÊý×÷Ϊ¼ÆËãÁ½¸öItemµÄÏàËÆÐÔ·½·¨¡£ÏÁÒåJaccardÏàËÆ¶ÈÊʺϼÆËãÁ½¸ö¼¯ºÏÖ®¼äµÄÏàËÆ³Ì¶È£¬¼ÆËã·½·¨ÎªÁ½¸ö¼¯ºÏµÄ½»¼¯³ýÒÔÆä²¢¼¯£¬¾ßÌåµÄ·ÖΪÒÔÏÂÈý²½¡£

1¡¢ItemºÃÆÀÊýͳ¼Æ£¬Í³¼ÆÃ¿¸öItemµÄºÃÆÀÓû§Êý¡£

2¡¢ItemºÃÆÀ¼üÖµ¶Ôͳ¼Æ£¬Í³¼ÆÈÎÒâÁ½¸öÓйØÁªItemµÄÏàͬºÃÆÀÓû§Êý¡£

3¡¢ItemÏàËÆÐÔ¼ÆË㣬¼ÆËãÈÎÒâÁ½¸öÓйØÁªItemµÄÏàËÆ¶È¡£

ÕÒ³ö×îÏàËÆµÄǰN¸öItem¡£ÕâÒ»²½ÖУ¬ItemµÄÏàËÆ¶È»¹ÐèÒª¹éÒ»»¯ºóÕûºÏ£¬È»ºóÇó³öÿ¸öItem×îÏàËÆµÄǰN¸öItem£¬¾ßÌåµÄ·ÖΪÒÔÏÂÈý²½¡£

1.ItemÏàËÆÐÔ¹éÒ»»¯¡£

2.ItemÏàËÆÐÔÆÀ·ÖÕûºÏ¡£

3.»ñȡÿ¸öItemÏàËÆÐÔ×î¸ßµÄǰN¸öItem¡£

»ùÓÚMapReduceµÄʵÏÖ·½°¸

ʹÓÃMapReduce±à³ÌÄ£ÐÍÐèҪΪÿһ²½ÊµÏÖÒ»¸öMapReduce×÷Òµ£¬Ò»¹²´æÔÚ°üº¬Æß¸öMapRduce×÷Òµ¡£Ã¿¸öMapReduce×÷Òµ¶¼°üº¬MapºÍReduce£¬ÆäÖÐMap´ÓHDFS¶ÁÈ¡Êý£¬Êä³öÊý¾Ýͨ¹ýShuffle°Ñ¼üÖµ¶Ô·¢Ë͵½Reduce£¬Reduce½×¶ÎÒÔ<key£¬Iterator<value>>×÷ΪÊäÈ룬Êä³ö¾­¹ý´¦ÀíµÄ¼üÖµ¶Ôµ½HDFS¡£ÆäÔËÐÐÔ­ÀíÈçͼËùʾ:

Æß¸öMapReduce×÷ÒµÒâζ×ÅÐèÒªÆß´Î¶ÁÈ¡ºÍдÈëHDFS£¬¶øËüÃǵÄÊäÈëÊä³öÊý¾Ý´æÔÚ¹ØÁª£¬Æß¸ö×÷ÒµÊäÈëÊä³öÊý¾Ý¹ØÏµÈçͼËùʾ¡£

»ùÓÚMapReduceʵÏÖ´ËËã·¨´æÔÚÒÔÏÂÎÊÌ⣺

1.ΪÁËʵÏÖÒ»¸öÒµÎñÂß¼­ÐèҪʹÓÃÆß¸öMapReduce×÷Òµ£¬Æß¸ö×÷Òµ¼äµÄÊý¾Ý½»»»Í¨¹ýHDFSÍê³É£¬Ôö¼ÓÁËÍøÂçºÍ´ÅÅ̵ĿªÏú¡£

2.Æß¸ö×÷Òµ¶¼ÐèÒª·Ö±ðµ÷¶Èµ½¼¯ÈºÖÐÔËÐУ¬Ôö¼ÓÁËGaia¼¯ÈºµÄ×ÊÔ´µ÷¶È¿ªÏú¡£

3.MR2ºÍMR3ÖØ¸´¶ÁÈ¡ÏàͬµÄÊý¾Ý£¬Ôì³ÉÈßÓàµÄHDFS¶Áд¿ªÏú¡£

ÕâЩÎÊÌâµ¼ÖÂ×÷ÒµÔËÐÐʱ¼ä´ó´óÔö³¤£¬×÷Òµ³É±¾Ôö¼Ó¡£

»ùÓÚSparkµÄʵÏÖ·½°¸

Ïà±ÈÓëMapReduce±à³ÌÄ£ÐÍ£¬SparkÌṩÁ˸ü¼ÓÁé»îµÄDAG£¨Directed Acyclic Graph£© ±à³ÌÄ£ÐÍ£¬²»½ö°üº¬´«Í³µÄmap¡¢reduce½Ó¿Ú£¬»¹Ôö¼ÓÁËfilter¡¢flatMap¡¢unionµÈ²Ù×÷½Ó¿Ú£¬Ê¹µÃ±àдSpark³ÌÐò¸ü¼ÓÁé»î·½±ã¡£Ê¹ÓÃSpark±à³Ì½Ó¿ÚʵÏÖÉÏÊöµÄÒµÎñÂß¼­ÈçͼËùʾ¡£

Ïà¶ÔÓÚMapReduce£¬SparkÔÚÒÔÏ·½ÃæÓÅ»¯ÁË×÷ÒµµÄÖ´ÐÐʱ¼äºÍ×ÊԴʹÓá£

1.DAG±à³ÌÄ£ÐÍ¡£Í¨¹ýSparkµÄDAG±à³ÌÄ£ÐÍ¿ÉÒÔ°ÑÆß¸öMapReduce¼ò»¯ÎªÒ»¸öSpark×÷Òµ¡£Spark»á°Ñ¸Ã×÷Òµ×Ô¶¯ÇзÖΪ°Ë¸öStage£¬Ã¿¸öStage°üº¬¶à¸ö¿É²¢ÐÐÖ´ÐеÄTasks¡£StageÖ®¼äµÄÊý¾Ýͨ¹ýShuffle´«µÝ¡£×îÖÕÖ»ÐèÒª¶ÁÈ¡ºÍдÈëHDFSÒ»´Î¡£¼õÉÙÁËÁù´ÎHDFSµÄ¶Áд£¬¶ÁдHDFS¼õÉÙÁË70%¡£

2.Spark×÷ÒµÆô¶¯ºó»áÉêÇëËùÐèµÄExecutor×ÊÔ´£¬ËùÓÐStageµÄTasksÒÔÏ̵߳ķ½Ê½ÔËÐУ¬¹²ÓÃExecutors£¬Ïà¶ÔÓÚMapReduce·½Ê½£¬SparkÉêÇë×ÊÔ´µÄ´ÎÊý¼õÉÙÁ˽ü90%¡£

3.SparkÒýÈëÁËRDD£¨Resilient Distributed Dataset£©Ä£ÐÍ£¬ÖмäÊý¾Ý¶¼ÒÔRDDµÄÐÎʽ´æ´¢£¬¶øRDD·Ö²¼´æ´¢ÓÚslave½ÚµãµÄÄÚ´æÖУ¬Õâ¾Í¼õÉÙÁ˼ÆËã¹ý³ÌÖжÁд´ÅÅ̵ĴÎÊý¡£RDD»¹ÌṩÁËCache»úÖÆ£¬ÀýÈç¶ÔÉÏͼµÄrdd3½øÐÐCacheºó£¬rdd4ºÍrdd7¶¼¿ÉÒÔ·ÃÎÊrdd3µÄÊý¾Ý¡£Ïà¶ÔÓÚMapReduce¼õÉÙMR2ºÍMR3ÖØ¸´¶ÁÈ¡ÏàͬÊý¾ÝµÄÎÊÌâ¡£

Ч¹û¶Ô±È

²âÊÔʹÓÃÏàͬ¹æÄ£µÄ×ÊÔ´£¬ÆäÖÐMapReduce·½Ê½°üº¬200¸öMapºÍ100¸öReduce£¬Ã¿¸öMapºÍReduceÅäÖÃ4GµÄÄڴ棻 ÓÉÓÚSpark²»ÔÙÐèÒªReduce×ÊÔ´£¬¶øMapReduceÖ÷ÒªÂß¼­ºÍ×ÊÔ´ÏûºÄÔÚMap¶Ë£¬Òò´ËʹÓÃ200ºÍ400¸öExecutor×ö²âÊÔ£¬Ã¿¸öExecutor°üº¬4GÄÚ´æ¡£²âÊÔ½á¹ûÈçϱíËùʾ£¬ÆäÖÐÊäÈë¼Ç¼Լ38ÒÚÌõ¡£

¶Ô±È½á¹û±íµÄµÚÒ»Ðк͵ڶþÐУ¬SparkÔËÐÐЧÂʺͳɱ¾Ïà¶ÔÓÚMapReduce·½Ê½¼õÉٷdz£Ã÷ÏÔ£¬ÆäÖУ¬DAGÄ£ÐͼõÉÙÁË70%µÄHDFS¶Áд¡¢cache¼õÉÙÖØ¸´Êý¾ÝµÄ¶ÁÈ¡£¬ÕâÁ½¸öÓÅ»¯¼´ÄܼõÉÙ×÷ÒµÔËÐÐʱ¼äÓÖÄܽµµÍ³É±¾£»¶ø×ÊÔ´µ÷¶È´ÎÊýµÄ¼õÉÙÄÜÌá¸ß×÷ÒµµÄÔËÐÐЧÂÊ¡£¶Ô±È½á¹û±íµÄµÚ¶þÐк͵ÚÈýÐУ¬Ôö¼ÓÒ»±¶µÄExecutorÊýÄ¿£¬×÷ÒµÔËÐÐʱ¼ä¼õÉÙÔ¼50%£¬³É±¾Ôö¼ÓÔ¼25%£¬´ÓÕâ¸ö½á¹û¿´µ½£¬Ôö¼ÓExecutor×ÊÔ´ÄÜÓÐЧµÄ¼õÉÙ×÷ÒµµÄÔËÐÐʱ¼ä£¬µ«²¢Ã»ÓÐ×öµ½ÍêÈ«ÏßÐÔÔö¼Ó¡£ÕâÊÇÒòΪÿ¸öTaskµÄÔËÐÐʱ¼ä²¢²»ÊÇÍêÈ«ÏàµÈµÄ£¬ ÀýÈçijЩtask´¦ÀíµÄÊý¾ÝÁ¿±ÈÆäËûtask¶à£»Õâ¿ÉÄܵ¼ÖÂStageµÄ×îºóʱ¿ÌijЩTaskδ½áÊø¶øÎÞ·¨Æô¶¯ÏÂÒ»¸öStage£¬ÁíÒ»·½Ãæ×÷ÒµÊÇÒ»Ö±Õ¼ÓÐExecutorµÄ£¬Õâʱºò»á³öÏÖһЩExecutor¿ÕÏеÄ×´¿ö£¬ÓÚÊǵ¼ÖÂÁ˳ɱ¾µÄÔö¼Ó¡£

   
4749 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ


²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí


GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí