±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚppvke.com
£¬±¾ÎĽéÉÜÁ˹úÄÚÍâ´óÊý¾Ý»úÆ÷ѧϰϵͳµÄ»ù±¾¸ÅÄî¡¢»ù±¾Ñо¿ÎÊÌâ¡¢¼¼ÊõÌØÕ÷¡¢ÏµÍ³·ÖÀàÒÔ¼°µäÐÍϵͳ¡£
|
|

ҪʵÏÖ¸ßЧµÄ´óÊý¾Ý»úÆ÷ѧϰ£¬ÐèÒª¹¹½¨Ò»¸öÄÜͬʱ֧³Ö»úÆ÷ѧϰËã·¨Éè¼ÆºÍ´ó¹æÄ£Êý¾Ý´¦ÀíµÄÒ»Ì廯´óÊý¾Ý»úÆ÷ѧϰϵͳ¡£Ñо¿Éè¼Æ¸ßЧ¡¢¿ÉÀ©Õ¹ÇÒÒ×ÓÚʹÓõĴóÊý¾Ý»úÆ÷Ñ§Ï°ÏµÍ³ÃæÁÙÖî¶à¼¼ÊõÌôÕ½¡£½üÄêÀ´£¬´óÊý¾ÝÀ˳±µÄÐËÆð£¬Íƶ¯ÁË´óÊý¾Ý»úÆ÷ѧϰµÄѸÃÍ·¢Õ¹£¬Ê¹´óÊý¾Ý»úÆ÷ѧϰϵͳ³ÉΪ´óÊý¾ÝÁìÓòµÄÒ»¸öÈȵãÑо¿ÎÊÌâ¡£½éÉÜÁ˹úÄÚÍâ´óÊý¾Ý»úÆ÷ѧϰϵͳµÄ»ù±¾¸ÅÄî¡¢»ù±¾Ñо¿ÎÊÌâ¡¢¼¼ÊõÌØÕ÷¡¢ÏµÍ³·ÖÀàÒÔ¼°µäÐÍϵͳ£»ÔÚ´Ë»ù´¡ÉÏ£¬½øÒ»²½½éÉÜÁ˱¾ÊµÑéÊÒÑо¿Éè¼ÆµÄÒ»¸ö¿çƽ̨ͳһ´óÊý¾Ý»úÆ÷ѧϰϵͳ¡ª¡ªOctopus£¨´óÕÂÓ㣩¡£
1 ´óÊý¾Ý»úÆ÷ѧϰϵͳÑо¿±³¾°
½üÄêÀ´£¬´óÊý¾Ý¼¼ÊõÔÚÈ«Çò·¢Õ¹Ñ¸ÃÍ£¬ÏÆÆðÁ˾޴óµÄÑо¿Èȳ±£¬ÒýÆðÈ«ÇòÒµ½ç¡¢Ñ§Êõ½çºÍ¸÷¹úÕþ¸®µÄ¸ß¶È¹Ø×¢¡£Ëæ×żÆËã»úºÍÐÅÏ¢¼¼ÊõµÄѸÃÍ·¢Õ¹ºÍÆÕ¼°Ó¦Óã¬ÐÐÒµÓ¦ÓÃÊý¾Ý³Ê±¬Õ¨ÐÔÔö³¤¡£¶¯éü´ïµ½Êý°ÙTBÉõÖÁÊýPB¹æÄ£µÄÐÐÒµ/ÆóÒµ´óÊý¾ÝÒѾԶԶ³¬³öÁË´«Í³¼ÆËã¼¼ÊõºÍÐÅϢϵͳµÄ´¦ÀíÄÜÁ¦¡£Óë´Ëͬʱ£¬´óÊý¾ÝÍùÍùÒþº¬×źܶàÔÚСÊý¾ÝÁ¿Ê±²»¾ß±¸µÄÉî¶È֪ʶºÍ¼ÛÖµ£¬´óÊý¾ÝÖÇÄÜ»¯·ÖÎöÍÚ¾ò½«ÎªÐÐÒµ/ÆóÒµ´øÀ´¾Þ´óµÄÉÌÒµ¼ÛÖµ£¬ÊµÏÖ¶àÖָ߸½¼ÓÖµµÄÔöÖµ·þÎñ£¬´Ó¶øÌáÉýÐÐÒµ/ÆóÒµÉú²ú¹ÜÀí¾ö²ßˮƽºÍ¾¼ÃÐ§Òæ¡£
´óÊý¾Ý·ÖÎöÍÚ¾ò´¦ÀíÖ÷Òª·ÖΪ¼òµ¥·ÖÎöºÍÖÇÄÜ»¯¸´ÔÓ·ÖÎöÁ½´óÀà¡£¼òµ¥·ÖÎöÖ÷Òª²ÉÓÃÀàËÆÓÚ´«Í³Êý¾Ý¿âOLAPµÄ´¦Àí¼¼ÊõºÍ·½·¨£¬ÓÃSQLÍê³É¸÷ÖÖ³£¹æµÄ²éѯͳ¼Æ·ÖÎö£»¶ø´óÊý¾ÝµÄÉî¶È¼ÛÖµ½öͨ¹ý¼òµ¥·ÖÎöÊÇÄÑÒÔ·¢Ïֵģ¬Í¨³£ÐèҪʹÓûùÓÚ»úÆ÷ѧϰºÍÊý¾ÝÍÚ¾òµÄÖÇÄÜ»¯¸´ÔÓ·ÖÎö²ÅÄÜʵÏÖ¡£
»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöÊǽ«´óÊý¾Ýת»»³ÉÓÐÓÃ֪ʶµÄ¹Ø¼ü¼¼Êõ£¬²¢ÇÒÓÐÑо¿±íÃ÷£¬ÔںܶàÇé¿öÏ£¬´¦ÀíµÄÊý¾Ý¹æÄ£Ô½´ó£¬»úÆ÷ѧϰģÐ͵ÄЧ¹û»áÔ½ºÃ[1~3]¡£Ä¿Ç°£¬¹úÄÚÍâÒµ½çºÍѧÊõ½çר¼ÒÆÕ±éÈÏͬµÄ¹ÛµãÊÇ£¬Ô½À´Ô½¶àµÄº£Á¿Êý¾Ý×ÊÔ´¼ÓÉÏÔ½À´Ô½Ç¿´óµÄ¼ÆËãÄÜÁ¦£¬ÒѾ³ÉÎªÍÆ¶¯´óÊý¾Ýʱ´úÈ˹¤ÖÇÄܼ¼ÊõºÍÓ¦Ó÷¢Õ¹µÄ¶¯Á¦£¬½«»ùÓÚ´óÊý¾ÝµÄ»úÆ÷ѧϰºÍÈ˹¤ÖÇÄÜÍÆÉÏÁËÐÂÒ»ÂÖ·¢Õ¹À˳±£¬ÈôóÊý¾Ý»úÆ÷ѧϰ£¨bigdata
machine learning£©³ÉΪȫÇòÒµ½çºÍѧÊõ½ç¸ß¶È¹Ø×¢µÄÈȵãÑо¿ÁìÓò¡£Ëæ×Å´óÊý¾Ýʱ´úµÄÀ´ÁÙ£¬Google¡¢Facebook¡¢Î¢Èí¡¢°Ù¶È¡¢ÌÚѶµÈ¹úÄÚÍâÖøÃûÆóÒµ¾ù·×·×³ÉÁ¢×¨ÃŵĻùÓÚ´óÊý¾ÝµÄ»úÆ÷ѧϰÓëÈ˹¤ÖÇÄÜÑз¢»ú¹¹£¬ÉîÈëϵͳµØÑо¿»ùÓÚ´óÊý¾ÝµÄ»úÆ÷ѧϰºÍÖÇÄÜ»¯¼ÆËã¼¼Êõ¡£
ÓÉÓÚ´óÊý¾Ý»úÆ÷ѧϰºÍÊý¾ÝÍÚ¾òµÈÖÇÄܼÆËã¼¼ÊõÔÚ´óÊý¾ÝÖÇÄÜ»¯·ÖÎö´¦ÀíÓ¦ÓÃÖоßÓм«ÆäÖØÒªµÄ×÷Óã¬ÔÚ2014Äê12ÔÂÖйú¼ÆËã»úѧ»á£¨CCF£©´óÊý¾Ýר¼ÒίԱ»áÉϰÙλ´óÊý¾ÝÏà¹ØÁìÓòѧÕߺͼ¼Êõר¼ÒÍ¶Æ±ÍÆÑ¡³öµÄ¡°2015Äê´óÊý¾ÝÊ®´óÈȵ㼼ÊõÓë·¢Õ¹Ç÷ÊÆ¡±ÖУ¬½áºÏ»úÆ÷ѧϰµÈÖÇÄܼÆËã¼¼ÊõµÄ´óÊý¾Ý·ÖÎö¼¼Êõ±»ÍÆÑ¡Îª´óÊý¾ÝÁìÓòµÚÒ»´óÑо¿ÈȵãºÍ·¢Õ¹Ç÷ÊÆ[4]¡£
ÓÉÓÚ´óÊý¾Ý»úÆ÷ѧϰÔÚ¾ßÌåʵÏÖʱͨ³£ÐèҪʹÓ÷ֲ¼Ê½ºÍ²¢Ðл¯´óÊý¾Ý´¦Àí¼¼Êõ·½·¨£¬Ò²ÓÐÈ˽«´óÊý¾Ý»úÆ÷ѧϰ³ÆÎª¡°·Ö²¼Ê½»úÆ÷ѧϰ¡±£¨distributedmachine
learning£©»ò¡°´ó¹æÄ£»úÆ÷ѧϰ¡±£¨large-scale machine learning£©¡£
´óÊý¾Ý»úÆ÷ѧϰ£¬²»½öÊÇ»úÆ÷ѧϰºÍËã·¨Éè¼ÆÎÊÌ⣬»¹ÊÇÒ»¸ö´ó¹æÄ£ÏµÍ³ÎÊÌâ¡£Ëü¼È²»Êǵ¥´¿µÄ»úÆ÷ѧϰ£¬Ò²²»Êǵ¥´¿µÄ´óÊý¾Ý´¦Àí¼¼ÊõËùÄܽâ¾öµÄÎÊÌ⣬¶øÊÇÒ»¸öÍ¬Ê±Éæ¼°»úÆ÷ѧϰºÍ´óÊý¾Ý´¦ÀíÁ½¸öÖ÷Òª·½ÃæµÄ½»²æÐÔÑо¿¿ÎÌâ¡£Ò»·½Ã棬ËüÈÔÈ»ÐèÒª¼ÌÐø¹Ø×¢»úÆ÷ѧϰµÄ·½·¨ºÍËã·¨±¾Éí£¬¼´ÐèÒª¼ÌÐøÑо¿ÐµĻò¸Ä½øµÄѧϰģÐͺÍѧϰ·½·¨£¬ÒÔ²»¶ÏÌáÉý·ÖÎöÔ¤²â½á¹ûµÄ׼ȷÐÔ£»Óë´Ëͬʱ£¬ÓÉÓÚÊý¾Ý¹æÄ£¾Þ´ó£¬´óÊý¾Ý»úÆ÷ѧϰ»áʹ¼¸ºõËùÓеĴ«Í³´®Ðл¯»úÆ÷ѧϰËã·¨ÄÑÒÔÔڿɽÓÊܵÄʱ¼äÄÚÍê³É¼ÆË㣬´Ó¶øÊ¹µÃËã·¨ÔÚʵ¼ÊÓ¦Óó¡¾°ÖÐʧЧ¡£Òò´Ë£¬´óÊý¾Ý»úÆ÷ѧϰÔÚ¹Ø×¢»úÆ÷ѧϰ·½·¨ºÍËã·¨Ñо¿µÄͬʱ£¬»¹Òª¹Ø×¢ÈçºÎ½áºÏ·Ö²¼Ê½ºÍ²¢Ðл¯µÄ´óÊý¾Ý´¦Àí¼¼Êõ£¬ÒÔ±ãÔڿɽÓÊܵÄʱ¼äÄÚÍê³É¼ÆË㡣ΪÁËÄÜÓÐЧÍê³É´óÊý¾Ý»úÆ÷ѧϰ¹ý³Ì£¬ÐèÒªÑо¿²¢¹¹½¨¼æ¾ß»úÆ÷ѧϰºÍ´ó¹æÄ£·Ö²¼²¢ÐмÆËã´¦ÀíÄÜÁ¦µÄÒ»Ì廯ϵͳ¡£
Òò´Ë£¬ÁìÓòÄÚ³öÏÖÁË¡°´óÊý¾Ý»úÆ÷ѧϰϵͳ¡±»òÕß¡°·Ö²¼Ê½Ñ§Ï°ÏµÍ³¡±µÄ¸ÅÄ²¢½øÐÐÁËÖî¶à´óÊý¾Ý»úÆ÷ѧϰϵͳµÄÑо¿Ó뿪·¢¹¤×÷¡£
2 ´óÊý¾Ý»úÆ÷ѧϰϵͳµÄ¼¼ÊõÌØÕ÷
²Î¿¼ÎÄÏ×[5,6]רÃŽéÉÜÁË´óÊý¾Ý»úÆ÷ѧϰϵͳµÄ¼¼ÊõÌØÕ÷¡£
Èçͼ1Ëùʾ£¬Ò»¸ö´óÊý¾Ý»úÆ÷ѧϰϵͳ»áÍ¬Ê±Éæ¼°»úÆ÷ѧϰºÍ´óÊý¾Ý´¦ÀíÁ½·½ÃæµÄÖî¶à¸´ÔÓ¼¼ÊõÎÊÌ⣬°üÀ¨»úÆ÷ѧϰ·½ÃæµÄÄ£ÐÍ¡¢ÑµÁ·¡¢¾«¶ÈÎÊÌâÒÔ¼°´óÊý¾Ý´¦Àí·½ÃæµÄ·Ö²¼Ê½´æ´¢¡¢²¢Ðл¯¼ÆËã¡¢ÍøÂçͨÐÅ¡¢¾Ö²¿ÐÔ¼ÆËã¡¢ÈÎÎñµ÷¶È¡¢ÈÝ´íµÈÖî¶àÒòËØ¡£ÕâЩÒòËØ»¥ÏàÓ°Ï죬½»Ö¯ÔÚÒ»Æð£¬´ó´óÔö¼ÓÁËϵͳÉè¼ÆµÄ¸´ÔÓÐÔ¡£Òò´Ë£¬´óÊý¾Ý»úÆ÷ѧϰÒѾ²»½ö½öÊÇÒ»¸öËã·¨Ñо¿ÎÊÌ⣬¶øÊÇÐèÒªÕë¶Ô´óÊý¾Ý¼¯£¬¿¼ÂǴӵײãµÄ´óÊý¾Ý·Ö²¼´æ´¢µ½ÖвãµÄ´óÊý¾Ý²¢Ðл¯¼ÆË㣬ÔÙµ½ÉϲãµÄ»úÆ÷ѧϰËã·¨£¬Éè¼ÆÒ»ÖÖÒ»Ì廯µÄÖ§³Åϵͳ£¬ÐγÉÒ×ÓÚΪÊý¾Ý·ÖÎö³ÌÐòÔ±ºÍ»úÆ÷ѧϰÑо¿ÕßʹÓõġ¢ÍêÕûµÄ´óÊý¾Ý»úÆ÷ѧϰϵͳ¡£

