±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚcnblogs£¬ÎÄÕÂÌÖÂÛÁËÕâЩÄêµ÷¶È¼Ü¹¹ÊÇÈçºÎ·¢Õ¹µÄÒÔ¼°ÎªÊ²Ã´»áÕâÑù·¢Õ¹µÄÏà¹ØÄÚÈÝ¡£ |
|
¼¯Èºµ÷¶ÈÆ÷ÊÇÏÖÔÚÊý¾ÝÖÐÐÄÖзdz£ÖØÒªµÄÒ»¸ö×é¼þ£¬²¢ÇÒÕâÏÖÄêÒѾÓÐÁ˺ܴóµÄ·¢Õ¹¡£ËüµÄ¼Ü¹¹Ò²´ÓÖÐÐÄ»¯Éè¼Æ×ªÏò¸ü¼ÓÁé»î¡¢È¥ÖÐÐÄ»¯ºÍ·Ö²¼Ê½Éè¼Æ¡£È»¶øÐí¶àÏÖÔÚ¿ªÔ´µÄµ÷¶È¼Ü¹¹ÒÀ¾ÉÊÇÖÐÐÄ»¯Éè¼Æ»òÕßȱÉٺܶàÖ÷ÒªµÄÌØÐÔ£¬ÕâÐ©ÌØÐÔ¶ÔÓÚʵ¼ÊµÄÓû§À´Ëµ·Ç³£ÖØÒª£¬ÒòΪÕâЩºÃµÄÌØÐÔ¿ÉÒÔʹÊý¾ÝÖÐÐÄ»ñµÃºÜ¸ßµÄ×ÊÔ´ÀûÓÃÂÊ¡£
ÕâÆªÎÄÕÂÊÇÎÒÃÇ̽ÌÖ´ó¹æÄ£¼¯Èº×÷Òµµ÷¶ÈµÄµÚһƪÎÄÕ£¬×÷Òµµ÷¶ÈÔÚAmazon¡¢Google¡¢Facebook¡¢Microsoft»òYahoo£¡µÈ»¥ÁªÍø¹«Ë¾ÒѾÓÐÁ˺ܺõÄʵÏÖ£¬²¢ÇÒÏà¹ØµÄÐèÇóÒ²ÔÚ²»¶ÏÔö³¤¡£µ÷¶ÈÊÇÒ»¸ö·Ç³£ÖØÒªµÄÎÊÌ⣬ÒòΪËüÖ±½ÓÓ°Ïìµ½ÔËÐм¯ÈºµÄ¿ªÏú£¬Ò»¸öÔã¸âµÄµ÷¶È¿ò¼Ü»áµ¼Ö¼¯ÈºµÄ×ÊÔ´ÀûÓÃÂʺܵͣ¬ÄÇЩ°º¹óµÄ»úÆ÷×ÊÔ´Ôò»á°×°×ÀË·Ñ¡£È»¶ø¹â¿¿µ÷¶È¿ò¼ÜÒ²ÎÞ·¨ÊµÏֺܸߵÄ×ÊÔ´ÀûÓÃÂÊ£¬Èç¹û¼¯ÈºÃ»ÓÐ×ÐϸÅäÖ㬲»Í¬×÷ÒµÖ®¼äÏ໥¸ÉÈÅÒ²»áÓ°Ïìµ½×ÊÔ´µÄÀûÓÃÂÊ¡£
¼¯Èºµ÷¶È¼Ü¹¹µÄÑݽø¹ý³Ì
ÕâÆªÎÄÕÂÌÖÂÛÁËÕâЩÄêµ÷¶È¼Ü¹¹ÊÇÈçºÎ·¢Õ¹µÄÒÔ¼°ÎªÊ²Ã´»áÕâÑù·¢Õ¹¡£Í¼Ò»Õ¹Ê¾Á˼¯Èºµ÷¶ÈµÄ²»Í¬·½·¨£ºÆäÖлÒÉ«µÄ·½¿é¶ÔÓ¦Ò»¸ö»úÆ÷£¬²»Í¬ÑÕÉ«µÄԲȦ´ú±í²»Í¬µÄÈÎÎñ£¬ÓС°S¡±±êÖ¾µÄÔ²½Ç¾ØÐδú±íµ÷¶ÈÆ÷£¨Õâ¸öͼ¼ò»¯ÁËһЩ£¬Êµ¼ÊÉÏ£¬Ã¿Ì¨»úÆ÷ÔËÐжà¸öÈÎÎñ£¬Ðí¶àµ÷¶ÈÆ÷Êʺ϶à¸ö×ÊԴγ¶ÈµÄÈÎÎñ£¬¶ø²»ÊǼòµ¥µÄslots£©£¬¼ýÍ·´ú±íµ÷¶ÈÆ÷¾ö¶¨µÄ×÷Òµ·ÅÖÃλÖã¬ÈýÖÖÑÕÉ«´ú±í²»Í¬µÄ¹¤×÷¸ºÔØ£¨ÈçÍøÕ¾·þÎñ¡¢ÅúÁ¿·ÖÎöºÍ»úÆ÷ѧϰ£©¡£