ͼ1 ´óÊý¾Ý»úÆ÷ѧϰϵͳËùÉæ¼°µÄ¸´ÔÓÒòËØ[5]
Ò»¸öÀíÏëµÄ´óÊý¾Ý»úÆ÷ѧϰϵͳͨ³£ÐèÒª¾ß±¸ÒÔϼ¸¸ö·½ÃæµÄ¼¼ÊõÒªËØºÍÌØÕ÷[5~7]¡£
Ó¦µ±´ÓÕû¸öѧϰµÄÉúÃüÖÜÆÚ/Á÷Ë®ÏßÀ´¿¼ÂÇ£¬°üÀ¨ÑµÁ·Êý¾ÝºÍÌØÕ÷µÄÌáÈ¡¡¢²¢ÐÐѧϰËã·¨µÄÉè¼Æ¡¢ÑµÁ·Ä£ÐͺͲÎÊýµÄ²éѯ¹ÜÀí¡¢·Ö²¼Ê½ÑµÁ·¼ÆËã¹ý³Ì£¬¶¼Ó¦ÔÚÒ»¸öÒ»Ì廯µÄѧϰϵͳƽ̨ÉÏÍê³É¡£
Ó¦Ìṩ¶àÖÖ²¢ÐÐѵÁ·Ä£Ê½£¬Ö§³Ö²»Í¬µÄ»úÆ÷ѧϰģÐͺÍËã·¨¡£
ÐèÒªÌṩ¶Ôµ×²ãϵͳµÄ³éÏó£¬ÒÔʵÏֶԵײãͨÓôóÊý¾Ý´¦ÀíÒýÇæµÄÖ§³Ö£¬²¢ÌṩÊý¾Ý¿ÆÑ§Öг£Óõıà³ÌÓïÑÔ½Ó¿Ú£¨API£©¡£
Ó¦¸ÃÓµÓпª·ÅºÍ·á¸»µÄÉú̬¡¢¹ã·ºµÄÓ¦ÓúͿìËٵĽø»¯ÄÜÁ¦¡£
ÔÚÉÏÊö¼¼ÊõÌØÕ÷ÖУ¬Ò»¸ö·Ç³£ÖØÒªµÄ˼·ÊÇ£¬ÒªÍ¨¹ýϵͳ³éÏóÀ´½µµÍϵͳÉè¼ÆµÄ¸´ÔÓÐÔ¡£Èçͼ2Ëùʾ£¬Ò»¸öÉè¼ÆÁ¼ºÃµÄ´óÊý¾Ý»úÆ÷ѧϰϵͳ£¬Ó¦µ±Í¨¹ý¶¨ÒåÌØ¶¨µÄ»úÆ÷ѧϰ±à³Ì¼ÆËãºÍϵͳ³éÏó½Ó¿Ú£¬½«Éϲã»úÆ÷ѧϰºÍµ×²ã·Ö²¼Ê½ÏµÍ³½âñÀ´£¬½«»úÆ÷ѧϰʵÏÖÔÚÏÖÓеĴóÊý¾Ý¼ÆËãÆ½Ì¨Ö®ÉÏ£¬¶ø²»ÐèÒª¿¼Âǵײãϵͳ²ãÃæµÄÒòËØ£¬ÒÔ´ËʵÏֵײã´óÊý¾Ý´¦ÀíÆ½Ì¨¶ÔÉϲãÓû§µÄ͸Ã÷»¯£¬ÈÃÉϲãÓû§´ÓÖî¶àµ×²ãµÄ·Ö²¼ºÍ²¢Ðл¯´óÊý¾Ý±à³Ì¼ÆËãϸ½ÚÖнâ·Å³öÀ´£¬ÒÔ±ãËûÃÇÖÂÁ¦ÓÚÉϲãµÄ»úÆ÷ѧϰģÐͺÍËã·¨µÄÉè¼ÆÊµÏÖ¡£Í¨¹ý±à³Ì¼ÆËãºÍϵͳ³éÏó²ãAPI£¬ÏòÉÏÌṩ¸÷ÖÖ»úÆ÷ѧϰ±à³Ì¼ÆËã½Ó¿ÚÒÔ¼°Ñ§Ï°Ä£ÐͺÍѵÁ·Êý¾ÝµÄ±íʾ£¬ÏòÏÂÓɵײã·Ö²¼Ê½ÏµÍ³¸ºÔð´¦Àí²¢Ìṩ¸ßЧµÄ·Ö²¼ºÍ²¢Ðл¯¼ÆËãʵÏÖ¡£

ͼ2 ´óÊý¾Ý»úÆ÷ѧϰϵͳ³éÏó
3 ´óÊý¾Ý»úÆ÷ѧϰϵͳµÄÖ÷ÒªÑо¿ÎÊÌâ
ÖªÃûµÄApache Flink´óÊý¾Ý·ÖÎöϵͳÑо¿ÕßÔÚ2014ÄêVLDB»áÒéÖ÷Ìⱨ¸æºÍÂÛÎÄÖÐ[8]£¬´ÓÊý¾Ý·ÖÎöµÄ¸´Ôӳ̶ȺÍÊý¾Ý¹æÄ£µÄά¶È£¬¿¼²ìÁËÏÖÓеÄÏà¹ØÑо¿¹¤×÷ºÍϵͳ£¬Èçͼ3Ëùʾ¡£ÏÖÓеÄϵͳҪôÖ÷ÒªÓÃÓÚС¹æÄ£¸´ÔÓ·ÖÎö£¬ÒªÃ´Ö÷ÒªÓÃÓÚ´ó¹æÄ£µÄ¼òµ¥Í³¼Æ·ÖÎö£¬È±ÉټȾßÓи´ÔÓÊý¾Ý·ÖÎöÄÜÁ¦ÓÖ¾ßÓÐÇ¿´óµÄ´óÊý¾Ý´¦ÀíÄÜÁ¦µÄ´óÊý¾Ý·ÖÎöϵͳ£»ÎÄÕÂ×÷ÕßÉõÖÁÈÏΪ£¬¶ÔÓÚÐÐÒµ´óÊý¾Ý·ÖÎöÈËÔ±¶øÑÔ£¬ÏÖÓеŤ¾ß»¹´¦ÓÚ¡°Ê¯Æ÷ʱ´ú¡±[8]¡£

ͼ3 Ñо¿ÕßApache FlinkÌá³öµÄ·ÖÎöά¶ÈºÍÑо¿ÏÖ×´[8]
Óë´Ëͬʱ£¬ÖøÃûµÄUC Berkeley AMPLabÔÚÑо¿»ùÓÚSparkµÄ»úÆ÷ѧϰ¿âMLBase[9]ʱ£¬´Ó¼ÆËãÐÔÄܺÍϵͳÒ×ÓÃÐÔÁ½¸öÖØÒªÎ¬¶È£¬¿¼²ìÁËÏÖÓеĴóÊý¾Ý»úÆ÷ѧϰÑо¿¹¤×÷ºÍϵͳ£¬Èçͼ4Ëùʾ¡£ÃæÏò»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöʱ£¬Ä¿Ç°ÒÑÓеŤ×÷ºÍϵͳ£¬¾ø´ó¶àÊý¶¼Î´ÄÜͬʱ¾ß±¸´ó¹æÄ£·ÖÎö´¦ÀíÄÜÁ¦ºÍÁ¼ºÃµÄϵͳÒ×ÓÃÐÔ¡£