ÖÐÐÄ»¯µ÷¶È¿ò¼Ü
Ðí¶à¼¯Èºµ÷¶È¿ò¼Ü£¬ÀýÈç´óÁ¿¸ßÐÔÄܼÆË㣨high-performance
computing£¬HPC£©µ÷¶ÈÆ÷¡¢ Borg µ÷¶ÈÆ÷¡¢¸÷ÖÖÔçÆÚµÄHadoopµ÷¶ÈÆ÷ºÍKubernetesµ÷¶ÈÆ÷¶¼ÊÇÖÐÐÄ»¯Éè¼ÆµÄµ÷¶È¿ò¼Ü¡£µ¥Ò»µÄµ÷¶È½ø³ÌÔÚһ̨»úÆ÷ÉÏÔËÐУ¨ÀýÈçHadoop
V1µÄJobTracker¡¢KubernetesµÄkube-scheduler£©£¬µ÷¶ÈÆ÷¸ºÔð½«ÈÎÎñÖ¸Åɸø¼¯ÈºÄڵĻúÆ÷¡£ÔÚÖÐÐÄ»¯µ÷¶È¿ò¼ÜÏ£¬ËùÓеŤ×÷¸ºÔض¼ÊÇÓÉÒ»¸öµ÷¶ÈÆ÷À´´¦Àí£¬ËùÓеÄ×÷Òµ¶¼Í¨¹ýÏàͬµÄµ÷¶ÈÂß¼À´´¦Àí£¨Èçͼ1a£©¡£ÕâÖּܹ¹ºÜ¼òµ¥²¢ÇÒͳһ£¬ÔÚÕâ¸ö»ù´¡ÉÏ·¢Õ¹³öÁËÐí¶à¸´Ôӵĵ÷¶ÈÆ÷¡£±ÈÈçParagonµ÷¶ÈÆ÷ºÍQuasarµ÷¶ÈÆ÷£¬ËüÃÇʹÓûúÆ÷ѧϰµÄ·½·¨À´±ÜÃâ¸ºÔØÖ®¼äÒò»¥ÏྺÕù×ÊÔ´¶ø²úÉúµÄ¸ÉÈÅ¡£

ÏÖÔڴ󲿷ֵļ¯Èº¶¼ÔËÐÐ×Ų»Í¬ÀàÐ͵ÄÓ¦Óã¨Ïà·´£¬ÈçHadoop MapReduceµÄÔçÆÚ×÷Òµ£©¡£È»¶ø£¬Î¬»¤Ò»¸ö´¦Àí»ìºÏ¸ºÔصĵ¥Ò»µ÷¶ÈÆ÷ÊÇÒ»¸öºÜ¼¬ÊÖµÄÎÊÌ⣬ÔÒòÈçÏ£º
Ï£Íûµ÷¶ÈÆ÷ÄÜÇø±ð´¦Àí³¤ÆÚÔËÐеÄ×÷ÒµºÍÅú´¦Àí×÷Òµ£¬ÕâÊÇÒ»¸öºÏÀíµÄÇëÇó¡£
ÒòΪ²»Í¬µÄÓ¦ÓÃÓв»Í¬µÄÐèÇó£¬ÈôҪȫ²¿Âú×ãÆäÐèÇóÔòÐèÒª²»¶ÏÔÚµ÷¶ÈÆ÷ÖÐÔö¼ÓÌØÐÔ£¬ÕâÑùÔö¼ÓÁËËüµÄÂß¼¸´ÔӶȺͲ¿ÊðÄѶȡ£
µ÷¶ÈÆ÷´¦Àí×÷ÒµµÄ˳Ðò±ä³ÉÁËÒ»¸öÎÊÌ⣺¶ÓÁÐЧӦ£¨ÀýÈçÍ·×èÈû£ºhead-of-line
blocking£©ºÍ×÷Òµ»ýѹÊÇÒ»¸öÎÊÌ⣬³ý·ÇÔÚÉè¼Æµ÷¶ÈÆ÷ʱ·Ç³£Ð¡ÐÄ¡£
×ÜÖ®£¬ÕâЩÌýÆðÀ´Êǹ¤³ÌʦµÄجÃΣ¬µ÷¶ÈÆ÷ά»¤Õ߻᲻¶ÏÊÕµ½Íùµ÷¶ÈÆ÷ÖÐÌí¼ÓÌØÐÔÒªÇóµÄÇåµ¥¡£
Á½¼¶µ÷¶È¼Ü¹¹
Á½¼¶µ÷¶È¿ò¼Üͨ¹ý½«×ÊÔ´µ÷¶ÈºÍ×÷Òµµ÷¶È·Ö¿ªµÄ·½Ê½À´½â¾öÕâ¸öÎÊÌâ¡£Á½¼¶µ÷¶ÈÔÊÐí¸ù¾ÝÌØ¶¨µÄÓ¦ÓÃÀ´¶¨×ö²»Í¬µÄ×÷Òµµ÷¶ÈÂß¼£¬²¢Í¬Ê±±£ÁôÁ˲»Í¬×÷ÒµÖ®¼ä¹²Ïí¼¯Èº×ÊÔ´µÄÌØÐÔ¡£Mesos¼¯Èº¹ÜÀíϵͳÊ×ÏÈʹÓÃÁËÁ½¼¶µ÷¶ÈµÄ·½·¨£¬YarnÔòÖ§³ÖÆäÓÐÏ޵İ汾¡£ÔÚMesosÖУ¬×ÊÔ´ÊÇÖ÷¶¯±»Ìṩ¸øÓ¦ÓòãµÄµ÷¶ÈÆ÷À´Ê¹Óõ썵÷¶ÈÆ÷¿ÉÒÔ´ÓϲãÌṩµÄ×ÊÔ´ÖнøÐÐÑ¡Ôñ£©£¬¶øYarnÔòÊÇÓÉÓ¦ÓòãÀ´ÇëÇó×ÊÔ´£¨²¢ÇÒ½ÓÊܱ»·ÖÅäµÄ×ÊÔ´£©¡£Èçͼ1bËùʾ£¬ÊÊÓÃÓÚÌØ¶¨¸ºÔصĵ÷¶ÈÆ÷£¨S0-S2£©Óë×ÊÔ´¹ÜÀíÆ÷½øÐн»»¥£¬×ÊÔ´¹ÜÀíÆ÷ÔòΪÿ¸ö¸ºÔض¯Ì¬»®·Ö¼¯ÈºµÄ×ÊÔ´¡£ÕâÊÇÒ»¸ö·Ç³£Áé»îµÄ·½Ê½£¬ËüÔÊÐíÕë¶ÔÌØ¶¨µÄ¸ºÔØÀ´×Ô¶¨Òåµ÷¶È²ßÂÔ¡£