ͼ4 SparkϵͳÑо¿ÕßÌá³öµÄ·ÖÎöά¶ÈºÍÑо¿ÏÖ×´[9]
Òò´Ë£¬´óÊý¾Ý»úÆ÷ѧϰ³ýÁËÐèÒª¼ÌÐø¹Ø×¢ºÍÑо¿´«Í³ÒâÒåÉϵÄѧϰ·½·¨ºÍËã·¨ÎÊÌ⣬ÒÔ²»¶ÏÌá¸ßѧϰ¾«¶ÈÍ⣬»¹ÐèÒªÖØµã¹Ø×¢ºÍÑо¿½â¾ö´óÊý¾Ý³¡¾°ÏÂËùÌØÓеÄÁ½´ó¼¼ÊõÎÊÌ⣺
Ò»ÊÇ´óÊý¾Ý¸´ÔÓ·ÖÎöʱµÄ¼ÆËãÐÔÄÜÎÊÌ⣻
¶þÊÇ´óÊý¾Ý»úÆ÷ѧϰϵͳµÄ¿É±à³ÌÐÔºÍÒ×ÓÃÐÔÎÊÌâ¡£
£¨1£©´óÊý¾Ý¸´ÔÓ·ÖÎöʱµÄ¼ÆËãÐÔÄÜÎÊÌâ
ÔÚ¼ÆËãÐÔÄÜ·½Ã棬´ó¹æÄ£Êý¾Ý¼¯¸øºÜ¶à´«Í³´®ÐеĻúÆ÷ѧϰºÍÊý¾Ý·ÖÎöÍÚ¾òËã·¨´øÀ´ºÜ´óµÄÌôÕ½£¬ÐèÒªÑо¿½â¾öÃæÏò´óÊý¾Ý»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöµÄ¸ßЧ¼ÆËã·½·¨ºÍϵͳ¡£ÔÚÊý¾Ý¼¯½ÏСʱ£¬ºÜ¶à¸´ÔÓ¶ÈÔÚO(n
log n)¡¢O(n2)ÉõÖÁO(n3)µÄ´«Í³´®Ðл¯»úÆ÷ѧϰËã·¨¶¼¿ÉÒÔÓÐЧ¹¤×÷£»µ«µ±Êý¾Ý¹æÄ£Ôö³¤µ½¼«´ó³ß¶Èʱ£¬ÏÖÓеĴ®Ðл¯Ëã·¨½«»¨·ÑÄÑÒÔ½ÓÊܵÄʱ¼ä¿ªÏú£¬Ê¹µÃËã·¨ÔÚʵ¼ÊÓ¦Óó¡¾°ÖÐʧЧ£¬Õâ¸øÒµ½ç´óÁ¿Êµ¼ÊµÄ´óÊý¾Ý¸´ÔÓ·ÖÎöÓ¦ÓôøÀ´ºÜ¶àеÄÌôÕ½ºÍÎÊÌâ[10]¡£ÕýÈç΢ÈíÈ«Çò¸±×ܲÃÂ½Ææ²©Ê¿ÔÚ2012ÄêÖ¸³öµÄ£¬¡°´óÊý¾ÝʹµÃÏÖÓеĴó¶àÊý»úÆ÷ѧϰË㷨ʧЧ£¬ÃæÏò´óÊý¾Ý´¦ÀíʱÕâЩËã·¨¶¼ÐèÒªÖØÐ´¡±¡£
ÔÚ´óÐÍ»¥ÁªÍøÆóÒµ£¬´ó¹æÄ£»úÆ÷ѧϰËã·¨¾³£ÓÃÓÚ´¦ÀíÊ®ÒÚÖÁǧÒÚ¼¶±ðµÄÑù±¾ÒÔ¼°Ò»ÒÚÖÁÊýÊ®ÒÚÊý¾ÝÌØÕ÷µÄ´ó¹æÄ£Êý¾Ý¼¯¡£ÀýÈ磬GoogleÖøÃûµÄSetiÌ«¿ÕËÑË÷ÏîÄ¿ÐèÒª½øÐиߴïǧÒÚÑù±¾¡¢Ê®ÒÚÌØÕ÷Êý¾ÝµÄ´ó¹æÄ£»úÆ÷ѧϰ£¬ÌÚѶPeacockÖ÷ÌâÄ£ÐÍ·ÖÎöϵͳÐèÒª½øÐиߴïÊ®ÒÚÎĵµ¡¢°ÙÍò´Ê»ã¡¢°ÙÍòÖ÷ÌâµÄÖ÷ÌâÄ£ÐÍѵÁ·£¬¶ø½öÒ»¸ö°ÙÍò´Ê»ã³ËÒÔ°ÙÍòÖ÷ÌâµÄ¾ØÕ󣬯äÊý¾Ý´æ´¢Á¿¼´¸ß´ï3TB£¬Èç¹ûÔÙ¿¼ÂÇÊ®ÒÚÎĵµ³ËÒÔ°ÙÍòÖ÷ÌâµÄ¾ØÕ󣬯äÊý¾ÝÁ¿¸üÊǸߴï3
PB[3]¡£Èç´Ë´óÁ¿µÄѵÁ·Ñù±¾£¬¼ÓÉÏ»úÆ÷ѧϰËã·¨±¾ÉíµÄ¸´ÔÓÐÔ£¬µ¼ÖÂÄÑÒÔÔÚ´«Í³µÄ´®Ðл¯¼ÆËãÆ½Ì¨ÉÏ¡¢ÔڿɽÓÊܵÄʱ¼äÄÚÍê³ÉÈç´Ë¾Þ´óµÄ¸´ÔÓ·ÖÎö¼ÆËãÈÎÎñ£¬Òò¶ø´øÀ´ÁËÊ®·ÖÍ»³öµÄ¼ÆËãÐÔÄÜÎÊÌâ¡£Òò´Ë£¬´óÊý¾Ý»úÆ÷ѧϰËã·¨ºÍϵͳÐèÒªÑо¿½â¾ö´ó¹æÄ£³¡¾°Ï¸ßЧµÄ·Ö²¼Ê½ºÍ²¢Ðл¯Ëã·¨Éè¼ÆÒÔ¼°¼ÆËãÎÊÌ⣬ÒÔ±£Ö¤Ëã·¨ºÍϵͳ¿ÉÒÔÔڿɽÓÊܵÄʱ¼äÄÚÍê³É´ó¹æÄ£Êý¾ÝµÄѧϰºÍѵÁ·¡£
£¨2£©´óÊý¾Ý»úÆ÷ѧϰϵͳµÄ¿É±à³ÌÐÔºÍÒ×ÓÃÐÔÎÊÌâ
ΪÁËÂú×ã¼±¾çÔö³¤µÄ´óÊý¾Ý´¦ÀíÐèÇ󣬹ýÈ¥¼¸ÄêÀ´£¬È«ÇòÍÆ³öÁËHadoop[11]ºÍSpark[12]µÈ¶àÖÖÖ÷Á÷´óÊý¾Ý´¦Àí¼¼ÊõºÍϵͳƽ̨¡£ÕâЩÖ÷Á÷¼¼ÊõºÍƽ̨µÄ³öÏÖΪ´óÊý¾ÝµÄ´¦ÀíÌṩÁËÁ¼ºÃµÄ¼¼ÊõÊֶκͷ½·¨¡£HadoopµÄ³öÏÖʹµÃ´óÊý¾Ý´¦Àí¼¼ÊõºÍƽ̨´ÓÎÞµ½ÓУ¬¶ø»ùÓÚÄÚ´æ¼ÆËãµÄSparkϵͳµÄ³öÏÖʹµÃ´óÊý¾Ý·ÖÎö¼ÆËã´ÓÂýµ½¿ì¡£È»¶ø£¬ÏÖÓеĴóÊý¾Ý´¦Àí¼¼ÊõºÍϵͳƽ̨¶¼´æÔںܴóµÄÒ×ÓÃÐÔÎÊÌ⣬ÄÑÒÔΪÆÕͨµÄ³ÌÐòÔ±ÕÆÎÕºÍʹÓã¬ÓÈÆäÊÇÃæÏò¸´ÔӵĴó¹æÄ£»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöʱ£¬Õâ¸öÎÊÌâ¸üΪͻ³ö¡£
´óÊý¾Ý»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöµÄ²¢Ðл¯³ÌÐòÉè¼Æ£¬±È´«Í³µÄ´®Ðл¯Ëã·¨Éè¼Æ¸´ÔӺܶࡢ¶Ô³ÌÐòÔ±µÄ¼¼ÊõÒªÇó¸ü¸ß¡£¶ÔÓÚÆÕͨµÄÊý¾Ý·ÖÎö³ÌÐòÔ±»ò»úÆ÷ѧϰÑо¿ÕßÀ´Ëµ£¬ÔÚÌØ¶¨µÄ´óÊý¾Ý±à³ÌÄ£ÐÍºÍÆ½Ì¨Ï½øÐв¢Ðл¯»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨Éè¼Æ£¬ÐèÒªÕÆÎպܶà·Ö²¼Ê½ÏµÍ³±³¾°ÖªÊ¶ºÍ²¢ÐгÌÐòÉè¼Æ¼¼ÇÉ£¬Õâ¶ÔËûÃÇÀ´ËµÄѶȽϴ󣬾³£Òª°Ñʵ¼Ê¹¤×÷µÄ´ó²¿·Öʱ¼ä»¨·ÑÔڵײ㸴ÔӵIJ¢Ðл¯ºÍ·Ö²¼Ê½±à³ÌºÍµ÷ÊÔÉÏ£¬¸øÉϲãÊý¾Ý·ÖÎöºÍËã·¨Éè¼Æ¹¤×÷´øÀ´ºÜ´óµÄ²»±ãºÍÀ§ÄÑ£¬µ¼ÖÂÆÕͨ³ÌÐòÔ±ÓëÏÖÓеĸ÷ÖÖ´óÊý¾Ý´¦ÀíÆ½Ì¨Ö®¼ä´æÔÚÒ»¸öÄÑÒÔÓâÔ½µÄºè¹µ[8£¬9£¬13~15]¡£
ÁíÒ»·½Ã棬¼´Ê¹¶ÔÓÚÖîÈçGoogle¡¢°Ù¶ÈµÈ¾ßÓÐÇ¿´ó¼¼ÊõÁ¦Á¿µÄ»¥ÁªÍøÆóÒµ³ÌÐòÔ±À´Ëµ£¬Ëæ×ŶàÖÖ´óÊý¾Ý´¦ÀíÓë±à³Ìƽ̨µÄ³öÏÖÒÔ¼°¸÷ÖÖ·ÖÎöÓ¦ÓÃÎÊÌâÐèÇóµÄ²»Í¬£¬ËûÃÇÒ²³£³£ÐèÒªÕë¶Ô²»Í¬Æ½Ì¨£¬Öظ´±àдºÍ²âÊÔ¸÷ÖÖ²¢Ðл¯»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨£¬ÕâÖÖÔÚ¶à¸ö´óÊý¾Ýƽ̨ÉÏÖØ¸´±àдºÍ³¢ÊÔÊýÒ԰ټƵĻúÆ÷ѧϰËã·¨µÄ¹¤×÷¸ºµ£Ò²ºÜÖØ¡£ÕýÈç°¢Àï°Í°Í¼¯ÍŸ±×ܲᢸ߼¶Ñо¿Ô±ÕÂÎÄáÔ²©Ê¿ÔÚÖйú¼ÆËã»úѧ»áµÚÒ»½ì´óÊý¾ÝѧÊõ»áÒéÉÏËùÖ¸³öµÄ£¬¡°ÌÔ±¦ÄÚ²¿ÐèҪʹÓõIJ¢Ðл¯»úÆ÷ѧϰËã·¨ºÜ¶à£¬Ëæ×ÅÐÂÐ͵IJ¢Ðл¯¼ÆËã¿ò¼ÜµÄÖð²½³öÏÖ£¬ÐèÒª½«ÆäÖð¸öʵÏÖµ½MPI¡¢MapReduce¡¢SparkµÈ²¢ÐмÆËã¿ò¼ÜÉÏ£»Èç¹ûºóÃæ³öÏÖ¸üÏȽøµÄ¿ò¼Ü£¬ÓÖÃæÁÙ׎«ÕâЩËã·¨ÖØÐÂʵÏÖÒ»±éµÄ¸ºµ£¡±¡£
Õë¶Ô´óÊý¾ÝµÄ»úÆ÷ѧϰºÍÊý¾Ý·ÖÎö£¬ÏÖÓеĴóÊý¾Ý´¦Àí¼¼ÊõºÍƽ̨´æÔںܴóµÄ¿É±à³ÌÐÔºÍÒ×ÓÃÐÔÎÊÌ⣬µ¼ÖÂÆÕͨ³ÌÐòÔ±ºÍ³£¹æµÄ³ÌÐòÉè¼Æ·½·¨ÓëÏÖÓеĴóÊý¾Ý·ÖÎö´¦Àí±à³Ì¼¼ÊõÖ®¼ä´æÔÚ×ÅÒ»¸öºÜ´óµÄºè¹µ¡£ÕýÈçCCF´óÊý¾Ýר¼ÒίԱ»á¡¶2015Äê´óÊý¾Ý·¢Õ¹Ç÷ÊÆÔ¤²â±¨¸æ¡·Ö¸³öµÄÄÇÑù£¬¡°ÓÉÓÚÏÖÓеĴóÊý¾Ýƽ̨Ò×ÓÃÐԲ¶ø´¹Ö±Ó¦ÓÃÐÐÒµµÄÊý¾Ý·ÖÎöÓÖÉæ¼°ÁìÓòר¼Ò֪ʶºÍÁìÓò½¨Ä££¬Ä¿Ç°ÔÚ´óÊý¾ÝÐÐÒµ·ÖÎöÓ¦ÓÃÓëͨÓõĴóÊý¾Ý¼¼ÊõÖ®¼ä´æÔںܴóµÄºè¹µ£¬È±ÉÙÏ໥µÄ½»²æÈںϡ±[4]¡£
Òò´Ë£¬´óÊý¾Ý»úÆ÷ѧϰϵͳҪ½â¾öµÄÒ»¸öÖØÒªÎÊÌâÊÇ£¬Èò»Ò×ʹÓõĴóÊý¾Ý´¦Àí¼¼ÊõºÍƽ̨±äµÃÒ×ÓÚʹÓã¬ÒªÌîÆ½ÆÕͨ³ÌÐòÔ±ºÍ³£¹æ³ÌÐòÉè¼Æ·½·¨ÓëÏÖÓеĴóÊý¾Ý´¦Àí¼¼ÊõÖ®¼äµÄºè¹µ£¬¾¡¿ÉÄÜÈÃÆÕͨ³ÌÐòÔ±Ó󣹿³ÌÐòÉè¼Æ·½·¨±ãÄÜÓÐЧÍê³É´óÊý¾ÝµÄ¸´ÔÓ·ÖÎö´¦Àí¡£
¸ù¾ÝGoogle SetiÏîÄ¿Ñо¿ÈËÔ±ÔÚ¿ª·¢Êµ¼ÊµÄ´óÐÍ»úÆ÷ѧϰϵͳÉϵľÑ飬ÔÚÃæÏò´óÊý¾Ýʱ£¬¿¼Âǵ½Óû§¿ª·¢Ð§ÂÊÎÊÌ⣬ϵͳÒ×ÓÃÐÔÓëÌá¸ß»úÆ÷ѧϰ¾«¶È¼¸ºõͬµÈÖØÒª£¬ÓÐʱÉõÖÁ±È¾«¶ÈÎÊÌâ¸üÎªÖØÒª£¬¡°Ò²Ðí¹ýȥѧÊõ½çºÜÉÙ¹ØÐÄÉè¼ÆÒ»¸ö¾«¶ÈÉԲµ«ÓиüºÃÒ×ÓÃÐÔºÍϵͳ¿É¿¿ÐÔµÄѧϰËã·¨£¬µ«ÔÚʵ¼ÊÓ¦ÓÃÖУ¬Õâ»áÌåÏÖ³ö·Ç³£ÖØÒªµÄ¼ÛÖµ¡±¡£
4 ´óÊý¾Ý»úÆ÷ѧϰϵͳµÄ·ÖÀà
½ü¼¸ÄêÀ´£¬Ëæ×Å´óÊý¾ÝµÄÀ´ÁÙ£¬»ùÓÚ´óÊý¾ÝµÄ»úÆ÷ѧϰ·½·¨ºÍϵͳ³ÉΪҵ½çºÍѧÊõ½çÆÕ±é¹Ø×¢µÄÑо¿Èȵ㡣ΪÁËÌṩÓÐЧµÄ´óÊý¾Ý»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöÊֶΣ¬Òµ½çºÍѧÊõ½çÔÚ³¢ÊÔ¶àÖÖ;¾¶ºÍ·½·¨£¬ÔÚ²»Í¬µÄ²¢ÐмÆËãÄ£ÐÍºÍÆ½Ì¨Ï£¬ÔÚʵ¼ÊµÄÊý¾Ý·ÖÎöÍÚ¾òÖеõ½Ó¦Óá£
½ÏÔç³öÏÖÒÔ¼°ÏÖÓеÄһЩ´óÊý¾Ý»úÆ÷ѧϰËã·¨ºÍϵͳ´ó¶à²ÉÓýÏΪµÍ²ãµÄ½ôñîºÏ¡¢¶¨ÖÆ»¯·½·¨¹¹½¨¡£ÕâЩËã·¨ºÍϵͳ´ó¶¼Õë¶ÔÌØ¶¨µÄÓ¦Óã¬Ñ¡ÔñÌØ¶¨µÄƽ̨ºÍÄ£ÐÍ£¬Õë¶ÔÌØ¶¨µÄ»úÆ÷ѧϰģÐͺÍÌØ¶¨µÄ¼ÆËãģʽ£¬´Ó´®ÐÐËã·¨ºÍÔÐ͵½·Ö²¼²¢Ðл¯Ëã·¨ºÍÔÐÍ£¬×ԵײãÏòÉϽøÐнôñîºÏºÍ¶¨ÖÆ»¯µÄ¿ª·¢ºÍÓÅ»¯¡£¾¡¹ÜÕâ¿ÉÒÔ×î´ó»¯ÀûÓÃϵͳ×ÊÔ´ÒÔ´ïµ½×î¼ÑµÄÐÔÄÜ£¬µ«ÕâÖֵͲãµÄ½ôñîºÏ¶¨ÖÆ»¯ÊµÏÖ·½·¨£¬½«Ñ§Ï°ºÍϵͳ»ìÔÓÔÚÒ»Æð£¬ÊµÏÖÄѶȴó£¬Ëã·¨ºÍϵͳҲÄÑÒÔµ÷ÊÔºÍά»¤[5,6]¡£
´ÓǰÊöµÄ´óÊý¾Ý»úÆ÷Ñ§Ï°ÏµÍ³ÌØÕ÷À´¿´£¬Ò»¸öÉè¼ÆÁ¼ºÃµÄ´óÊý¾Ý»úÆ÷ѧϰϵͳӦµ±¿¼ÂǸ߲ãµÄϵͳ²ã³éÏó£¬ÏòÉÏΪ³ÌÐòÔ±ÌṩÒ×ÓÚʹÓõĸ߲ã»úÆ÷ѧϰËã·¨±à³Ì½Ó¿Ú£¬ÏòÏ»ùÓÚÏÖÓеÄͨÓû¯´óÊý¾Ý´¦ÀíÆ½Ì¨Ìṩ´ó¹æÄ£Êý¾ÝµÄ·Ö²¼ºÍ²¢Ðл¯¼ÆËãÄÜÁ¦¡£Îª´Ë£¬½üÄêÀ´ÒѾ¿ªÊ¼³öÏÖ»ùÓÚ¸÷Öָ߲ã±à³Ì¼ÆËãºÍϵͳ³éÏóÉè¼Æ´óÊý¾Ý»úÆ÷ѧϰϵͳµÄÑо¿¹¤×÷¡£
Ôڸ߲ã±à³Ì¼ÆËãºÍϵͳ³éÏóÉÏ£¬Ä¿Ç°µÄ´óÊý¾Ý»úÆ÷ѧϰϵͳ´óÖ¿ɷÖΪ3ÖÖÖ÷ÒªµÄ±à³Ì¼ÆËãºÍϵͳ³éÏó·½·¨£¬·Ö±ðÊÇ»ùÓÚ¾ØÕóÄ£Ð͵ijéÏó¡¢»ùÓÚͼģÐ͵ijéÏóÒÔ¼°»ùÓÚ²ÎÊýÄ£Ð͵ijéÏó¡£
£¨1£©»ùÓÚ¾ØÕóÄ£Ð͵ijéÏó
»ùÓÚ¾ØÕóÄ£Ð͵ijéÏó»ùÓÚÕâÑùÒ»¸öÊÂʵ£º´ó¶àÊý»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨¶¼¿ÉÒÔ±íʾΪ¾ØÕó»òÏòÁ¿´úÊý¼ÆË㣬Òò´Ë¿ÉÒÔ¹¹½¨Ò»¸ö»ùÓÚ¾ØÕó¼ÆËãÄ£Ð͵ĻúÆ÷ѧϰϵͳ£¬ÔÊÐí³ÌÐòÔ±Ö±½Ó»ùÓÚ¾ØÕó¼ÆËã¿ìËÙ¹¹½¨»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨¡£×îµäÐ͵ĻùÓÚ¾ØÕóÄ£Ð͵ĴóÊý¾Ý»úÆ÷ѧϰϵͳÉв»¶à¼û£¬UCBerkeley
AMP LabÍÆ³öµÄSpark MLlibÊÇÒ»¸öÊÔͼ»ùÓÚ¾ØÕó¼ÆËãÄ£Ð͹¹½¨Éϲã¸÷ÖÖ»úÆ÷ѧϰËã·¨µÄϵͳ£»×î½üSparkϵͳÌá³öÁËÒ»¸öDataFrameµÄÊý¾Ý³éÏó»úÖÆ£¬ÔÊÐí»ùÓÚ¾ØÕóºÍ±íµÈÊý¾Ý½á¹¹£¬Éè¼Æ¸÷ÖÖ»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨¡£´ËÍ⣬¹úÄÚÓÉÄϾ©´óѧPASA´óÊý¾ÝʵÑéÊÒÑо¿¿ª·¢µÄ¡°Octopus£¨´óÕÂÓ㣩¡±ÏµÍ³ÊÇÒ»¸öÒÔ´ó¹æÄ£¾ØÕóÄ£ÐÍΪÖÐÐÄµÄ¿çÆ½Ì¨´óÊý¾Ý»úÆ÷ѧϰϵͳ¡£
£¨2£©»ùÓÚͼģÐ͵ijéÏó
ËäÈ»¾ØÕó¿ÉÒÔ±íʾ´ó¶àÊý»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨£¬µ«¶ÔÓÚһЩ»ùÓÚͼģÐ͵ÄÉç»áÍøÂç·ÖÎöÎÊÌ⣬»ùÓÚ¾ØÕóÄ£ÐͽøÐмÆËã²¢·Ç×îÓÐЧµÄ·½·¨£¨ËäȻͼºÍ¾ØÕó±íʾ¾ßÓÐÀíÂÛÉϵĵȼÛÐÔ£©¡£¾ØÕóÄ£ÐͶÔÓÚͼÊý¾ÝµÄ±í´ï²»ÈçͼģÐÍ£¬ÇÒͨ³£»áÃæÁÙÏ¡ÊèÐÔµÄÎÊÌâ¡£Òò´Ë£¬Ò»Ð©Éç»áÍøÂç·ÖÎöÀàµÄʵ¼ÊÓ¦ÓÃÐèÒª»ùÓÚ¸üΪ¸ßЧµÄͼģÐ͵ÄѧϰºÍ·ÖÎö·½·¨£¬Îª´Ë³öÏÖÁËÏàÓ¦µÄ»ùÓÚͼģÐ͵ĴóÊý¾Ý»úÆ÷ѧϰϵͳ¡£×îµäÐ͵ĻùÓÚͼģÐ͵ÄϵͳÊÇÃÀ¹ú¿¨ÄÍ»ù÷¡´óѧ£¨CMU£©ÍƳöµÄGraphLabϵͳ[16]ÒÔ¼°»ùÓÚSpark¹¹½¨µÄGraphXϵͳ¡£
£¨3£©»ùÓÚ²ÎÊýÄ£Ð͵ijéÏó
»ùÓÚ¾ØÕóÄ£ÐͺÍͼģÐ͵ÄϵͳÖ÷ÒªÊÇ´ÓÊý¾Ý±íʾģÐ͵ĽǶÈÀ´¹¹½¨ÏµÍ³£¬ÕâÁ½ÖÖ·½·¨µÄÌØµãÊǸü½Ó½üÓÚʵ¼ÊѧϰÎÊÌâÖÐ×ÔÈ»»¯µÄÊý¾Ý±íʾºÍ¼ÆËãÄ£ÐÍ£¬Òò´Ë¶ÔÓÚÊý¾Ý·ÖÎöÈËÔ±·½±ã¿ìËٵع¹½¨»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨±È½Ï×ÔÈ»ºÍÖ±¹Û¡£µ«ÊÇ£¬´óÊý¾Ý»úÆ÷ѧϰ³£³£»¹Ðè񻃾¼°´ó¹æÄ£Ä£ÐÍ£¬ÀýÈ磬½ü¼¸Ä귢չѸÃ͵ÄÉî¶ÈÉñ¾ÍøÂçËã·¨£¬³£³£ÐèҪͨ¹ý¶Ô´óÁ¿Ä£ÐͲÎÊýµÄµ÷ÓÅÀ´Ìá¸ßѧϰ¾«¶È£¬ÔÚÕâÖÖÇé¿öÏ£¬ÉÏÊöÁ½ÖÖ·½·¨»áȱÉÙÁé»îÐÔ£¬ÄÑÒÔÈÃËã·¨Éè¼ÆÕßͨ¹ý¿ØÖÆÄ£ÐͲÎÊý½øÐÐËã·¨ÓÅ»¯¡£Îª´Ë£¬ÓÐÑо¿ÕßÌá³öÁËÒ»ÖÖ»ùÓÚÄ£ÐͲÎÊýµÄ³éÏó·½·¨£¬¼´°ÑËùÓлúÆ÷ѧϰËã·¨³éÏóΪ¶Ôѧϰ¹ý³ÌÖÐÒ»×éÄ£ÐͲÎÊýµÄ¹ÜÀíºÍ¿ØÖÆ£¬²¢Ìṩ¶Ô´ó¹æÄ£³¡¾°Ï´óÁ¿Ä£ÐͲÎÊýµÄÓÐЧ¹ÜÀíºÍ·ÃÎÊ¡£Ä¿Ç°²ÎÊýÄ£ÐÍ×îµäÐ͵ķ½·¨ÊÇ×î³õÓÉÃÀ¹ú¿¨ÄÍ»ù÷¡´óѧµÄLiMuµÈÈËÌá³öµÄ¡¢ºóÔںܶàϵͳÖеõ½½øÒ»²½Ó¦ÓõÄParameter
Server[17£¬18]¡£
ʵ¼ÊµÄϵͳҲ¿ÉÄÜ»áÊÇÒ»ÖÖ¼æÓÐÉÏÊö¶àÖÖÀàÐ͵ĻìºÏϵͳ¡£´ËÍ⣬ҲÓв»ÉÙϵͳ´Ó²¢ÐÐģʽ½Ç¶ÈÀ´Çø·Ö£¬·ÖΪÊý¾Ý²¢ÐкÍÄ£ÐͲ¢ÐÐÁ½ÖÖ·½Ê½£¬ÇÒһЩϵͳֻÌṩÊý¾Ý²¢Ðз½Ê½£¬ÁíһЩϵͳ»áͬʱÌṩÊý¾Ý²¢ÐкÍÄ£ÐͲ¢ÐÐÁ½ÖÖ·½Ê½¡£
5 µäÐÍ´óÊý¾Ýѧϰ·½·¨ºÍϵͳ½éÉÜ
5.1 »ùÓÚÌØ¶¨Æ½Ì¨µÄ¶¨ÖÆÊ½²¢Ðл¯»úÆ÷ѧϰËã·¨ÓëËã·¨¿â
Ëæ×ÅHadoop MapReduce[11]ºÍSpark[12]´óÊý¾Ý²¢ÐмÆËãÓë±à³Ìƽ̨µÄ³öÏֺͳÉÊìÓ¦Óã¬HadoopºÍSparkÒѾ³ÉΪĿǰ´óÊý¾Ý·ÖÎö´¦ÀíµÄÖ÷Á÷ƽ̨¡£ÎªÁ˽â¾ö´ó¹æÄ£»úÆ÷ѧϰÎÊÌ⣬ÓдóÁ¿µÄÑо¿¹¤×÷ÖÂÁ¦ÓÚ»ùÓÚHadoopMapReduceºÍSparkÒÔ¼°´«Í³µÄMPI²¢ÐмÆËã¿ò¼Ü£¬Íê³É¸÷ÖÖ²¢Ðл¯»úÆ÷ѧϰºÍÊý¾ÝÍÚ¾òËã·¨µÄÉè¼Æ¡£ÔÚÖîÈçTPDS¡¢JPDC¡¢IPDPS¡¢ICPP¡¢ICPADS¡¢IEEEBigDataµÈ´óÊý¾ÝºÍ·Ö²¼²¢ÐмÆËãÁìÓòµÄÖªÃûÆÚ¿¯ºÍ¹ú¼Ê»áÒéÉÏ£¬ÕâЩ²¢Ðл¯Ëã·¨Ñо¿¹¤×÷²»Ê¤Ã¶¾Ù¡£ÓÉÓÚÐèҪͬʱ¹Ë¼°Éϲã»úÆ÷ѧϰËã·¨Éè¼ÆºÍµ×²ã·Ö²¼²¢Ðл¯´óÊý¾Ý´¦Àíϵͳ²ãϸ½Ú£¬×ÜÌå¶øÑÔ£¬»ùÓÚÉÏÊö²»Í¬µÄ²¢Ðл¯±à³Ì·½·¨ºÍƽ̨½øÐв¢Ðл¯»úÆ÷ѧϰËã·¨Éè¼Æ£¬ÈÔÊôÓÚÒ»ÖÖרҵÐÔ½ÏÇ¿¡¢¼¼ÊõÒªÇó½Ï¸ß¡¢¹ý³Ì½ÏΪ·±ËöµÄ¹¤×÷£¬ÄÑÒÔΪȱÉÙ·Ö²¼Ê½ºÍ²¢ÐмÆËã֪ʶ±³¾°µÄÆÕͨ³ÌÐòԱʹÓá£
ΪÁËÈÃÆÕͨÊý¾Ý·ÖÎö³ÌÐòÔ±Äܹ»Ö±½ÓʹÓò¢Ðл¯»úÆ÷ѧϰËã·¨£¬Ä¿Ç°ÆÕ±éµÄÒ»ÖÖ×ö·¨ÊÇ£¬ÔÚ²»Í¬µÄ²¢Ðл¯¼ÆËãÆ½Ì¨ÉÏ£¬ÓÉרҵµÄ»úÆ÷ѧϰËã·¨Éè¼ÆÕßʵÏÖ²¢Ðл¯»úÆ÷ѧϰËã·¨£¬Ìṩһ¸ö»úÆ÷ѧϰºÍÊý¾ÝÍÚ¾ò¹¤¾ß°üÒÔ¹©Ò»°ãµÄÊý¾Ý·ÖÎöºÍÓ¦Óÿª·¢³ÌÐòÔ±Ö±½ÓʹÓã¬ÈçHadoopϵÄMahoutÒÔ¼°Spark»·¾³ÏµÄMLlib¡£
MahoutµÄÖ÷ÒªÈÎÎñÊÇÉè¼Æ²¢ÌṩһЩ»ùÓÚMapReduceµÄ¿ÉÀ©Õ¹µÄ»úÆ÷ѧϰÁìÓò¾µäËã·¨¿â£¬°üÀ¨¾ÛÀà¡¢·ÖÀà¡¢ÍÆ¼ö¹ýÂË¡¢Æµ·±ÏÍÚ¾òµÈ¡£ÕâЩ²¢Ðл¯Ëã·¨¶¼ÊÇ»ùÓÚHadoopMapReduceƽ̨Íê³ÉµÄ£¬Óû§¿ÉÖ±½Óµ÷ÓÃMahoutËã·¨¿âʵÏֺõÄËã·¨¡£È»¶ø£¬MahoutÌṩµÄ²¢Ðл¯»úÆ÷ѧϰËã·¨ÊýÁ¿ÓÐÏÞ£¬¶øÇÒ×÷Ϊ±ê×¼µÄÈí¼þ°ü£¬ÆäËùÌṩµÄËã·¨¼¸ºõ¶¼ÊDZê×¼µÄ£¬ÔÚËã·¨¾«¶ÈºÍÐÔÄÜÉϲ»Ò»¶¨ÄÜÂú×ãÓû§µÄÐèÒª¡£½øÒ»²½£¬MapReduceµÄÉè¼ÆÄ¿±êÊǽâ¾öÊý¾ÝÃܼ¯µ«¼ÆËãÂß¼Ïà¶Ô¼òµ¥µÄÅú´¦ÀíÎÊÌ⡣Ȼ¶ø£¬´ó¶àÊý»úÆ÷ѧϰËã·¨µÄ¼ÆËãÁ÷³Ì¶¼±È½Ï¸´ÔÓ£¬Ä£Ð͵ÄѵÁ·¹ý³ÌÍùÍùÐèÒª¶à´Îµü´ú¼ÆË㣨ÈçÌݶÈϽµËã·¨£©¡¢ÓÐÖмäÊý¾Ý¼¯ÐèÒª¹²ÏíµÈ¡£MapReduceÄ£ÐÍ´¦ÀíÕâÀàÎÊÌâʱ£¬¶îÍâµÄµ÷¶ÈºÍ³õʼ»¯¿ªÏúµ¼ÖÂÆä´¦ÀíÐÔÄÜÆ«µÍ¡£
ΪÁ˿˷þMapReduceÔÚ¼ÆËãÐÔÄÜÉϵÄȱÏÝ£¬²»¶ÏµØÓÐеIJ¢Ðл¯¼ÆËãÄ£ÐͺͿò¼Ü³öÏÖ£¬UCBerkeley
AMPʵÑéÊÒÍÆ³öµÄ¡¢Ä¿Ç°ÒѳÉΪApache¿ªÔ´ÏîÄ¿µÄSpark[12]ϵͳÊÇĿǰ×îÓÐÓ°ÏìÁ¦µÄ´óÊý¾Ý´¦ÀíÆ½Ì¨Ö®Ò»¡£SparkʹÓûùÓÚÄÚ´æ¼ÆËãµÄ²¢Ðл¯¼ÆËãÄ£ÐÍRDD£¨resilientdistributed
dataset£©[12]£¬ÌṩÁËÒ»¸öÇ¿´óµÄ·Ö²¼Ê½ÄÚ´æ²¢ÐмÆËãÒýÇæ£¬ÊµÏÖÁËÓÅÒìµÄ¼ÆËãÐÔÄÜ£¬Í¬Ê±»¹±£³ÖÓëHadoopƽ̨Ôڵײã·Ö²¼Ê½Êý¾Ý´æ´¢ÉϵļæÈÝÐÔ¡£ÔÚSparkÖ´ÐÐÒýÇæÉÏ£¬AMPʵÑéÊÒʵÏÖÁ˺ܶà»úÆ÷ѧϰËã·¨£¬²¢Öð²½ÕûÀí³ÉSparkϵÄÒ»¸ö»úÆ÷ѧϰËã·¨¿âÏîÄ¿MLlib¡£MLlibĿǰҲ°üº¬Ò»Ð©¾ØÕó²Ù×÷£¬²¢Ï£Íû»ùÓÚ¾ØÕóµÄ±íʾÉè¼Æ¿ª·¢Ò»Ð©Í³¼Æ°üºÍ»úÆ÷ѧϰËã·¨¿â¡£ÎªÁ˼ÓËÙÉÏ²ã¼ÆË㣬MLlibµ×²ãͨ¹ýBreezeʹÓÃÁËBLAS£¨basiclinear
algebra subprogram£©µ¥»úµÄ¾ØÕóº¯Êý¿â¡£BLASÊǺܶà¸ü¸ß²ãµÄÊýѧº¯Êý¿âºÍÊýѧ±à³ÌÓïÑÔ£¨ÈçLAPACKºÍMATLABµÈ£©µÄ»ù±¾¹¹³Éµ¥Ôª¡£BLASºÍLAPACKÊǵ±ÏÂÆÕ±éʹÓõÄÏßÐÔ´úÊýº¯Êý¿â£¬Ö÷Òª¶¨ÒåÁËһЩÏßÐÔ´úÊýÖг£ÓõÄÔËËã²Ù×÷ºÍ·½³ÌÇó½â¡¢¾ØÕó·Ö½âµÄº¯Êý¡£´ËÍ⣬»ùÓÚMLlibµÄ¹¤×÷»ù´¡£¬UCBerkeley»¹¼Æ»®Ñз¢MLBase[9]ÏîÄ¿£¬¸ÃÏîÄ¿Ôö¼ÓÁË»úÆ÷ѧϰģÐÍ×Ô¶¯Ñ¡ÔñºÍ²ÎÊý×Ô¶¯ÓÅ»¯µÈ¹¦ÄÜ£¬ÌṩÁËÒÔÄ¿±êΪµ¼ÏòµÄ¸ß²ã»úÆ÷ѧϰ·½·¨½Ó¿Ú¡£
Ìṩ»úÆ÷ѧϰËã·¨¿âÔÚÒ»¶¨³Ì¶ÈÉϼõÇáÁ˳ÌÐòÔ±½øÐлúÆ÷ѧϰËã·¨Éè¼ÆµÄ¸ºµ£¡£µ«¼´Ê¹Èç´Ë£¬³ÌÐòÔ±±àд³ÌÐòʱÈÔÈ»ÐèÒªÊìϤ¾ßÌåµÄ²¢Ðбà³Ì¼ÆËãÄ£ÐÍºÍÆ½Ì¨£¬¶øÇÒÓÉÓÚʵ¼ÊÊý¾Ý·ÖÎöÓ¦ÓõÄÐèÇó²»Í¬£¬ºÜ¶àʱºò¹¤¾ß°üËùÌṩµÄͨÓÃËã·¨ÔÚѧϰ¾«¶ÈºÍ¼ÆËãÐÔÄÜÉÏ¿ÉÄܲ»ÄÜÂú×ãÐèÇó£¬ÐèÒª³ÌÐòÔ±¶¨Öƺ͸ĽøÄ³¸ö²¢Ðл¯»úÆ÷ѧϰËã·¨»òÕß¿ª·¢ÐµÄËã·¨£¬Õâ¶ÔÆÕͨÊý¾Ý·ÖÎö³ÌÐòÔ±ÈÔÈ»ÊǺܴóµÄÌôÕ½¡£
5.2 ½áºÏ´«Í³Êý¾Ý·ÖÎöƽ̨µÄ´óÊý¾Ý»úÆ÷ѧϰϵͳ
ËäÈ»ÓÐÁË»ùÓÚ´óÊý¾Ý´¦ÀíÆ½Ì¨µÄ»úÆ÷ѧϰËã·¨Éè¼Æ·½·¨£¬Äܹ»½ÏºÃµØ½â¾öÒ»Ì廯µÄ´óÊý¾Ý´æ´¢¡¢¼ÆËãÒÔ¼°²¢Ðл¯Ëã·¨Éè¼ÆÎÊÌ⣬µ«½öÓлúÆ÷ѧϰϵͳÈÔÈ»²»Äܺܺõؽâ¾ö¸÷¸öƽ̨¶ÔÖÕ¶ËÓû§´æÔڵĿɱà³ÌÐÔºÍÒ×ÓÃÐÔ²»¹»µÄÎÊÌ⡣Ϊ´Ë£¬»¹ÐèÒª½øÒ»²½Ñо¿½â¾öÕâЩÎÊÌâ¡£
´Ó¿É±à³ÌÐÔºÍÒ×ÓÃÐԽǶÈÀ´Ëµ£¬¶ÔÓÚÐÐÒµÊý¾Ý·ÖÎöʦ£¬×îÊìϤʹÓõķÖÎöÓïÑԺͻ·¾³Í¨³£ÊÇR¡¢Python¡¢MATLABµÈϵͳ¡£RÊÇĿǰÔÚÊý¾Ý·ÖÎöÓ¦ÓÃÁìÓò×î¹ãΪʹÓõÄÊý¾Ý·ÖÎö¡¢Í³¼Æ¼ÆËã¼°ÖÆÍ¼µÄ¿ªÔ´Èí¼þϵͳ£¬ÌṩÁË´óÁ¿µÄרҵģ¿éºÍʵÓù¤¾ß¡£ÎªÁ˾¡¿ÉÄÜËõСRÓïÑÔ»·¾³ÓëÏÖÓдóÊý¾Ýƽ̨¼äµÄºè¹µ£¬¹¤Òµ½çºÍÑо¿½çÒѾ³¢ÊÔÔÚRÖÐÀûÓ÷ֲ¼Ê½²¢ÐмÆËãÒýÇæÀ´´¦Àí´óÊý¾Ý¡£×îÔçµÄ¹¤×÷ºÍϵͳRHadoop£¬ÊÇÓÉRevolutionAnalytics·¢ÆðµÄÒ»¸ö¿ªÔ´ÏîÄ¿£¬ÆäÄ¿±êÊǽ«Í³¼ÆÓïÑÔRÓëHadoop½áºÏÆðÀ´£¬Ä¿Ç°¸ÃÏîÄ¿°üÀ¨3¸öR
package£¨°ü£©£¬·Ö±ðΪ֧³ÖÓÃRÓïÑÔ±àдMapReduceÓ¦ÓõÄrmr¡¢ÓÃÓÚRÓïÑÔ·ÃÎÊHDFSµÄrhdfsÒÔ¼°ÓÃÓÚRÓïÑÔ·ÃÎÊHBaseµÄrhbase¡£ÆäÖУ¬HadoopÖ÷ÒªÓÃÀ´´æ´¢ºÍ´¦Àíµ×²ãµÄº£Á¿Êý¾Ý£¬ÓÃRÓïÑÔÌæ´úJavaÓïÑÔÍê³ÉMapReduceËã·¨µÄÉè¼ÆÊµÏÖ¡£
ÀàËÆµØ£¬UC Berkeley AMPʵÑéÊÒÔÚ2014Äê1ÔÂÒ²ÍÆ³öÁËÒ»¸ö³ÆÎªSparkRµÄÏîÄ¿¡£SparkRÒ²ÊÇ×÷Ϊһ¸öRµÄÀ©Õ¹°ü£¬ÎªRÓû§Ìṩһ¸öÇáÁ¿¼¶µÄ¡¢ÔÚR»·¾³ÀïʹÓÃSparkRDD
API±àд³ÌÐòµÄ½Ó¿Ú¡£ËüÔÊÐíÓû§ÔÚRµÄshell»·¾³Àï½»»¥Ê½µØÏòSpark¼¯ÈºÌá½»ÔËÐÐ×÷Òµ¡£
È»¶ø£¬Ä¿Ç°µÄRHadoopºÍSparkR¶¼»¹´æÔÚÒ»¸öͬÑùµÄÎÊÌ⣺ÈÔÒªÇóÓû§ÊìϤMapReduce»òSparkRDDµÄ±à³Ì¿ò¼ÜºÍ³ÌÐò½á¹¹£¬È»ºó½«×Ô¼ºµÄMapReduce»òSpark³ÌÐòʵÏÖµ½»ùÓÚRµÄ±à³Ì½Ó¿ÚÉÏ£¬ÕâºÍÔÚHadoop»òSparkÉÏдӦÓóÌÐòûÓÐÌ«´óµÄÇø±ð£¬Ö»ÊDZà³Ì½Ó¿ÚÓÃRÓïÑÔ·â×°ÁËһϡ£´ËÍ⣬ÕâЩ¹¤×÷¶¼ÊÇ»ùÓÚµ¥Ò»Æ½Ì¨£¬ÎÞ·¨½â¾ö¿çƽ̨ͳһ´óÊý¾Ý»úÆ÷ѧϰËã·¨Éè¼ÆµÄÎÊÌâ¡£
5.3 »ùÓÚÌØ¶¨Æ½Ì¨µÄ´óÊý¾Ý»úÆ÷ѧϰϵͳ
ΪÁ˿˷þǰÊö×ö·¨µÄȱÏÝ£¬½üÄêÀ´£¬Ñ§Êõ½çºÍÒµ½ç¿ªÊ¼³¢ÊÔ×ܽá»úÆ÷ѧϰËã·¨Éè¼ÆµÄ¹²Í¬ÌØÐÔ£¬½áºÏ´ó¹æÄ£Ñ§Ï°Ê±ËùÐèÒª¿¼Âǵĵײã·Ö²¼Ê½Êý¾Ý´æ´¢ºÍ²¢Ðл¯¼ÆËãµÈϵͳÎÊÌ⣬רÃÅÑо¿ÄÜͬʱ¼æ¹Ë²¢Ö§³Ö´óÊý¾Ý»úÆ÷ѧϰºÍ´óÊý¾Ý·Ö²¼²¢Ðд¦ÀíµÄÒ»Ì廯´óÊý¾Ý»úÆ÷ѧϰϵͳ¡£
ÔÚ¹úÄÚÍâµÄ»úÆ÷ѧϰºÍ´óÊý¾Ý¼¼Êõ·½ÃæµÄ»áÒéÖУ¬ÒѾƵ·±³öÏÖ´óÊý¾Ý»úÆ÷ѧϰϵͳÏà¹ØµÄÑо¿¹¤×÷£¬ÈçSparkMLlib¡¢IBMµÄSystemML¡¢Apache
Flink¡¢GraphLab¡¢Parameter Server¡¢PetuumµÈ£»´ËÍ⣬ÌÚѶ¡¢°Ù¶ÈµÈ¹úÄÚÖøÃû»¥ÁªÍøÆóÒµÒ²ÍÆ³öÁ˲»Í¬µÄÃæÏò´óÊý¾ÝµÄ·Ö²¼Ê½»úÆ÷ѧϰϵͳ£¬ÈçÌÚѶµÄPeacockºÍMariana´ó¹æÄ£»úÆ÷ѧϰϵͳ¡¢°Ù¶ÈµÄELFºÍ°Ù¶È»úÆ÷Ñ§Ï°ÔÆÆ½Ì¨BML¡£
£¨1£©Spark MLlib
MLLibÓëSpark»·¾³ÕûºÏºó¿ÉÍêÕû½â¾ö´óÊý¾ÝµÄ·Ö²¼Ê½´æ´¢¡¢²¢Ðл¯¼ÆËãÒÔ¼°ÉϲãµÄ»úÆ÷ѧϰËã·¨Éè¼ÆºÍʹÓÃÎÊÌ⣬Òò´Ë£¬¿É½«ÆäÊÓΪһ¸ö»ù±¾µÄ»úÆ÷ѧϰϵͳ¡£Ä¿Ç°ÆäÒѾÏòÉϲãÌṩ¶àÖÖÓÅ»¯·½·¨¡¢·ÖÀàËã·¨¡¢»Ø¹éËã·¨¡¢ÍƼöËã·¨¡¢¾ÛÀàËã·¨¡£µ«ÆäËã·¨ÊýÄ¿ºÍ½Ó¿ÚÓÐÏÞ£¬ÄÑÒÔÍêÈ«Âú×ãÓû§¸÷ÖÖ¸÷ÑùµÄÐèÇó£¬ÇÒ×÷Ϊһ¸öËã·¨¿â£¬Óû§ÄÑÒÔ¶ÔÄÚ²¿Ëã·¨½øÐÐÉî²ã¶¨ÖÆÓÅ»¯¡£Òò´Ë£¬ÆäÔÚÁé»îÐÔ·½ÃæÈÔÈ»´æÔÚ²»×ã¡£
£¨2£©SystemML
SystemML[14,15]ÊÇÓÉIBMWaston Research Center ºÍIBM Almaden
Research CenterÁªºÏÑз¢µÄÒ»¿î´óÊý¾Ýѧϰϵͳ¡£¶ÔÓû§ÌṩÁËÒ»¸öÀàËÆÓÚRÓïÑԵĸ߲ãÉùÃ÷ʽÓïÑÔ£¬»ùÓÚÕâÖÖÓïÑÔ±àдµÄ³ÌÐò¿ÉÒÔ±»×Ô¶¯±àÒëת»¯ÎªMapReduce×÷ÒµÔÚHadoop¼¯ÈºÉÏÔËÐС£ÕâÖָ߲ãÓïÑÔÌṩÁË´óÁ¿µÄ¼à¶½ºÍ·Ç¼à¶½µÄ»úÆ÷ѧϰËã·¨ËùÐèÒªµÄÏßÐÔ´úÊý²Ù×÷Ëã×Ó£¬°üÀ¨¸ß²ãËã×ÓHOP£¨high-leveloperator£©ºÍµ×²ãËã×ÓLOP£¨low-level
operator£©¡£SystemML×î´óµÄÓÅÊÆÊÇÆä¾ßÓнϺõĿɱà³ÌÐÔºÍÒ×ÓÃÐÔ£¬Óû§²»ÐèÒª¾ß±¸Èκηֲ¼Ê½ÏµÍ³µÄ¸ÅÄî»ò±à³Ì¾Ñ飬¼´¿ÉÀûÓÃÆäд³ö¿ÉÀ©Õ¹µÄ»úÆ÷ѧϰËã·¨£»Æä×î´óµÄȱµãÔÚÓÚµ×²ã¼ÆËãÆ½Ì¨µ¥Ò»£¬Ö»²ÉÓÃÁËMapReduce×÷Ϊµ×²ã·Ö²¼Ê½Ö´ÐÐÆ½Ì¨£¬¶øµ×²ãµÄMapReduce×÷Òµ±¾ÉíÖ´ÐÐÐÔÄܲ¢²»¸ß£¬½üÄêÀ´Ó¿ÏÖ³öµÄ¸ßЧ·Ö²¼Ê½¼ÆËã¿ò¼ÜÈçSpark¡¢FlinkµÈ£¬ÔÚÖÚ¶àÐÔÄÜÖ¸±êÉÏÔ¶Ô¶¸ßÓÚMapReduce¡£
£¨3£©Apache Flink
Apache Flink[19]ÊÇÓÉÅ·Ö޵ĶàÃûÑо¿ÕߺͶà¼Ò×ÊÖúµ¥Î»£¨ÈçEIT1ICT Labs¡¢DFG2¡¢IBM¡¢Oracle¡¢HPµÈ£©ÁªºÏÑз¢µÄÒ»¿î¿ªÔ´µÄ²¢Ðл¯Êý¾Ý·ÖÎöÈí¼þÕ»£¬ÏîÄ¿ÔçÆÚµÄÃû³ÆÊÇStratosphere¡£¾¹ýÒ»¶Îʱ¼äµÄ·¢Õ¹£¬Ä¿Ç°ÒѾ³ÉΪApache¿ªÔ´ÏîÄ¿¡£FlinkͬÑùÒâʶµ½£¬Êý¾Ý·ÖÎöÈËÔ±ÔÚ·Ö²¼Ê½ÏµÍ³Éϱàд´óÊý¾Ý·ÖÎöË㷨ʱ£¬ÐèÒªÓдóÁ¿µÄ¾«Á¦ºÄ·ÑÔÚ·Ö²¼Ê½³ÌÐòµ÷ÊÔÒÔ¼°µ×²ãµ÷ÓÅÉÏ¡£ÎªÁËʹÊý¾Ý·ÖÎöÈËÔ±Äܹ»ÔÚÎÞÐè¹Ë¼°¸÷ÖÖ²¢Ðл¯ÓÅ»¯ÎÊÌâµÄÇé¿öϾͿÉÒÔ½øÐÐÉî¶ÈÊý¾Ý·ÖÎö£¬FlinkÌṩÁËÒ»¿îÊý¾Ý·ÖÎöջʽÈí¼þ¡£ËüÏòÓû§ÌṩÁËÒ»ÖÖרÓõĽű¾Ê½ÓïÑÔMeteorScript£¬²¢ÇÒ»á×Ô¶¯½«»ùÓÚ¸ÃÓïÑÔ¿ª·¢µÄ³ÌÐòת»»µ½µ×²ãµÄ·Ö²¼Ê½¼ÆËãÆ½Ì¨NepheleÉÏ[20]¡£ÓÉÓÚÆäרÓÃÐÔÓïÑÔ²»¹»ÆÕ¼°£¬Ä¿Ç°ÏµÍ³¶ÔÓïÑÔ½Ó¿ÚÓÖ×öÁ˸ü¶àµÄÀ©³ä£¬Ö§³ÖJava¡¢ScalaµÈÓïÑÔ¡£FlinkÏîÄ¿µÄÓÅÊÆÔÚÓÚÆä´ÓÉϵ½ÏÂÌṩÁËÒ»ÕûÌ×ÍêÕûµÄջʽ½â¾ö·½°¸£¬ÊÔͼΪÓû§ÌṩÒ×ÓÚʹÓõÄÊý¾Ý·ÖÎöϵͳ£¬Í¬Ê±Í¨¹ýһЩ±àÒëÓÅ»¯Êֶξ¡¿ÉÄܵØÌáÉý³ÌÐòÖ´ÐеÄÐÔÄÜ£»ÆäȱµãÔÚÓÚÆäµ×²ãÊÇרÓõĵ¥Ò»»¯¼ÆËãÆ½Ì¨£¬ÓëĿǰÆÕ±éʹÓõÄÖ÷Á÷´óÊý¾Ýƽ̨HadoopºÍSparkÉÐδÄܼ¯³ÉʹÓã¬ÇÒÉϲãµÄÓïÑÔ½Ó¿Ú²ãҲûÓаüº¬ÏÖÔÚÊý¾Ý·ÖÎöʦ¹ãΪʹÓõÄR¡¢PythonµÈÓïÑÔ½Ó¿Ú¡£
£¨4£©GraphLab
GraphLab[16]ÊÇCMU¿ª·¢µÄÒ»¸öÒÔ¶¥µãΪ¼ÆËãµ¥ÔªµÄ´ó¹æÄ£Í¼´¦Àíϵͳ£¬ÊÇÒ»¸ö»ùÓÚͼģÐͳéÏóµÄ»úÆ÷ѧϰϵͳ¡£Éè¼Æ³õÖÔÖ÷ÒªÊǽâ¾ö¾ßÓÐÒÔÏÂÌØµãµÄ»úÆ÷ѧϰÎÊÌ⣺Óоֲ¿ÒÀÀµµÄÏ¡ÊèÊý¾Ý¼¯¡¢µü´ú¿ÉÊÕÁ²¡¢Òì²½Ö´ÐС£ÎªÁËʵÏÖÕâ¸öÄ¿±ê£¬GraphLab°ÑÊý¾ÝÖ®¼äµÄÒÀÀµ¹ØÏµ³éÏó³ÉGraph½á¹¹£¬ÒÔ¶¥µãΪ¼ÆËãµ¥Ôª£¬½«Ëã·¨µÄÖ´Ðйý³Ì³éÏó³Éÿ¸ö¶¥µãÉϵÄGAS£¨gather¡¢apply¡¢scatter£©¹ý³Ì£¬Æä²¢ÐеĺËÐÄ˼ÏëÊǶà¸ö¶¥µãͬʱִÐС£GraphLabµÄÓŵãÊÇÄܹ»¸ßЧµØ´¦Àí´ó¹æÄ£Í¼Ëã·¨ÎÊÌâ»òÕ߿ɹé½áΪͼÎÊÌâµÄ»úÆ÷ѧϰºÍÊý¾ÝÍÚ¾òËã·¨ÎÊÌ⣻ÆäȱµãÔÚÓÚÌṩµÄ½Ó¿Úϸ½Ú±È½Ï¸´ÔÓ£¬¶ÔÓÚÆÕͨµÄÊý¾Ý·ÖÎö³ÌÐòÔ±¶øÑÔ£¬ÓнϴóµÄʹÓÃÄѶȡ£
£¨5£©ParameterServerÓëPetuum
ºÜ¶à»úÆ÷ѧϰËã·¨³£³£Òª½â¾öѧϰѵÁ·¹ý³ÌÖÐÄ£ÐͲÎÊýµÄ¸ßЧ´æ´¢Óë¸üÐÂÎÊÌ⡣ΪÁËÓÐЧӦ¶ÔºÍÂú×ã´óÊý¾Ý³¡¾°ÏÂÕâÀà»úÆ÷ѧϰËã·¨µÄÐèÒª£¬Ñо¿ÕßÌá³öÁËÒ»ÖÖ³ÆÎªParameterServerµÄ¿ò¼Ü[17]£¬ÌṩÁËÒ»¸ö·Ö²¼Ê½È«¾ÖÄ£ÐͲÎÊý´æ´¢ºÍ·ÃÎʽӿڣ¬Ä£ÐͲÎÊý´æ´¢ÔÚ¶ą̀·þÎñÆ÷£¨server£©ÖУ¬¹¤×÷½Úµã£¨worker£©¿ÉÒÔͨ¹ýÍøÂç·ÃÎÊAPI·½±ãµØ¶Áȡȫ¾Ö²ÎÊý¡£
Li MuµÈÈË¿ª·¢ÁËÒ»Ì×»ùÓÚParameterServer¿ò¼ÜµÄ·Ö²¼Ê½»úÆ÷ѧϰϵͳ[17]£¬¸ÃϵͳÓÉÒ»¸ö·þÎñÆ÷×飨server
group£©ºÍ¶à¸ö¹¤×÷×飨worker group£©¹¹³É¡£ÆäÖУ¬·þÎñÆ÷×éÖаüÀ¨Ò»¸ö·þÎñÆ÷¹ÜÀí£¨servermanager£©½ÚµãºÍ¶à¸ö·þÎñÆ÷½Úµã¡£Ã¿¸ö·þÎñÆ÷½Úµã´æ´¢²¿·ÖÈ«¾Ö¹²Ïí²ÎÊý£»·þÎñÆ÷¹ÜÀí½ÚµãÓÃÀ´´æ´¢·þÎñÆ÷½ÚµãµÄÔªÐÅÏ¢£¬²¢Í¨¹ýÐÄÌø»úÖÆ¹ÜÀíËùÓзþÎñÆ÷¡£ÔÚ¸ÃϵͳÖУ¬Ã¿¸ö¹¤×÷×é°üº¬Ò»¸öÈÎÎñµ÷¶ÈÆ÷£¨taskscheduler£©ºÍ¶à¸ö¹¤×÷½Úµã£¬¹¤×÷½ÚµãÖ»Óë·þÎñÆ÷½ÚµãͨÐÅ»ñȡȫ¾Ö²ÎÊýÒÔ¼°ÍÆË;ֲ¿¸üУ¬²»Í¬µÄ¹¤×÷×é¿ÉÒÔͬʱÔËÐв»Í¬µÄÓ¦Óá£ParameterServerµÄÓŵãÊÇΪ´ó¹æÄ£»úÆ÷ѧϰÌṩÁ˷dz£Áé»îµÄÄ£ÐͲÎÊýµ÷ÓźͿØÖÆ»úÖÆ£»È±µãÊÇȱÉÙ¶Ô´ó¹æÄ£»úÆ÷ѧϰʱµÄÊý¾Ý¼°±à³Ì¼ÆËãÄ£Ð͵ĸ߲ã³éÏó£¬Ê¹ÓýÏΪ·±Ëö£¬Í¨³£±È½ÏÊʺÏÓÚ»úÆ÷ѧϰËã·¨Ñо¿Õß»òÕßÐèҪͨ¹ýµ÷Õû²ÎÊýÉî¶ÈÓÅ»¯»úÆ÷ѧϰËã·¨µÄÊý¾Ý·ÖÎö³ÌÐòԱʹÓá£
¹ú¼ÊÖøÃûµÄ»úÆ÷ѧϰר¼Ò¡¢ÃÀ¹ú¿¨ÄÍ»ù÷¡´óѧ»úÆ÷ѧϰϵEricXing½ÌÊÚÊÇ´óÊý¾Ý»úÆ÷ѧϰϵͳµÄ³«µ¼Õß¡£ËûÈÏΪ£¬´«Í³µÄ»úÆ÷ѧϰÑо¿¹ýÓÚ¼ò»¯»úÆ÷ѧϰËã·¨±¾ÉíµÄÎÊÌâÒÔ¼°´ó¹æÄ£Êý¾Ý»úÆ÷ѧϰ´æÔÚµÄϵͳÎÊÌâ[21]¡£ÓÉÓÚ´ó¹æÄ£»úÆ÷ѧϰ´æÔںܶàеÄÌôÕ½£¬½ü¼¸ÄêÀ´Ö÷ÒªÖÂÁ¦ÓÚ´óÊý¾Ý»úÆ÷ѧϰϵͳµÄÑо¿£¬²¢Áìµ¼ÆäSAILINGʵÑéÊÒÑо¿ÊµÏÖÁË´óÊý¾ÝѧϰϵͳPetuum[18£¬21]¡£PetuumÒ²ÊÇÒ»¸ö»ùÓÚParameter
Server¿ò¼ÜµÄϵͳ£¬¹Ø¼ü×é¼þ°üÀ¨ParameterServerºÍµ÷¶ÈÆ÷¡£PetuumµÄParameter
ServerÖÐʹÓÃSSP£¨stale synchronous parallel£©Ò»ÖÂÐÔÄ£ÐÍ£¬ÔÊÐí¼ÆËãËÙ¶ÈÂýµÄ½Úµã´Ó±¾»ú»º´æÖжÁÈ¡³Â¾ÉµÄ²ÎÊýÖµ£¬ÒÔ´Ë´ó´ó½ÚÊ¡ÍøÂ翪ÏúºÍÍøÂçµÈ´ýʱ¼ä£¬Ê¹µÃÂý»úÆ÷µÄ´ó²¿·Öʱ¼äÓÃÔÚ¼ÆËã¶ø²»ÊǵȴýÉÏ¡£PetuumÔÚʹÓÃÉÏÐèÒªËã·¨Éè¼ÆÕß¶Ô·Ö²¼Ê½ÏµÍ³¸ÅÄîºÍϵͳÓÐÒ»¶¨Á˽⣬ÆäÒ×ÓÃÐÔÈÔÓÐÒ»¶¨µÄÏÞÖÆ£¬ÇÒÆäµ×²ãÊý¾Ý´æ´¢ºÍ²¢ÐмÆËã¿ò¼ÜÓëÉϲãµÄѧϰËã·¨²ãÒÔ½ôñîºÏµÄ·½Ê½È«²¿×Ô¼ºÊµÏÖ£¬ÏµÍ³ÊµÏÖ¸´ÔÓÐԺʹú¼Û½Ï´ó¡£
£¨6£©ÌÚѶPeacockÓëMarianaÉî¶Èѧϰƽ̨
Peacock[3]ÊÇÌÚѶ¹«Ë¾Ñз¢µÄÒ»¸ö´ó¹æÄ£LDAÖ÷ÌâÄ£ÐÍѵÁ·ÏµÍ³¡£¸Ãϵͳͨ¹ý²¢ÐмÆËã¿É¶Ô10ÒÚ¡Á1ÒÚ¼¶±ðµÄ´ó¹æÄ£¾ØÕó½øÐзֽ⣬´Ó¶ø´Óº£Á¿ÎĵµÑù±¾Êý¾ÝÖÐѧϰ10Íò~100ÍòÁ¿¼¶µÄÒþº¬ÓïÒ塣ΪÁËÍê³É´ó¹æÄ£´¦Àí£¬Peacock»ùÓÚ¼ª²¼Ë¹²ÉÑùµÄLDAѵÁ·Ëã·¨½øÐÐÁ˲¢Ðл¯Éè¼Æ£¬²¢Éè¼ÆÊµÏÖÁËÒ»¸öÍêÕûµÄ¾ßÓдó¹æÄ£Ñù±¾Êý¾Ý´¦ÀíÄÜÁ¦µÄѵÁ·ÏµÍ³¡£PeacockÒѹ㷺ӦÓÃÔÚÌÚѶµÄÎı¾ÓïÒåÀí½â¡¢QQÈºÍÆ¼ö¡¢Óû§ÉÌÒµÐËȤÍÚ¾ò¡¢ÏàËÆÓû§À©Õ¹¡¢¹ã¸æµã»÷ÂÊת»¯ÂÊÔ¤¹ÀµÈ¶à¸öÒµÎñÊý¾ÝÖУ¬ÊÇÒ»¸öרΪLDA²¢Ðл¯¼ÆËã¶ø¶¨ÖƵĴó¹æÄ£ÑµÁ·ÏµÍ³£¬²»ÊÇÒ»¸öͨÓû¯µÄ´óÊý¾Ý»úÆ÷ѧϰϵͳ¡£
ΪÁËÌṩ¸üΪ¹ã·ºµÄ´ó¹æÄ£²¢Ðл¯»úÆ÷ѧϰ´¦ÀíÄÜÁ¦£¬ÌÚѶÑо¿¹¹½¨ÁËÒ»¸ö³ÆÎªMarianaµÄÉî¶Èѧϰƽ̨[22]£¬¸Ãƽ̨ÓÉ3Ì×´ó¹æÄ£Éî¶Èѧϰϵͳ¹¹³É£¬°üÀ¨»ùÓÚ¶àGPUµÄÉî¶ÈÉñ¾ÍøÂç²¢ÐмÆËãϵͳMarianaDNN¡¢»ùÓÚ¶àGPUµÄÉî¶È¾í»ýÉñ¾ÍøÂç²¢ÐмÆËãϵͳMariana
CNNÒÔ¼°»ùÓÚCPU¼¯ÈºµÄÉî¶ÈÉñ¾ÍøÂç²¢ÐмÆËãϵͳMariana Cluster¡£Mariana¿ÉÌṩÊý¾Ý²¢ÐкÍÄ£ÐͲ¢ÐмÆË㣬»ùÓÚGPUºÍCPU¼¯ÈºÌáÉýÄ£Ð͹æÄ££¬¼ÓËÙѵÁ·ÐÔÄÜ¡£ÆäÖУ¬MarianaDNNÔÚÌÚѶÄÚ²¿ÓÃÓÚ΢ÐÅÓïÒôʶ±ðÉùѧģÐÍѵÁ·£¬¿ÉѵÁ·³¬¹ý1ÍòСʱµÄÓïÒôÊý¾Ý¡¢³¬¹ý40ÒÚµÄÊý¾ÝÑù±¾ÒÔ¼°³¬¹ý5
000ÍòµÄ²ÎÊý£¬Ïà¶ÔÓÚµ¥GPU¶øÑÔ£¬6GPU¿ÉʵÏÖ4.6±¶µÄ¼ÓËٱȣ»¶øMarianaCNNÓÃÓÚ΢ÐÅͼÏñʶ±ð£¬¿ÉѵÁ·2
000¸öÒÔÉϵķÖÀà¡¢300ÍòÒÔÉϵÄÊý¾ÝÑù±¾ÒÔ¼°³¬¹ý6 000ÍòµÄ²ÎÊý£¬Ïà¶ÔÓÚµ¥GPU¶øÑÔ£¬4GPU¿ÉʵÏÖ2.5±¶µÄ¼ÓËٱȣ¬ÔÚͼÎÄÀàЧ¹û¹ã¸æµã»÷ÂÊÌáÉý·½ÃæÒ²È¡µÃ³õ²½Ó¦Óã»MarianaClusterʵÏÖÁËÒ»¸ö»ùÓÚParameter
ServerÄ£Ð͵Ĵó¹æÄ£Í¨Óû¯»úÆ÷ѧϰºÍѵÁ·ÏµÍ³£¬Ö÷ÒªÓÃÓÚ½øÐдó¹æÄ£¹ã¸æ²¢Ðл¯ÑµÁ·£¬Íê³É¹ã¸æµã»÷ÂÊÔ¤¹ÀÄ£ÐÍѵÁ·ºÍ¹ã¸æµã»÷ÐÔÄÜÓÅ»¯¡£
£¨7£©°Ù¶ÈELFÓë°Ù¶È»úÆ÷Ñ§Ï°ÔÆÆ½Ì¨BML
°Ù¶È¹«Ë¾Ñз¢ÁËÒ»¸ö´ó¹æÄ£·Ö²¼Ê½»úÆ÷ѧϰ¿ò¼ÜºÍϵͳELF£¨essential learningframework£©[23]¡£ELFÊÇÒ»¸ö»ùÓÚParameter
ServerÄ£Ð͵ÄͨÓû¯´ó¹æÄ£»úÆ÷ѧϰϵͳ£¬¿ÉÔÊÐíÓû§·½±ã¿ìËÙµØÉè¼ÆÊµÏÖ´óÊý¾Ý»úÆ÷ѧϰËã·¨£¬ÔÚϵͳÉè¼ÆÉÏÎüÊÕÁËHadoop¡¢SparkºÍMPIµÈ´óÊý¾Ýƽ̨µÄÓŵ㣬ÓÃÀàËÆÓÚSparkµÄÈ«ÄÚ´æDAG¼ÆËãÒýÇæ£¬¿É»ùÓÚÊý¾ÝÁ÷µÄ±à³Ìģʽ£¬Í¨¹ý¸ß¶È³éÏóµÄ±à³Ì½Ó¿Ú£¬ÈÃÓû§·½±ãµØÍê³É¸÷ÖÖ»úÆ÷ѧϰËã·¨µÄ²¢Ðл¯Éè¼ÆºÍ¿ìËÙ¼ÆËã¡£
ÔÚELFµÄ»ù´¡ÉÏ£¬°Ù¶È½øÒ»²½¿ª·¢ÁËÒ»¸ö»úÆ÷Ñ§Ï°ÔÆÆ½Ì¨BML£¨Baidumachine learning£©£¬¸Ãƽ̨֧³Ö·á¸»µÄ»úÆ÷ѧϰËã·¨£¬¿ÉÖ§³Ö20¶àÖÖ´ó¹æÄ£²¢ÐлúÆ÷ѧϰËã·¨£¬Ìṩ°üÀ¨Êý¾ÝÔ¤´¦ÀíËã·¨¡¢·ÖÀàËã·¨¡¢¾ÛÀàËã·¨¡¢Ö÷ÌâÄ£ÐÍ¡¢ÍƼöËã·¨¡¢Éî¶Èѧϰ¡¢ÐòÁÐÄ£ÐÍ¡¢ÔÚÏßѧϰÔÚÄڵĸ÷ÖÖ»úÆ÷ѧϰËã·¨Ö§³Ö£¬²¢Í¨¹ý·Ö²¼ºÍ²¢Ðл¯¼ÆËãʵÏÖÓÅÒìµÄ¼ÆËãÐÔÄÜ¡£BMLÔÚ°Ù¶ÈÄÚ²¿µÄÒµÎñϵͳÖоÀúÁËÏßÉÏ´ó¹æÄ£Ê¹Óò¿Êð¿¼Ñ飬³ÐÔØ¹«Ë¾ÄÚ¸÷ÖÖÖØÒªµÄÔÚÏßÒµÎñÏßÓ¦Ó㬰üÀ¨·ï³²¹ã¸æCTRÔ¤¹À¡¢ËÑË÷LTRÅÅÃûµÈ¡£
6 ¿çƽ̨ͳһ´óÊý¾Ý»úÆ÷ѧϰϵͳOctopusµÄÑо¿Éè¼Æ
6.1 OctopusµÄ»ù±¾Éè¼ÆË¼Ïë
ÉÏÊö¾ø´ó¶àÊý´óÊý¾Ý»úÆ÷ѧϰ·½·¨ºÍϵͳ¶¼ÊÇ»ùÓÚÌØ¶¨Æ½Ì¨¹¹½¨µÄ£¬ÄÑÒÔ¼¯³ÉºÍ¼æÈÝÏÖÓкÍδÀ´³öÏֵĶàÖÖ´óÊý¾Ý´¦ÀíÒýÇæºÍƽ̨¡£ÏÖʵÊÀ½çÖеĸ÷ÖÖ´óÊý¾Ý·ÖÎö´¦ÀíÓ¦ÓÃͨ³£»áÓв»Í¬µÄ·ÖÎö´¦ÀíÐèÇóºÍÌØÕ÷£¬ÀýÈ磬ÓÐЩ¿ÉÄÜÊǼ«´ó¹æÄ£Êý¾ÝµÄÀëÏß·ÖÎö´¦Àí£¬ÓÐЩ¿ÉÄÜÊÇÒªÇó¸ßʵʱÐÔÏìÓ¦µÄÁª»ú·ÖÎö´¦Àí£¬ÕâЩ²»Í¬µÄ·ÖÎöÐèÇóÒªÇóµ×²ãÓв»Í¬ÌØÐԵĴóÊý¾Ý´¦ÀíÆ½Ì¨Ö§³Ö£»´ËÍâ£¬Ëæ×Å´óÊý¾Ý´¦Àí¼¼ÊõºÍƽ̨µÄ²»¶Ï·¢Õ¹£¬Ä¿Ç°ºÍδÀ´²»¶ÏÓÐеĴóÊý¾Ý±à³Ì·½·¨ºÍ´¦ÀíÆ½Ì¨³öÏÖ¡£Òò´Ë£¬ÆóÒµÄÚÐèÒª½«ÆäÔÓÐÆ½Ì¨ÉÏÒѾ¿ª·¢ºÃµÄ»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨£¬¸ÄдºÍÒÆÖ²µ½ÐÂµÄÆ½Ì¨ÉÏ£¬Õ⽫¸øÆóÒµ´øÀ´ºÜ´óµÄÖØ¸´ÐÔÀͶ¯ºÍ¿ª·¢¸ºµ£¡£
Ϊ´Ë£¬Ò»¸öÀíÏëµÄ´óÊý¾Ý»úÆ÷ѧϰϵͳ»¹ÐèÒªÓµÓÐÄܹ»Ö§³ÖÏÖÓкÍδÀ´³öÏֵIJ»Í¬´óÊý¾Ý´¦ÀíÆ½Ì¨µÄÄÜÁ¦£¬ÊµÏÖ¿çÆ½Ì¨´óÊý¾Ý»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨µÄÉè¼ÆÄÜÁ¦£¬´ïµ½¡°WriteOnce£¬Run
Anywhere¡±µÄ¿çƽ̨Ëã·¨Éè¼ÆºÍÔËÐÐÄ¿±ê¡£
Õë¶Ô´óÊý¾Ý»úÆ÷ѧϰϵͳÐèÒªÖØµãÑо¿½â¾öµÄ¼ÆËãÐÔÄÜÒÔ¼°¿É±à³ÌÐÔÓëÒ×ÓÃÐÔÎÊÌ⣬²¢¿¼ÂÇÉÏÊöµÄ¿çƽ̨ÐèÇóÌØÐÔ£¬ÄϾ©´óѧPASA´óÊý¾ÝʵÑéÊÒÕýÔÚÑо¿Éè¼ÆÒ»¸ö¿çƽ̨´óÊý¾Ý»úÆ÷ѧϰµÄͳһ±à³ÌÄ£ÐͺÍϵͳƽ̨¡£¸Ãϵͳ»ùÓÚ¾ØÕó±à³Ì¼ÆËãÄ£ÐÍ£¬½áºÏR±à³ÌÓïÑԺͱà³Ì·½·¨£¬Éè¼ÆÌṩһ¸ö¿çƽ̨µÄͳһ±à³Ì¼ÆËã¿ò¼Ü£¬×îÖÕÑо¿ÊµÏÖÒ»¸ö¿çƽ̨´óÊý¾Ý»úÆ÷ѧϰϵͳOctopus£¨´óÕÂÓ㣩¡£
·ÖÎö·¢ÏÖ£¬»úÆ÷ѧϰºÍÊý¾ÝÍÚ¾òËã·¨ÖеÄÖ÷Ì弯Ëã´ó¶à¿É±íʾΪ¾ØÕó»òÏòÁ¿ÔËË㣬Õâͨ³£Ò²ÊÇËã·¨ÖÐ×îºÄʱµÄ²¿·Ö¡£¾ØÕó²Ù×÷Ò²ÊÇ»úÆ÷ѧϰÑо¿ÕßÓÃÀ´ÃèÊöÎÊÌâºÍËã·¨×îΪ×ÔÈ»ºÍ³£Óõķ½Ê½£¬»ùÓÚ¾ØÕó¿ÉÒÔ±íʾºÍ¿Ì»´ó¶àÊýʵ¼ÊÓ¦ÓÃÖÐÉæ¼°µÄ»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨ÎÊÌâ¡£»ùÓÚÕâÑùµÄÊÂʵ£¬ÎªÁ˸ø´óÊý¾Ý»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöÌṩһÖÖ×ÔÈ»ºÍͳһµÄ±à³Ì¼ÆËãÄ£Ðͺͱà³Ì·½·¨£¬ÀàËÆÓÚMapReduceÖлùÓÚÊý¾Ý¼Ç¼ÁбíµÄ³éÏó±à³Ì¼ÆËãÄ£ÐÍ£¬½«Ñо¿½¨Á¢Ò»ÖÖ»ùÓÚ¾ØÕóÄ£Ð͵ijéÏó±à³Ì¼ÆËãÄ£ÐÍ£¬ÒÔ´Ë×÷Ϊ´óÊý¾Ý»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨Éè¼ÆµÄͳһ±à³Ì¼ÆËãÄ£Ðͺͽӿڡ£
OctopusÊÇÒ»¸ö¸ß²ãµÄ´óÊý¾Ý»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöͳһ±à³ÌÄ£ÐͺÍϵͳƽ̨£¬ÔÊÐíÊý¾Ý·ÖÎöºÍ´óÊý¾ÝÓ¦Óÿª·¢³ÌÐòÔ±ÇáËɵØÉè¼ÆºÍ¿ª·¢¸÷ÖÖ´óÊý¾Ý»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨ÓëÓ¦ÓóÌÐò¡£Í¨¹ýÌṩ»ùÓÚ¾ØÕóµÄͳһ±à³Ì¼ÆËãÄ£ÐÍ£¬Ê¹ÓûùÓÚRÓïÑÔµÄÊý¾Ý·ÖÎö³ÌÐòÉè¼ÆÓïÑԺͳÌÐòÉè¼Æ·½·¨£¬ÔÊÐíÓû§·½±ãµØ±àдºÍÔËÐг£¹æµÄRÓïÑÔ³ÌÐò£¬¶øÎÞÐèÁ˽âµ×²ã´óÊý¾Ýƽ̨µÄ·Ö²¼ºÍ²¢Ðл¯±à³Ì¼ÆËã֪ʶ£¬Ê¹µ×²ãµÄ·Ö²¼²¢ÐмÆËã¿ò¼ÜºÍ´óÊý¾Ýƽ̨¶ÔÓû§Íêȫ͸Ã÷£»µ×²ãƽ̨ÉÏ£¬Í¨¹ýÁ¼ºÃµÄϵͳ²ã³éÏ󣬿ÉÒÔ¿ìËÙ¼¯³ÉHadoopºÍSparkµÈͨÓôóÊý¾Ý²¢ÐмÆËã¿ò¼ÜºÍϵͳƽ̨£¬¶øÇÒ³ÌÐò½öÐè±àдһ´Î£¬²»ÐèÒªÓÐÈκÎÐ޸ļ´¿É¸ù¾ÝÐèҪѡÔñ²¢Æ½»¬ÔËÐÐÓÚÈκÎÒ»¸öƽ̨£¬´Ó¶øÊµÏÖ¡°WriteOnce£¬Run
Anywhere¡±µÄ¿çÆ½Ì¨ÌØÐÔ¡£
6.2 »ùÓÚ¾ØÕóÄ£Ð͵Äͳһ±à³ÌºÍ¼ÆËãÄ£ÐÍ
·ÖÎö·¢ÏÖ£¬Ò»·½Ã棬´óÊý¾Ý»úÆ÷ѧϰËã·¨ÖеÄÖ÷Ì弯ËãºÜ¶à¿É±íʾΪ¾ØÕó»òÏòÁ¿ÔËË㣨ÏòÁ¿¿ÉÊÓΪÍË»¯Îª1άµÄÌØÊâ¾ØÕ󣩣¬Í¨³£ÕâÒ²ÊÇËã·¨ÖÐ×îºÄʱµÄ²¿·Ö£»ÁíÒ»·½Ã棬¾ØÕó²Ù×÷ͨ³£Ò²ÊÇ»úÆ÷ѧϰÑо¿ÕßÓÃÀ´ÃèÊöÎÊÌâºÍËã·¨×îΪ×ÔÈ»ºÍ³£Óõķ½Ê½¡£ÀýÈ磬ѵÁ·Ñù±¾ÌØÕ÷ÖµµÄ¹éÒ»»¯ÍùÍùÊÇͨ¹ý¶Ô¾ØÕóÐлòÁÐÇóºÍºóÔÙ³ýÒÔ¸ÃÇóºÍµÄÖµ£»KNNËã·¨£¨×î½üÁÚËã·¨£©µÄºËÐIJÙ×÷ÊǾØÕóÏà¼õºÍ¾ØÕóÔªËØÇ󯽷½²Ù×÷£»PCA£¨Ö÷³É·Ö·ÖÎö£©Ëã·¨¿ÉÒÔͨ¹ý¾ØÕóÏà³Ë»ò¾ØÕóµÄSVD·Ö½â½øÐÐÇó½â£»×îС¶þ³Ë·¨µÄ½âÎö·¨Éæ¼°¾ØÕóµÄÏà³ËºÍÇóÄæ²Ù×÷£»»¥ÁªÍøÆóÒµÍÆ¼öϵͳÖУ¬ÏàËÆÐÔ·ÖÎöµÄºËÐÄÊǸߴïÊýÒÚÓû§³ËÒÔÊýÒÚÎïÆ·µÄ¾ØÕó·Ö½â¼ÆËãÎÊÌ⣻¶øÌÚѶPeacockÖ÷ÌâÄ£ÐÍѵÁ·ÏµÍ³ÔòÉæ¼°ÊýÊ®ÒÚÎĵµ³ËÒÔÊý°ÙÍò´Ê»ãµÄ¾Þ´ó¾ØÕó¼ÆËãÎÊÌ⣻ÔÚÐÅÏ¢¼ìË÷ÁìÓò£¬ÖøÃûµÄPageRankËã·¨Ò²¿ÉÒÔ±íʾ³É¾ØÕóµÄµü´úÏà³Ë£»Éç»áÍøÂçÖпÉÒÔͨ¹ý¼ÆËãÅóÓѹØÏµ¾ØÕóµÄÃÝ£¬´Ó¶ø½øÐлùÓÚ¹²Í¬ºÃÓѵÄÍÆ¼ö£»µç×ÓÉÌÎñÖпÉÒÔͨ¹ý¶ÔÓû§¶ÔÉÌÆ·µÄ¹ºÂò¼Ç¼½øÐоØÕó·Ö½â£¬µÃµ½ÉÌÆ·ºÍÓû§µÄ¾ÛÀಢ·ÖÎöÆäDZÔÚÓïÒåÖ÷ÌâÄ£ÐÍ¡£ºÜ¶àÆäËûµÄÊý¾Ý·ÖÎöºÍ´óÊý¾Ý¿ÆÑ§¼ÆËãÎÊÌâÒ²³£³£Òª»ùÓÚ¾ØÕóÄ£ÐÍÍê³ÉÎÊÌâµÄÃèÊöºÍ·ÖÎö¼ÆËã¹ý³Ì¡£Òò´Ë£¬»ùÓÚ¾ØÕó¿ÉÒÔ±íʾºÍ¿Ì»´ó¶àÊýʵ¼ÊÓ¦ÓÃÖÐÉæ¼°µÄ»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨ÎÊÌâ¡£
»ùÓÚÕâÑùµÄÊÂʵ£¬ÎªÁ˸ø´óÊý¾Ý»úÆ÷ѧϰÌṩһÖÖͳһµÄ±à³Ì¼ÆËãÄ£ÐÍÒÔ¼°±à³Ì·½·¨£¬ÀàËÆÓÚMapReduce²ÉÓÃÁË»ùÓÚÊý¾Ý¼Ç¼ÁбíµÄ³éÏó±à³Ì¼ÆËãÄ£ÐÍ£¬Ñо¿½¨Á¢ÁËÒ»ÖÖ»ùÓÚ¾ØÕóÄ£Ð͵ijéÏó±à³Ì¼ÆËãÄ£ÐÍ£¬ÒÔ´Ë×÷Ϊ´óÊý¾Ý»úÆ÷ѧϰËã·¨Éè¼ÆµÄͳһ±à³Ì¼ÆËãÄ£Ðͺͽӿڡ£
ÕâÖÖ³éÏó¾ØÕó±à³Ì¼ÆËãÄ£Ðͽ«³ÉΪͳһ»úÆ÷ѧϰËã·¨Éè¼ÆºÍ±à³Ì¼ÆËãµÄºËÐÄ£¬Ëü¾ßÓÐÈçÏÂ3¸öÖØÒª×÷Óá£
»ùÓÚ»úÆ÷ѧϰºÍÊý¾ÝÍÚ¾òËã·¨ÖÐÖ÷Ì弯Ëã´ó¶à¿É±íʾΪ¾ØÕó»òÏòÁ¿ÔËËãµÄÊÂʵ£¬ÎªÊý¾Ý·ÖÎöÓû§ÌṩһÖÖ×ÔÈ»ºÍͳһ»¯µÄ´óÊý¾Ý»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨½¨Ä£ºÍ±íʾ·½·¨¡£
×÷Ϊһ¸ö¸ôÀëºÍ½âñîÉϲãÊý¾Ý·ÖÎöËã·¨Óëϲã¸÷ÖÖ´óÊý¾Ýƽ̨µÄÖмä½Ó¿Ú£¬ÊµÏÖµ×²ãÆ½Ì¨¶ÔÉϲã³ÌÐòÔ±¼°Æä³ÌÐòµÄ͸Ã÷ÐÔ£¬ÒÔ´ËÌá¸ßͳһƽ̨¶ÔÉϲã³ÌÐòÔ±µÄÒ×ÓÃÐÔ¡£
ΪʵÏÖͳһ´óÊý¾Ý»úÆ÷ѧϰϵͳ¿ª·Åʽ¼¯³É¿ò¼ÜÌṩһÖÖ½Ó¿Ú±ê×¼¡£Õë¶ÔÈÎÒâÒ»¸öÄ⼯³ÉʹÓõĵײã´óÊý¾Ýƽ̨£¬Ö»Òª×ñÕÕËù½¨Á¢µÄͳһ¾ØÕó±à³Ì½Ó¿Ú£¬ÊµÏÖÒ»¸öÍê³É¸Ã½Ó¿Ú³ÌÐò¼ÆËãÈÎÎñµÄÊÊÅäÆ÷»ò²å¼þ£¬¼´¿ÉÒÔ²©²ÉÖÚ³¤ºÍ¼æÈݲ¢ÐîµÄ¿ª·Åʽ¿ò¼Ü£¬Á¬½ÓºÍ¼¯³ÉʹÓø÷ÖÖÖ÷Á÷µÄ´óÊý¾Ýƽ̨£¬Ê¹µÃÉϲãµÄ»úÆ÷ѧϰËã·¨¾ßÓд¦Àí´ó¹æÄ£Êý¾ÝµÄÄÜÁ¦¡£
6.3 OctopusÈí¼þ¿ò¼ÜºÍϵͳÉè¼Æ
Èçͼ5Ëùʾ£¬OctopusÊÇÒ»ÖÖ»ùÓÚÁ¼ºÃµÄϵͳ³éÏóµÄ²ã´Î»¯ÏµÍ³¡£Æä×îµ×²ãÊÇ·Ö²¼Ê½Îļþϵͳ£¬ÈçHDFSºÍ·Ö²¼Ê½ÄÚ´æÎļþϵͳTachyon£¬ËüÃDZ»ÓÃÀ´´æ´¢ºÍË÷Òý´ó¹æÄ£µÄ¾ØÕóÊý¾Ý¡£ÔÚ´æ´¢²ãÖ®ÉÏ£¬Octopus¿ÉÒÔÓöàÖÖ´óÊý¾Ý¼ÆËãÒýÇæºÍµ¥»úRÒýÇæÀ´Ö´Ðв»Í¬¹æÄ£µÄ¾ØÕó²Ù×÷¡£OctopusÌṩ¸øÓû§µÄ±à³ÌAPIÊÇ»ùÓÚRÓïÑÔµÄ¸ß²ã¾ØÕó¼ÆËã½Ó¿Ú£¬»ùÓڸýӿڣ¬Óû§²»ÐèÒªÁ˽â·Ö²¼ºÍ²¢ÐмÆËãϵͳ֪ʶ£¬¾Í¿ÉÒÔºÜÈÝÒ×µØÉè¼ÆÊµÏÖ´óÊý¾Ý»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨»òÓ¦Óá£