µ«ÊÇ£¬Á½¼¶µ÷¶È¿ò¼ÜÒ²ÓÐһЩÎÊÌâ¡£Ó¦Óòãµ÷¶ÈÆ÷ÎÞ·¨¿´µ½ËùÓеÄ×ÊÔ´£¬Ò²¾ÍÊÇ˵£¬ËüÃÇûÓÐÈ«¾ÖÊӽǣ¬ÎÞ·¨¿´µ½×÷Òµ¿ÉÒÔ±»·Åµ½ÄÄЩ»úÆ÷ÉÏÖ´ÐС£Ïà·´£¬ËüÃÇÖ»ÄÜ¿´µ½×ÊÔ´¹ÜÀíÆ÷Ö÷¶¯ÌṩµÄ×ÊÔ´£¨Mesos£©»òÕß×ÊÔ´¹ÜÀíÆ÷·ÖÅ䏸ӦÓã¨Yarn£©µÄ²¿·Ö×ÊÔ´¡£ÕâÑùµÄÉè¼ÆÓм¸µãȱµã£º
¸ßÓÅÏȼ¶ÇÀÕ¼£¨¸ßÓÅÏȼ¶×÷Òµ»áÌß×ßµÍÓÅÏȼ¶×÷Òµ£©»á±äµÃºÜÄÑʵÏÖ¡£ÔÚ»ùÓÚofferµÄģʽÏ£¬±»ÔËÐÐÖеÄ×÷ÒµËùÕ¼ÓõÄ×ÊÔ´¶ÔÉϲãµ÷¶ÈÆ÷ÊDz»¿É¼ûµÄ£»ÔÚ»ùÓÚrequestµÄģʽÏ£¬µ×²ãµÄ×ÊÔ´¹ÜÀíÆ÷±ØÐëÄÜÀí½âÇÀÕ¼µÄ²ßÂÔ£¨Õâ¿ÉÄÜÓëÓ¦ÓóÌÐòÓйأ©¡£
µ÷¶ÈÆ÷ÎÞ·¨¿¼Âǵ½ÒòÆäËûÔËÐеŤ×÷¸ºÔØÔì³ÉµÄ¸ÉÈÅ¿ÉÄÜÓ°Ïìµ½×ÊÔ´µÄÖÊÁ¿£¨±ÈÈç¡°³³ÄÖµÄÁÚ¾Ó¡±Õ¼¾ÝÁËI/O´ø¿í£©£¬ÒòΪµ÷¶ÈÆ÷ÎÞ·¨¿´µ½ËüÃÇ¡£
Ó¦ÓÃÌØ¶¨µÄµ÷¶ÈÆ÷¶Ôµ×²ã×ÊÔ´µÄºÜ¶à²»Í¬·½ÃæºÜ¹ØÐÄ£¬µ«ÊÇËüÃÇ»ñµÃ×ÊÔ´µÄΨһ·½·¨¾ÍÊÇͨ¹ý×ÊÔ´¹ÜÀíÆ÷ÌṩµÄoffer/request½Ó¿Ú£¬Õâ¸ö½Ó¿ÚºÜÈÝÒ×±äµÃ·Ç³£¸´ÔÓ¡£
¹²Ïí״̬µ÷¶È¼Ü¹¹
¹²Ïí״̬µ÷¶Èͨ¹ý°ë·Ö²¼Ê½µÄģʽÀ´½â¾öÕâ¸öÎÊÌ⣬ÔÚÕâÖÖģʽÏÂÓ¦ÓòãµÄÿ¸öµ÷¶ÈÆ÷¶¼ÓµÓÐÒ»·Ý¼¯Èº×´Ì¬µÄ¸±±¾£¬²¢ÇÒµ÷¶ÈÆ÷»á¶ÀÁ¢µØ¶Ô¼¯Èº×´Ì¬¸±±¾½øÐиüУ¬Èçͼ1cËùʾ¡£Ò»µ©±¾µØµÄ״̬¸±±¾²úÉúÁ˱仯£¬µ÷¶ÈÆ÷»á·¢²¼Ò»¸öÊÂÎñÈ¥¸üÐÂÕû¸ö¼¯ÈºµÄ״̬£¬ÓÐʱºòÒòÁíÍâÒ»¸öµ÷¶ÈÆ÷ͬʱ·¢²¼ÁËÒ»¸ö³åÍ»µÄÊÂÎñʱ£¬ÊÂÎñ¸üÐÂÓпÉÄÜʧ°Ü¡£

ÔÚ¹²Ïí״̬µ÷¶ÈµÄ¿ò¼ÜÖУ¬×îÖøÃûµÄÊÇGoogleµÄOmega¡¢MicrosoftµÄApollo£¬ÒÔ¼°HashicorpµÄNomadÈÝÆ÷µ÷¶ÈÆ÷¡£ËùÓеÄÕâЩ¶¼ÊÇʹÓÃÒ»ÖÖ·½·¨ÊµÏÖ¹²Ïí״̬µ÷¶È£¬¾ÍÊÇOmegaÖеġ°cell
state¡±¡¢ApolloµÄ¡°resource monitor¡±ÒÔ¼°NomadÖеġ°plan queue¡±¡£Apollo¸úÆäËûÁ½¸öµ÷¶È¿ò¼Ü²»Í¬Ö®´¦ÔÚÓÚÆä¹²Ïí״̬ÊÇÖ»¶ÁµÄ£¬µ÷¶ÈÊÂÎñÊÇÖ±½ÓÌá½»µ½¼¯ÈºÖеĻúÆ÷ÉÏ£¬»úÆ÷×Ô¼º»á¼ì²é³åÍ»£¬À´¾ö¶¨ÊǽÓÊÜ»¹ÊǾܾøÕâ¸ö±ä»¯£¬ÕâʹµÃApollo¼´Ê¹ÔÚ¹²Ïí״̬ÔÝʱ²»¿ÉÓõÄÇé¿öÏÂÒ²¿ÉÒÔÖ´ÐС£
Âß¼ÉϵĹ²Ïí״̬µ÷¶È¼Ü¹¹Ò²¿ÉÒÔ²»Í¨¹ý½«Õû¸ö¼¯ÈºµÄ״̬·Ö²¼ÔÚÆäËûµØ·½À´ÊµÏÖ£¬ÕâÖÖ·½Ê½£¨ÓеãÏñApollo×öµÄ£©ÖУ¬Ã¿Ì¨»úÆ÷ά»¤Æä×Ô¼ºµÄ״̬²¢·¢Ë͸üеÄÇëÇ󵽯äËû¶Ô¸Ã½Úµã¸ÐÐËȤµÄ´úÀí£¬±ÈÈçµ÷¶ÈÆ÷¡¢É豸½¡¿µ¼à¿ØÆ÷ºÍ×ÊÔ´¼à¿ØÏµÍ³µÈ¡£Ã¿¸öÎïÀíÉ豸µÄ±¾µØ×´Ì¬¶¼³ÉΪÁËÕû¸ö¼¯ÈºµÄ¹²Ïí״̬µÄ·ÖƬ֮һ¡£
È»¶ø£¬¹²Ïí״̬µ÷¶È¼Ü¹¹Ò²ÓÐһЩȱµã£¬Ëü±ØÐ빤×÷ÔÚÓÐÎȶ¨ÐÅÏ¢µÄÇé¿öÏ£¨Õâµã¸úÖÐÐÄ»¯µ÷¶ÈÆ÷²»Í¬£©£¬ÔÚ¼¯Èº×ÊÔ´µÄ¾ºÕù¶ÈºÜ¸ßµÄÇé¿öÏÂÓпÉÄÜÔì³Éµ÷¶ÈÆ÷µÄÐÔÄÜϽµ£¨¾¡¹ÜÆäËû¿ò¼ÜÒ²ÓпÉÄܳöÏÖÕâÖÖÇé¿ö£©¡£
È«·Ö²¼Ê½¼Ü¹¹
È«·Ö²¼Ê½¼Ü¹¹¸ü¼ÓÈ¥ÖÐÐÄ»¯£ºµ÷¶ÈÆ÷Ö®¼ä¸ù±¾Ã»ÓÐÈκεÄе÷£¬²¢ÇÒʹÓúܶà¸÷×Ô¶ÀÁ¢µÄµ÷¶ÈÆ÷À´´¦Àí²»Í¬µÄ¸ºÔØ£¬Èçͼ1dËùʾ¡£Ã¿¸öµ÷¶ÈÆ÷¶¼×÷ÓÃÔÚ×Ô¼º±¾µØ£¨²¿·Ö»òÕß¾³£¹ýʱµÄ£©¼¯Èº×´Ì¬ÐÅÏ¢¡£ÔÚ·Ö²¼Ê½µ÷¶È¼Ü¹¹Ï£¬×÷Òµ¿ÉÒÔÌá½»¸øÈÎÒâµÄµ÷¶ÈÆ÷£¬²¢ÇÒÿ¸öµ÷¶ÈÆ÷¿ÉÒÔ½«×÷Òµ·¢Ë͵½¼¯ÈºÖÐÈκεĽڵãÉÏÖ´ÐС£ÓëÁ½¼¶µ÷¶Èµ÷¶È¿ò¼Ü²»Í¬µÄÊÇ£¬Ã¿¸öµ÷¶ÈÆ÷²¢Ã»ÓиºÔðµÄ·ÖÇø£¬Ïà·´µÄÊÇ£¬È«¾Öµ÷¶ÈºÍ×ÊÔ´»®·Ö¶¼ÊÇ·þ´Óͳ¼ÆºÍËæ»ú·Ö²¼µÄ£¬Óë¹²Ïí״̬µ÷¶È¼Ü¹¹ÓÐЩÏàËÆ£¬µ«ÊÇûÓÐÖÐÑë¿ØÖÆ¡£