6.4 OctopusϵͳµÄ¼¼ÊõÌØÕ÷
Octopus¾ßÓÐÒÔϼ¼ÊõÌØÕ÷¡£
£¨1£©Ò×ÓÚʹÓõĸ߲ã±à³ÌAPI
OctopusÌṩ¸øÓû§Ò»×é»ùÓÚRÓïÑԵĴó¹æÄ£¾ØÕóÔËËãAPI£¬³ÆÎªOctMatrix¡£ÕâЩAPIÌṩ¸÷ÖÖ´ó¹æÄ£·Ö²¼Ê½¾ØÕó¼ÆËã²Ù×÷£¬ÆäÐÎʽÉÏÓë±ê×¼RÓïÑÔÖеĵ¥»ú¾ØÕó/ÏòÁ¿²Ù×÷APIºÜÏàËÆ¡£³ÌÐòÔ±¿É»ùÓÚÕâЩ¾ØÕóÔËËã½Ó¿Ú£¬ÓÃRÓïÑÔ¿ìËÙ±àд¸÷ÖÖ»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨¡£³ýÁË×î³£ÓõĴó¹æÄ£¾ØÕó³Ë·¨£¬OctopusÒ²ÌṩÁËÆäËû¸÷ÖÖ¾ØÕó²Ù×÷£¬Èç¾ØÕóÓë¾ØÕóµÄ¼Ó·¨ºÍ¼õ·¨¡¢¾ØÕóÔªËØ¼¶±ðµÄ³Ë·¨ºÍ³ý·¨¡¢×Ó¾ØÕóÔËËãµÈ¡£ÕâЩAPI¶¨ÒåÁË¸ß²ã¾ØÕó²Ù×÷·û£¨operator£©ºÍ²Ù×÷£¨operation£©£¬Òò´ËÊìϤR±à³ÌÓïÑԺͱà³Ì·½·¨µÄÓû§¿ÉÒÔºÜÈÝÒ×µØÓÃÆä±à³ÌʵÏÖ´óÊý¾Ý»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨£¬ÇÒ²»ÐèÒªÁ˽âµ×²ã´óÊý¾Ý´¦ÀíÆ½Ì¨¼°Æä²¢Ðл¯±à³Ì·½·¨¡£
£¨2£©Ò»´Î±àд£¬Ëæ´¦ÔËÐÐ
ÓÃOctopus±àдÍê³ÉµÄËã·¨ºÍ³ÌÐò£¬¿ÉÒÔÔËÐÐÔÚ²»Í¬µÄµ×²ã´óÊý¾Ý¼ÆËãÒýÇæºÍƽ̨ÉÏ¡£ÓÃOctMatrixAPIʵÏֵĻúÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨£¬Óû§¿ÉÒÔÔÚµ¥»úRÉÏÓÃСÊý¾Ý½øÐвâÊÔ£¬²»ÐèÒªÐ޸ĴúÂë¾Í¿ÉÒÔÓôóÊý¾ÝÔڵײãµÄ´óÊý¾Ý¼ÆËãÒýÇæºÍƽ̨ÉÏÖ´ÐУ¬Ö»ÐèÒª¼òµ¥Çл»µ×²ãµÄ´óÊý¾Ý¼ÆËãÒýÇæÈçSpark¡¢HadoopMapReduce»òMPI¼´¿É¡£´ËÍ⣬Octopusͨ¹ýÌṩͨÓýӿڿÉʵÏֶԵײ㲻ͬÎļþϵͳµÄ¼¯³É£¬²¢ÊµÏÖ»ùÓÚ²»Í¬ÎļþϵͳµÄ´ó¹æÄ£¾ØÕóÊý¾Ý´æ´¢·ÃÎʽӿڣ¬°üÀ¨HDFS¡¢TachyonÒÔ¼°»ùÓÚµ¥»ú±¾µØµÄÎļþϵͳ¡£
£¨3£©ÎÞ·ìÈÚºÏRÉú̬ϵͳ
Octopus¿ÉÔËÐÐÓÚ±ê×¼µÄR»·¾³Ï£¬ÊµÏÖÓëR»·¾³µÄÎÞ·ìÈںϣ¬Òò´Ë¿ÉÒÔÀûÓÃRÉú̬ϵͳÖеķḻ×ÊÔ´£¬±ÈÈçµÚÈý·½R°ü¡£³ýÁË´«Í³µÄ¾ØÕó/ÏòÁ¿º¯Êý£¬OctopusÒ²ÔÚOctMatrixÖÐÌṩapplyº¯Êý£¬´«Èëapplyº¯ÊýµÄ²ÎÊý¿ÉÒÔÊÇÈÎÒâµÄRº¯Êý£¬°üÀ¨UDF£¨userdefined
function£©¡£µ±OctMatrixÔËÐÐÔÚ·Ö²¼Ê½»·¾³ÖÐʱ£¬º¯Êý²ÎÊý¿ÉÒÔÔÚ¼¯ÈºÖб»Ó¦ÓÃÓÚOctMatrixµÄÿ¸öÔªËØ¡¢Ã¿ÐлòÿÁУ¬º¯Êý²ÎÊýÔÚ¼¯ÈºµÄÿ¸ö½Úµã²¢ÐÐÖ´ÐС£
6.5 OctopusÖзֲ¼Ê½¾ØÕó¼ÆËãÓÅ»¯
´ó¹æÄ£Êý¾Ýͨ³£»áµ¼ÖÂÕû¸öÊý¾Ý·ÖÎö¼ÆËãʱ¼ä¹ý³¤£¬ÄÑÒÔÔڿɽÓÊܵÄʱ¼äÄÚÍê³É·ÖÎöÈÎÎñ£¬Îª´ËÐèÒª½èÖúÓÚ·Ö²¼Ê½ºÍ²¢Ðл¯¼ÆËã¼¼ÊõʵÏÖ´ó¹æÄ£Êý¾Ý·ÖÎö¼ÆËãʱµÄ¼ÓËÙºÍÐÔÄÜÌáÉý£¬ÒÔÌá¸ßÊý¾Ý·ÖÎöµÄÏìӦʱ¼ä¡£ÓÉÓÚ²ÉÓôó¹æÄ£¾ØÕó×÷Ϊ´óÊý¾Ý»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöµÄ±à³Ì¼ÆËã½Ó¿Ú£¬Ôڵײã´óÊý¾Ýƽ̨ÉϵĴó¹æÄ£¾ØÕóÔËËãµÄÐÔÄܽ«Ö±½Ó¹ØÏµµ½ÉϲãËã·¨Ö´ÐеÄÐÔÄÜ¡£Îª´Ë£¬´ó¹æÄ£¾ØÕó¼ÆËãÐÔÄÜÓÅ»¯ÊÇÐèÒªÖØµãÑо¿½â¾öµÄ¹Ø¼ü¼¼ÊõÎÊÌâÖ®Ò»¡£
ÔÚËùÓоØÕó¼ÆËãÖУ¬¾ØÕó³Ë·¨ÊÇʹÓÃ×î¶àÇÒ×îΪºÄʱµÄ¼ÆË㣬Ðí¶à¾ØÕóµÄÒò×Ó·Ö½â²Ù×÷Ò²¶¼¿ÉÒÔÓɾØÕó³Ë·¨½üËÆÊµÏÖ¡£Òò´Ë£¬¾ØÕó³Ë·¨µÄÓÅ»¯ÊÇÕû¸ö¾ØÕó¼ÆËãÓÅ»¯ÖÐ×îÎªÖØÒªµÄÎÊÌâ¡£Á½¸ö´ó¹æÄ£¾ØÕó½øÐзֲ¼ºÍ²¢Ðл¯Ïà³ËÔËËãʱ£¬Ò»¸öÖØÒªÎÊÌâÊÇÈçºÎºÏÀí»®·Ö¾ØÕóÊý¾Ý£¬ÒÔ±ãÀûÓöà¸ö¼ÆËã½Úµã·Ö²¼ºÍ²¢Ðл¯µØÍê³É¼ÆËã¡£²»Í¬´óСºÍÐÎ×´µÄ¾ØÕ󣬯仮·Ö·½·¨¿ÉÄÜ»áÔì³É¼ÆËãÐÔÄÜÉϵIJîÒ죬ÀýÈ磬·½ÐξØÕóÓ볤ÌõÐξØÕóÐèÒª¿¼ÂDz»Í¬µÄ»®·Ö·½·¨£¬¶øÒ»¸ö´ó¾ØÕóÓëÒ»¸öС¾ØÕóÏà³Ëʱ£¬µ±Ð¡¾ØÕó¿É´æ·ÅÔÚµ¥½ÚµãµÄÄÚ´æÖÐʱ£¬¶ÔС¾ØÕó¿É²»½øÐл®·Ö£¬¶ø¸ÄÓù㲥·½Ê½½«Ð¡¾ØÕó·¢Ë͵½Ã¿¸ö¼ÆËã½ÚµãÉÏ£¬ÒÔ´ËÍê³ÉÁ½¸ö¾ØÕóµÄÔËË㣬ÕâÑù¿ÉÒÔ±ÜÃâ´óÁ¿µÄÍøÂçÊý¾Ý´«Êä¡£Òò´Ë£¬ÐèÒª¸ù¾Ý¾ØÕóµÄ´óСºÍÐÎ×´£¬ºÏÀí»®·Ö¾ØÕó£¬ÒÔ±ãÒÔ×îСµÄ¼ÆËã´ú¼ÛÍê³É³Ë·¨ÔËËã¡£
³ýÁ˲»Í¬ÐÎ×´ºÍ´óСµÄ¾ØÕó»®·Ö²ßÂÔÓÅ»¯Í⣬±»»®·ÖºóÂ䵽ÿ¸ö¼ÆËã½ÚµãÉÏ·Ö²¼´¦ÀíµÄ×Ó¾ØÕó¼ÆËãÒ²ÐèÒª½øÐÐÓÅ»¯¡£¾ØÕó³Ë·¨ÊǵäÐ͵ļÆËãÃܼ¯ÐÍÈÎÎñ²¢ÇÒ´æÔÚÐí¶àµ¥»úµÄ¸ßÐÔÄܵÄÏßÐÔ´úÊý¿â£¬ÈçBLAS¡¢LapackºÍMKL¡£ÓÉÓÚÔÚJVMÖÐÖ´ÐÐÏßÐÔ´úÊý¼ÆËãÐÔÄܽϵͣ¬Octopus½«¼ÆËãÃܼ¯µÄ¾ØÕó¼ÆËã´ÓJVMÖÐͨ¹ýJNILoader×°ÔØµ½±¾µØÏßÐÔ´úÊý¿â£¨ÈçBLAS¡¢Lapack£©ÖÐÖ´ÐУ¬ÕâÑù¿ÉÏÔÖø¼ÓËÙ×Ó¾ØÕóµÄ¼ÆËãÐÔÄÜ¡£
6.6 OctopusϵͳµÄ±à³ÌʹÓÃ
ͼ6ÏÔʾÁËOctopusϵͳµÄʹÓ÷½Ê½¡£OctopusʹÓñê×¼µÄR±à³ÌºÍ¿ª·¢»·¾³£¬ÔÊÐíÓû§Ê¹ÓÃRÓïÑÔ£¬²¢»ùÓÚ´ó¹æÄ£¾ØÕó¼ÆËãÄ£Ðͱàд¸÷ÖÖ»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨¡£ÏµÍ³¿ÉʵÏÖÓëSpark¡¢HadoopMapReduceºÍMPIµÄ¼¯³É£¬µ×²ã¿ÉÎÞ·ìÇл»ÔËÐÐÓÚ²»Í¬µÄ´óÊý¾Ýƽ̨ÉÏ¡£»ùÓÚOctopusËùÉè¼ÆÊµÏÖµÄËã·¨»ò³ÌÐò´úÂ룬ÎÞÐèÐ޸ļ´¿Éƽ»¬Çл»²¢ÔËÐÐÓÚÉÏÊöÈÎÒâÒ»¸öµ×²ã´óÊý¾Ý¼ÆËãÒýÇæºÍƽ̨ÉÏ£¬Ö»Òª¼òµ¥µØÐ޸ijÌÐò´úÂëÖеļÆËãÒýÇæÀàÐÍÑ¡Ôñ²ÎÊý¼´¿É¡£