¾¡¹ÜÈ«·Ö²¼Ê½µ÷¶È¼Ü¹¹µÄ¸ÅÄ¶à¸öËæ»úÑ¡Ôñ£©ÊÇ´Ó1996Äê³öÏֵģ¬ÏÖ´úÒâÒåÉϵķֲ¼Ê½µ÷¶ÈÓ¦¸ÃÊÇ´ÓSparrowÂÛÎÄ¿ªÊ¼µÄ¡£SparrowÂÛÎĵĹؼüÊÇËü¼ÙÉ輯ȺÉÏÈÎÎñÖÜÆÚ¶¼»á±äµÄÔ½À´Ô½¶Ì£¬ÕâµãÊÇÒÔµ±Ê±Ò»¸öÌÖÂÛ×÷Ϊ֧³Å£ºÏ¸Á£¶ÈµÄÈÎÎñÓкܶàµÄÓÅÊÆ¡£Òò´Ë£¬×÷Õß¼ÙÉè×÷Òµ»á±äµÃÔ½À´Ô½¶à£¬ÕâÒâζ×ŵ÷¶ÈÆ÷±ØÐëÖ§³Ö¸ü¸ß¾ö²ßµÄÍÌÍÂÁ¿£¬¶øµ¥Ò»µÄµ÷¶ÈÆ÷²¢²»ÄÜÖ§³ÖÈç´Ë¸ßµÄÍÌÍÂÁ¿£¨¼ÙÉèÿÃëÓÐÉϰÙÍò¸öÈÎÎñ£©£¬Òò´ËSparrow½«ÕâЩ¸ºÔØ·ÖÉ¢µ½ºÜ¶àµ÷¶ÈÆ÷ÉÏ¡£
Õâ¸öʵÏÖµÄÒâÒåÖØ´ó£ºÈ±ÉÙÖÐÑë¿ØÖÆÔÚÀíÂÛÉϺÜÎüÒýÈË£¬²¢Çҷdz£ºÏÊÊijЩ¸ºÔØ£¬ÎÒÃÇ»áÔÚºóÃæµÄÁ¬ÔØÖнøÐÐÌÖÂÛ¡£Ä¿Ç°£¬ÎÒÃÇ×¢Òâµ½ÒòΪ·Ö²¼Ê½µ÷¶ÈÆ÷ÊDz»Ðµ÷µÄ£¬ËüÏà¶ÔÓÚÖÐÐÄ»¯µ÷¶È¡¢Á½¼¶µ÷¶È»ò¹²Ïí״̬µ÷¶ÈÓµÓиü¼òµ¥µÄÂß¼£¬ÀýÈ磺
·Ö²¼Ê½µ÷¶ÈÆ÷ÊÇ»ùÓÚ¼òµ¥µÄ¡°slot¡±¸ÅÄ½«Ã¿Ì¨»úÆ÷·Ö³Én¸ö±ê×¼µÄ¡°slot¡±£¬²¢·ÅÖÃn¸ö²¢ÐÐ×÷Òµ£¬Õâ¼ò»¯ÁËÈÎÎñµÄ×ÊÔ´ÐèÇó²»Í³Ò»µÄÊÂʵ¡£
ËüʹÓÃÁËÓµÓмòµ¥·þÎñ¹æÔòµÄworker-side¶ÓÁУ¨ÀýÈ磬SparrowÖеÄFIFO¹æÔò£©£¬ÕâÑùÏÞÖÆÁ˵÷¶ÈÆ÷µÄÁé»îÐÔ£¬ÒòΪµ÷¶ÈÆ÷Ö»ÄÜÑ¡Ôñ½«×÷Òµ·ÅÖÃÔÚÄĄ̈É豸µÄ¶ÓÁÐÉÏ¡£
·Ö²¼Ê½µ÷¶ÈÆ÷ºÜÄÑÖ´ÐÐÈ«¾Ö²»±äÁ¿£¨ÀýÈ磬¹«Æ½²ßÂÔºÍÑϸñµÄÓÅÏȼ¶ÓÅÏÈ£©£¬ÒòΪËüûÓÐÖÐÑë¿ØÖÆ¡£
ÒòΪ·Ö²¼Ê½µ÷¶ÈÆ÷ÊÇ»ùÓÚ×îÉÙ֪ʶ×ö³ö¿ìËÙ¾ö²ß¶øÉè¼Æ£¬ËüÎÞ·¨Ö§³Ö»ò³Ðµ£¸´ÔÓ»òÌØ¶¨Ó¦Óõĵ÷¶È²ßÂÔ£¬ÀýÈ磬±ÜÃâÈÎÎñÖ®¼äµÄÏ໥¸ÉÈŶԷֲ¼Ê½µ÷¶ÈÀ´ËµºÜÀ§ÄÑ¡£
»ìºÏʽµ÷¶È¼Ü¹¹
»ìºÏʽµ÷¶È¼Ü¹¹ÊÇ×î½ü£¨Ñ§Êõ½çÌá³öµÄ£©Ìá³öµÄ½â¾ö·½·¨£¬ËüµÄ³öÏÖÊÇΪÁ˽â¾öÈ«·Ö²¼Ê½¼Ü¹¹µÄȱµã£¬Ëü½áºÏÁËÖÐÐÄ»¯µ÷¶ÈºÍ¹²Ïí״̬µÄÉè¼Æ¡£ÕâÖÖ·½Ê½ÀýÈçTarcil¡¢MercuryºÍHawkÒ»°ãÓÐÁ½Ìõµ÷¶È·¾¶£¬Ò»ÌõÊÇΪ²¿·Ö¸ºÔØÉè¼ÆµÄ·Ö²¼Ê½µ÷¶È£¨ÀýÈç·Ç³£¶ÌµÄ×÷Òµ»òÕßµÍÓÅÏȼ¶µÄÅú×÷Òµ£©£¬ÁíÍâÒ»ÌõÊÇÖÐÐÄʽ×÷Òµµ÷¶ÈÀ´´¦ÀíʣϵĸºÔØ£¬Èçͼ1eËùʾ¡£»ìºÏµ÷¶ÈÆ÷µÄÿ¸ö×é³É²¿·ÖµÄÐÐΪÓëÉÏÊöÃèÊöµÄ²¿·Ö¼Ü¹¹Ïàͬ¡£Êµ¼ÊÉÏ£¬¾ÝÎÒËùÖª£¬Ä¿Ç°»¹Ã»ÓÐÕæÕýµÄ»ìºÏµ÷¶ÈÆ÷Ó¦ÓÃÓÚÉú²ú»·½Úµ±ÖС£

ʵ¼Êº¬Òå
¶Ô²»Í¬µ÷¶ÈÆ÷¼Ü¹¹µÄÏà¶ÔÓÅȱµãµÄÌÖÂÛ²¢²»Ö»ÊÇѧÊõ̽ÌÖ£¬¾¡¹ÜËü×ÔÈ»Î§ÈÆ×ÅÑо¿ÂÛÎÄ¡£´Ó¹¤Òµ½ç½Ç¶È¶ÔÓÚBorg¡¢MesosºÍOmegaÂÛÎĵÄÉîÈëÌÖÂÛ¿ÉÒԲμûAndrew
WangµÄ²©ÎÄ¡£´ËÍ⣬ºÜ¶àÒÔÉÏÌÖÂÛµÄϵͳ¶¼ÒѾ²¿Êðµ½ÁË´óÐÍÆóÒµµÄÉú²úϵͳÖÐÁË£¨±ÈÈçMicrosoftµÄApollo¡¢GoogleµÄBorg¡¢AppleµÄMesos£©£¬·´¹ýÀ´£¬ÕâЩϵͳ¼¤ÀøÁËÆäËû¿ÉÓÃÓÚ¿ªÔ´µÄÏîÄ¿¡£
Èç½ñ£¬ºÜ¶à¼¯ÈºÔËÐÐÈÝÆ÷»¯µÄ¸ºÔØ£¬Òò´ËÓÐһϵÁлùÓÚÈÝÆ÷µÄ¿ò¼Ü£¨Orchestration
Frameworks£©³öÏÖÁË£¬ËüÃÇÓëGoogleºÍÆäËû³ÆÎª¡°¼¯Èº¹ÜÀíϵͳ¡±µÄºÜÏàËÆ¡£È»¶ø£¬ºÜÉÙÓйØÓÚÕâЩµ÷¶ÈÆ÷µÄ¿ò¼ÜºÍÉè¼ÆÔÔòµÄÏêϸÌÖÂÛ£¬ËüÃǸü¶àµÄÊǼ¯ÖÐÓÚÃæÏòÓû§µ÷¶ÈµÄAPI£¨ÀýÈçÕâÆªArmand
GrilletµÄ±¨µÀ£¬ÎÄÖбȽÏÁËDocker Swarm¡¢Mesos/MarathonºÍKubernetesµÄĬÈϵ÷¶ÈÆ÷£©£¬È»¶øºÜ¶à¿Í»§¼È²»¶®²»Í¬µ÷¶ÈÆ÷µÄÇø±ð£¬Ò²²»ÖªµÀÄĸö¸üÊʺÏ×Ô¼ºµÄÓ¦Óá£
ͼ2չʾÁËÒ»²¿·Ö¿ªÔ´¿ò¼ÜµÄ¸Å¿ö£¬°üÀ¨ËüÃǵĽṹºÍµ÷¶ÈÆ÷ËùÖ§³ÖµÄ¹¦ÄÜ¡£ÔÚͼ±íµÄ×îµÍ¶Ë£¬Ò²°üÀ¨GoogleºÍMicrosoftûÓпªÔ´µÄϵͳ×÷Ϊ²Î¿¼¡£×ÊÔ´Á£¶È£¨Resource
Granularity£©ÕâÒ»ÁÐչʾÁ˵÷¶ÈÆ÷ÊÇ·ÖÅä×÷Òµ¸ø¹Ì¶¨´óСµÄslots£¬»¹Êǰ´ÕÕ×÷Òµ¶àά¶ÈµÄ×ÊÔ´ÐèÇóÀ´·ÖÅäµÄ£¨ÀýÈçCPU¡¢ÄÚ´æ¡¢´ÅÅÌIO´ø¿í¡¢ÍøÂç´ø¿íµÈ£©¡£