»ùÓÚRÓïÑԺͳõ²½Ñо¿Éè¼ÆµÄOctopus£¬Éè¼ÆÊµÏÖÁ˶à¸öµäÐ͵ĻúÆ÷ѧϰËã·¨£¬°üÀ¨LR¡¢SVM¡¢¾ÛÀà¡¢Éî¶ÈѧϰµÈ£¬ÒÔÑéÖ¤Ñо¿Éè¼ÆµÄÔÐÍϵͳµÄÓÐЧÐÔ¡£
ͼ7ÊÇ»ùÓÚ³£¹æRÓïÑÔËùʵÏÖµÄLinearRegressionËã·¨Óë»ùÓÚOctopusËùʵÏÖµÄLinear
RegressionËã·¨µÄʾÀý´úÂë¡£ÓÉ´úÂë±È½Ï¿É¼û£¬Á½ÕßÔÚÐÎʽÉϷdz£½Ó½ü£¬½öÔÚÓйؾØÕóÔËËãµ÷ÓõÄAPIÉÏÓÐ΢С²îÒì¡£

ÓÉͼ7¿É¼û£¬ÔÚRÓïÑÔÖлùÓÚ¾ØÕó½øÐлúÆ÷ѧϰµÄËã·¨Éè¼Æ½ÏΪ¼ò½àºÍ·½±ã£¬LinearRegression´úÂë½ö½öÐèÒª20ÐÐ×óÓÒ¼´¿ÉʵÏÖÍêÕûµÄËã·¨¡£
7 ½áÊøÓï
½ü¼¸ÄêÀ´£¬´óÊý¾Ý¼¼ÊõµÄ·¢Õ¹Íƶ¯ÁË´óÊý¾Ý»úÆ÷ѧϰºÍÖÇÄܼÆËã¼¼ÊõµÄ·¢Õ¹Èȳ±¡£´óÊý¾Ý»úÆ÷ѧϰ²»½öÊÇÒ»¸öµ¥´¿µÄ»úÆ÷ѧϰÎÊÌ⣬¸üÊÇÒ»¸ö´ó¹æÄ£µÄ¸´ÔÓϵͳÎÊÌ⣻ÊÇÒ»¸öÍ¬Ê±Éæ¼°»úÆ÷ѧϰºÍ´óÊý¾Ý´¦ÀíÁ½¸öÁìÓòµÄ½»²æÑо¿¿ÎÌ⡣ҪʵÏÖÓÐЧµÄ´óÊý¾Ý»úÆ÷ѧϰ´¦Àí£¬ÐèÒª¹¹½¨Ò»¸öÄÜͬʱ֧³Ö»úÆ÷ѧϰËã·¨Éè¼ÆºÍ´ó¹æÄ£Êý¾Ý´¦ÀíµÄÒ»Ì廯´óÊý¾Ý»úÆ÷ѧϰϵͳ¡£
±¾ÎĽéÉÜÁ˹úÄÚÍâ´óÊý¾Ý»úÆ÷ѧϰϵͳµÄ»ù±¾¸ÅÄî¡¢»ù±¾Ñо¿ÎÊÌâ¡¢¼¼ÊõÌØÕ÷¡¢ÏµÍ³·ÖÀàÒÔ¼°µäÐÍϵͳ¡£ÔÚ´Ë»ù´¡ÉÏ£¬½øÒ»²½½éÉÜÁËÑо¿Éè¼ÆµÄ¿çƽ̨ͳһ´óÊý¾Ý»úÆ÷ѧϰÔÐÍϵͳOctopus¡£»ùÓÚ´ó¶àÊý»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨¿É±íʾΪ¾ØÕóÔËËãµÄÊÂʵ£¬Octopus²ÉÓþØÕóÄ£ÐÍ×÷Ϊ´óÊý¾Ý»úÆ÷ѧϰºÍÊý¾Ý·ÖÎö³éÏó±à³Ì¼ÆËãÄ£ÐÍ£¬ÌṩÁËÒ»¸ö»ùÓÚ¾ØÕóµÄ¸ß²ã±à³ÌÄ£Ðͺͽӿڣ¬²¢»ùÓÚRÓïÑԺͿª·¢»·¾³ÏòÓû§ÌṩÁËÒ»¸ö¾ØÕóÔËËãRÀ©Õ¹°ü£¬ÎªÓû§Ìṩ¿ÉÀ©Õ¹ÐÔºÃÇÒÒ×ÓÚʹÓõľØÕóÔËËã²Ù×÷£¬ÔÊÐíÓû§»ùÓÚËùÌṩµÄ´ó¹æÄ£¾ØÕóÔËËã²Ù×÷£¬¿ìËÙÉè¼ÆÊµÏÖ¸÷ÖÖ»úÆ÷ѧϰºÍÊý¾Ý·ÖÎöËã·¨¡£OctopusÄÜÔڵײãÎÞ·ìµØ¼¯³ÉºÍʹÓò»Í¬µÄ´óÊý¾Ý¼ÆËãÒýÇæºÍƽ̨£¬Íê³É´óÊý¾Ý»úÆ÷ѧϰËã·¨µÄ·Ö²¼ºÍ²¢Ðл¯Ö´ÐУ¬²¢Ö§³Öµ¥½ÚµãR»·¾³ÒÔ¼°Spark¡¢HadoopMapReduceºÍMPIµÈ¶àÖÖ´óÊý¾Ý¼ÆËãÒýÇæºÍƽ̨£¬²¢ÄÜʵÏÖÕâЩƽ̨¼äµÄÎÞ·ìÇл»£¬ÊµÏÖ¡°Write
Once£¬Run Anywhere¡±µÄ¿çÆ½Ì¨ÌØÕ÷¡£¾ÍÎÒÃÇËùÖª£¬OctopusÊÇĿǰÊÀ½çÉϵÚÒ»¸ö¾ßÓÐ¿çÆ½Ì¨ÌØÐÔ£¬Í¬Ê±»¹ÄÜʵÏֵײã´óÊý¾Ýƽ̨¶ÔÉϲã³ÌÐòԱ͸Ã÷»¯µÄ´óÊý¾Ý»úÆ÷ѧϰϵͳÑо¿¹¤×÷¡£
ÕýÈçCCF´óÊý¾Ýר¼ÒίԱ»á·¢²¼µÄ2014Äê¡¶Öйú´óÊý¾Ý¼¼ÊõÓë²úÒµ·¢Õ¹°×ƤÊé¡·ÖÐËù˵£¬Ä¿Ç°´óÊý¾Ý»úÆ÷ѧϰϵͳÉд¦ÔÚÒ»¸ö³õÆÚµÄ̽Ë÷ºÍÑо¿½×¶Î£¬¾¡¹Ü¹úÄÚÍâÒѾÓв»ÉÙÑо¿¿ª·¢¹¤×÷£¬µ«Ñо¿Éè¼Æ¸ßЧ¡¢¿ÉÀ©Õ¹ÇÒÒ×ÓÚʹÓõĴóÊý¾Ý»úÆ÷ѧϰϵͳÈÔÃæÁÙÖî¶àµÄ¼¼ÊõÌôÕ½¡£Òò´Ë£¬´óÊý¾Ý»úÆ÷ѧϰϵͳ½«ÊÇĿǰºÍδÀ´¼¸ÄêµÄÈȵãÑо¿ÁìÓò£¬¹¤Òµ½çºÍѧÊõ½ç¶¼½«³ÖÐøµØÍ¶ÈëÏ൱¶àµÄ×ÊÔ´½øÐÐÉîÈëµÄÑо¿¿ª·¢¹¤×÷¡£
ͬÑù£¬ËäÈ»³õ²½Ñо¿Éè¼ÆÁË¿çÆ½Ì¨´óÊý¾Ý»úÆ÷ѧϰϵͳOctopus£¬µ«ÆäÖÐÈÔÈ»ÓдóÁ¿ÐèÒª½øÒ»²½ÉîÈëÑо¿½â¾öºÍÍêÉÆµÄ¼¼ÊõÎÊÌ⣬ÀýÈç´ó¹æÄ£¾ØÕóÔËËãµÄÉî¶ÈÓÅ»¯¡¢Ï¡Êè¾ØÕóµÄ´æ´¢¹ÜÀíºÍ¼ÆËãÓÅ»¯¡¢Òì¹¹´óÊý¾Ý´¦ÀíÆ½Ì¨»·¾³Ï²»Í¬¾ØÕó¼ÆËãʱµÄƽ̨×Ô¶¯Ñ¡Ôñ¡¢»ùÓÚ¾ØÕó¼ÆËã±í´ïʽºÍ¼ÆËãÁ÷ͼµÄ¼ÆËãÓÅ»¯µÈ¡£´ËÍ⣬½öÓоØÕó¼ÆËãÄ£ÐÍ»¹²»ÄÜÂú×ãËùÓеĴóÊý¾Ý»úÆ÷ѧϰ¼ÆËãÐèÇ󣬻¹ÐèÒª¿¼ÂÇÆäËû¼ÆËãÄ£ÐÍ£¬ÈçͼģÐͺͲÎÊýÄ£ÐÍ£¨parameterserver£©µÄ»ìºÏʹÓã¬ÐγÉÒ»¸öÄÜÂú×ã¸÷ÖÖ´óÊý¾Ý»úÆ÷ѧϰËã·¨Éè¼ÆÐèÇóµÄ×ÛºÏϵͳ¡£ |