¾ö¶¨Ê¹ÓÃÄĸöµ÷¶È¿ò¼ÜÖ÷ÒªµÄÒ»µã¾ÍÊÇ¿´¼¯ÈºÖÐÊÇ·ñÔËÐÐÒ»¸öÒì¹¹£¨ÀýÈç»ìºÏµÄ£©¸ºÔØ¡£ÀýÈçÒ»¸öǰ¶Ë·þÎñ£¨ÀýÈç¸ºÔØ¾ùºâ»òmemcached£©ºÍÅúÁ¿Êý¾Ý·ÖÎö×÷Òµ£¨ÀýÈçMapReduce»òspark£©Ïà½áºÏµÄÉú²ú»·¾³£¬ÕâÖÖ×éºÏÓÐÀûÓÚÌá¸ßϵͳµÄ×ÊÔ´ÀûÓÃÂÊ£¬µ«ÊDz»Í¬µÄÓ¦ÓöԵ÷¶ÈµÄÐèÇóÓÐËù²»Í¬¡£ÔÚ×÷Òµ»ì²¿µÄÇé¿öÏ£¬ÖÐÐÄ»¯µ÷¶È¿ÉÄܵ¼ÖÂÈÎÎñµÄ´ÎÓÅ·ÖÅ䣬ÒòΪ²»ÄÜ»ùÓÚµ¥¸öÓ¦ÓýøÐÐÂß¼µÄ¶àÑù»¯´¦Àí£¬Òò´ËÔÚÕâÖÖÇé¿öÏ£¬Á½¼¶µ÷¶ÈºÍ¹²Ïí״̬µ÷¶È¿ÉÄܸü¼ÓºÏÊÊ¡£
´ó¶àÊýÃæÏòÓû§·þÎñµÄ¸ºÔØÔËÐÐÔÚ×ÊÔ´ÄÜÂú×ã·åÖµÐèÇóµÄÈÝÆ÷ÖУ¬µ«ÊÇʵ¼ÊÉÏÕâЩ×ÊÔ´¶¼Êǹý¶È·ÖÅäµÄ£¬ÔÚÕâÖÖÇé¿öÏ£¬ÄÜÓлú»á½µµÍ¸øµÍÓÅÏȼ¶¸ºÔعý¶à·ÖÅä×ÊÔ´£¨ÄܼÌÐø±£Ö¤¸ºÔصÄQoS£©¶ÔÌá¸ß¼¯ÈºµÄЧÂÊÊǷdz£¹Ø¼üµÄ¡£¾¡¹ÜkubernetesÓµÓÐÏà¶Ô±È½Ï³ÉÊìµÄ·½°¸£¬MesosÊÇĿǰΨһ֧³ÖÕâÖÖ¹ý¶à·ÖÅä×ÊÔ´µÄ¿ªÔ´ÏµÍ³¡£ÎÒÃÇÆÚ´ýδÀ´ÔÚÕâ¸ö·½ÃæÓиü¶àµÄ¹¤×÷£¬ÒòΪ¸ù¾ÝGoogleµÄBorg¼¯ÈºÀ´¿´ºÜ¶à¼¯ÈºµÄÀûÓÃÂÊÒÀÈ»µÍÓÚ60-70%¡£ÔÚºóÐøµÄÎÄÕÂÖУ¬ÎÒÃǽ«¹Ø×¢×ÊÔ´Ô¤¹À¡¢¹ý¶È·ÖÅäºÍÓÐЧÌá¸ß»úÆ÷µÄ×ÊÔ´ÀûÓÃÂÊ¡£
×îºó£¬Ìض¨µÄ·ÖÎöºÍOLAPÓ¦Óã¨ÀýÈçDremel»òÕßSparkSQL
queries£©»á´ÓÈ«·Ö²¼Ê½µ÷¶ÈÆ÷ÊÜÒæ£¬È»¶ø£¬È«·Ö²¼Ê½µ÷¶ÈÆ÷£¨ÈçSparrow£©ÓÐÑϸñµÄ¹¦ÄÜÉèÖã¬Òò´Ëµ±¼¯ÈºµÄ¸ºÔØÊÇͬ¹¹£¨±ÈÈçËùÓÐ×÷ÒµµÄÔËÐÐʱ¼äÊÇ´ó¸ÅÏàͬµÄ£©¡¢ÅäÖÃʱ¼ä¶Ì£¨Ò²¾ÍÊÇÈÎÎñÄܱ»µ÷¶Èµ½³¤Ê±¼äÔËÐеÄworkerÉÏ£¬ÀýÈçMapReduce×÷ÒµÔÚYARNÖÐÔËÐУ©¡¢ÈÎÎñͨÁ¿¸ß£¨´ó²¿·Öµ÷¶ÈµÄ¾ö¶¨±ØÐëÄÜÔÚ¶Ìʱ¼äÄÚ×ö³ö£©Ê±·Ç³£ºÏÊÊ¡£ÎÒÃǽ«ÔÚ½ÓÏÂÀ´µÄÎÄÕÂÖÐÌÖÂÛÕâЩÌõ¼þ£¬²¢ÇÒÌÖÂÛΪʲôȫ·Ö²¼Ê½µ÷¶ÈÆ÷ºÍ»ìºÏʽµ÷¶ÈÆ÷Öеķֲ¼Ê½×é¼þÖ»¶ÔÕâЩӦÓÃÓÐЧ¡£ÏÖÔÚ£¬ÎÒÃÇ¿ÉÒÔÖ¤Ã÷·Ö²¼Ê½µ÷¶È±ÈÆäËûµ÷¶È¿ò¼Ü¸ü¼Ó¼òµ¥£¬µ«ÊDz»Ö§³Ö¶àά¶ÈµÄ×ÊÔ´¡¢¹ý¶È·ÖÅäºÍÖØÐµ÷¶È¡£
×ÜÖ®£¬Í¼2Öеıí¸ñ±íÃ÷¶ÔÓÚ¿ªÔ´µÄµ÷¶È¿ò¼ÜÒÀ¾ÉÓÐÒ»¶Î·Ҫ×ߣ¬Ö±µ½ËüÃÇÄÜÆ¥ÅäһЩ¸ß¼¶µÄÅäÖ᣿ÉÒÔ´ÓÒÔϼ¸¸ö·½ÃæÀ´²ÉÈ¡Ðж¯£º¹¦ÄÜȱʧ¡¢×ÊÔ´ÀûÓÃÂʵ͡¢×÷ÒµµÄÐÔÄܲ»¿É²âºÍ¡°³³ÄÖµÄÁÚ¾Ó¡±½µµÍЧÂÊ£¬²¢ÇÒÐèÒª½«elaborate
hacks¼ÓÈëµ½µ÷¶ÈÆ÷ÖÐÀ´Ö§³ÖÓû§µÄÐèÒª¡£
È»¶ø£¬ÕâÀïÓÐһЩºÃÏûÏ¢£º¾¡¹Ü½ñÌ컹Óкܶ༯ȺÈÔȻʹÓÃÖÐÐÄ»¯µ÷¶È£¬µ«ÊǴ󲿷ÖÒѾ¿ªÊ¼Ç¨ÒƵ½¸üÁé»îµÄÉè¼ÆÖС£Kubernetes½ñÌìÒѾ¿ÉÒÔÖ§³Öµ÷¶ÈÆ÷²å¼þ£¨kube-scheduler
pod¿ÉÒÔ±»ÆäËû¼æÈݵ÷¶ÈpodµÄAPIËùÌæ´ú£©£¬¸ü¶àµ÷¶ÈÆ÷´Ó1.2°æ±¾¿ªÊ¼Ö§³Ö¡°À©Õ¹Æ÷¡±À´Ìṩ¶¨ÖÆ»¯²ßÂÔ¡£¾ÝÎÒÁ˽⣬Docker
SwarmÔÚδÀ´¿ÉÄÜÒ²»áÖ§³Öµ÷¶ÈÆ÷²å¼þ¡£
ÏÂÒ»²½
ÕâһϵÁеÄÏÂһƪÎÄÕ½«»áÌÖÂÛÈ«·Ö²¼Ê½¼Ü¹¹¶ÔÓÚ¿ÉÀ©Õ¹Ê½¼¯Èºµ÷¶ÈÊÇ·ñÊǹؼüµÄ¼¼Êõ´´Ð£¨·´¶ÔÉùÒô˵£º²»ÊDZØÐëµÄ£©¡£È»ºó£¬ÎÒÃÇ»áÌÖÂÛ×ÊÔ´ÊÊÅä²ßÂÔ£¨¶ÔÌá¸ßÀûÓÃÂʺܹؼü£©£¬×îºóÌÖÂÛÎÒÃÇFirmamentµ÷¶Èƽ̨ÈçºÎ¼¯³É¹²Ïí״̬µ÷¶È¿ò¼ÜºÍÖÐÐĵ÷¶È¿ò¼ÜµÄÓŵ㣬ÒÔ¼°È«·Ö²¼Ê½µ÷¶ÈÆ÷µÄËÙ¶ÈÎÊÌâ¡£
|