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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Mesos ¼Ü¹¹ÒÔ¼°Ô´ÂëdzÎö
 
 
  3458  次浏览      27
 2021-4-22  
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁËÉè¼ÆÀíÄîÒÔ¼°¼Ü¹¹¡¢ÀúÊ·Ñݽø¡¢×ÊÔ´³åÍ»ÒÔ¼°¸ôÀë»úÖÆ¡¢Ô´Âë¼Ü¹¹·ÖÎöµÈÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×ÔÓÚstudygolang.com£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼­¡¢ÍƼö¡£

Mesos °´ÕÕ¹Ù·½µÄ½éÉÜ£¬ÊÇ·Ö²¼Ê½²Ù×÷ϵͳµÄÄںˡ£Ä¿±êÊÇ ¡±Program against your datacenter like it¡¯s a single pool of resources¡±£¬¼´¿ÉÒÔ½«Õû¸öÊý¾ÝÖÐÐĵ±×öһ̨µçÄÔÒ»ÑùʹÓ᣿ÉÒÔ˵Õâ¸öÄ¿±êÊÇËùÓÐÐû³Æ×Ô¼ºÊÇDCOSµÄϵͳµÄ¹²Í¬Ä¿±ê£¬±¾ÎĴӼܹ¹ºÍÔ´Âë²ãÃæ·ÖÎöMesosÒÔ¼°Öܱ߿ò¼Ü£¬¿´¿´MesosÊÇÈçºÎʵÏÖÕâ¸öÄ¿±êµÄ£¬µ±Ç°¾àÕâ¸öÄ¿±ê»¹Óжà´ó²î¾à¡£×îºó±È½ÏÁËÒ»ÏÂMesosºÍKubernetesÕâÁ½¸ö¶¼ÊÜGoogleµÄBorgÓ°ÏìµÄϵͳµÄÒìͬ¡£

ÔĶÁ¶ÔÏ󣺶ÔMesos»òÕß·Ö²¼Ê½ÏµÍ³¸ÐÐËȤµÄ¼¼ÊõÈË

Éè¼ÆÀíÄîÒÔ¼°¼Ü¹¹

ÒýÓÃMesos paperÀïµÄÒ»¾ä»°£¬À´ËµÃ÷MesosµÄÉè¼ÆÀíÄ

define a minimal interface that enables efficient resource sharing across frameworks, and otherwise push control of task scheduling and execution to the frameworks

¶¨ÒåÒ»¸ö×îС»¯µÄ½Ó¿ÚÀ´Ö§³Ö¿ç¿ò¼ÜµÄ×ÊÔ´¹²Ïí£¬ÆäËûµÄµ÷¶ÈÒÔ¼°Ö´Ðй¤×÷¶¼Î¯Íиø¿ò¼Ü×Ô¼ºÀ´¿ØÖÆ¡£

Õâ¾ä»°±êÖ¾Mesos²»ÊÔͼ×÷Ϊһ¸öһջʽ½â¾öÎÊÌâµÄϵͳ£¬¶øÊÇÒÔ×îСµÄ³É±¾À´ÊµÏÖ×ÊÔ´¹²Ïí¡£ÏÈÀ´¿´¿´¹Ù·½ÌṩµÄ¼Ü¹¹Í¼£º

Ö÷Òª×é¼þÒÔ¼°¸ÅÄ

Zookeeper Ö÷ÒªÓÃÀ´ÊµÏÖMasterµÄÑ¡¾Ù£¬Ö§³ÖMasterµÄ¸ß¿ÉÓá£

Master MesosµÄÖ÷½Úµã£¬½ÓÊÕSlaveºÍFramework schedulerµÄ×¢²á£¬·ÖÅä×ÊÔ´¡£

Slave ´Ó½Úµã£¬½ÓÊÕmaster·¢À´µÄtask£¬µ÷¶ÈexecutorÈ¥Ö´ÐС£

Framework ±ÈÈçÉÏͼÖеÄHadoop£¬MPI¾ÍÊÇFramework£¬°üÀ¨scheduler£¬executorÁ½²¿·Ö¡£scheduler¶ÀÁ¢ÔËÐУ¬Æô¶¯ºó×¢²áµ½master£¬½ÓÊÕmaster·¢Ë͵ÄResource OfferÏûÏ¢£¬À´¾ö¶¨ÊÇ·ñ½ÓÊÜ¡£ExecutorÊǸøslaveµ÷Óõģ¬Ö´ÐÐframeworkµÄtask¡£MesosÄÚÖÃÁËCommandExecutor£¨Ö±½Óµ÷ÓÃshell£©ºÍDockerExecutorÁ½ÖÖexecutor£¬ÆäËûµÄ×Ô¶¨ÒåExecutorÐèÒªÌṩuri£¬¹©slaveÏÂÔØ¡£

Task Mesos×îÖ÷ÒªµÄ¹¤×÷Æäʵ¾ÍÊÇ·ÖÅä×ÊÔ´£¬È»ºóѯÎÊschedulerÊÇ·ñ¿ÉÒÔÀûÓøÃ×ÊÔ´Ö´ÐÐTask£¬scheduler½«×ÊÔ´ºÍTask°ó¶¨ºó½»ÓÉMaster·¢Ë͸øÖ¸¶¨µÄSlaveÖ´ÐС£Task¿ÉÒÔÊdz¤ÉúÃüÖÜÆÚµÄ£¬Ò²¿ÉÒÔʹÓÃÅúÁ¿µÄ¶ÌÉúÃüÖÜÆÚµÄ¡£

¹Ù·½ÌṩµÄÁíÍâÒ»¸ö×ÊÔ´·ÖÅäµÄÀý×Ó£º

Slave1 Ïò Master ±¨¸æ£¬ÓÐ4¸öCPUºÍ4 GBÄÚ´æ¿ÉÓÃ

Master ·¢ËÍÒ»¸ö Resource Offer ¸ø Framework1 À´ÃèÊö Slave1 ÓжàÉÙ¿ÉÓÃ×ÊÔ´

FrameWork1 ÖÐµÄ FW Scheduler»á´ð¸´ Master£¬ÎÒÓÐÁ½¸ö Task ÐèÒªÔËÐÐÔÚ Slave1£¬Ò»¸ö Task ÐèÒª<2¸öCPU£¬1 GBÄÚ´æ=¡±¡±>£¬ÁíÍâÒ»¸öTaskÐèÒª<1¸öCPU£¬2 GBÄÚ´æ=¡±¡±>

×îºó£¬Master ·¢ËÍÕâЩ Tasks ¸ø Slave1¡£È»ºó£¬Slave1»¹ÓÐ1¸öCPUºÍ1 GBÄÚ´æÃ»ÓÐʹÓã¬ËùÒÔ·ÖÅäÄ£¿é¿ÉÒÔ°ÑÕâЩ×ÊÔ´Ìṩ¸ø Framework2

Õâ¸öÀý×Ó¿ÉÒÔ¿´³öÀ´£¬MesosµÄºËÐŤ×÷ÆäʵºÜÉÙ£¬×ÊÔ´¹ÜÀíºÍ·ÖÅäÒÔ¼°taskת·¢¡£µ÷¶ÈÓÉFrameworkʵÏÖ£¬taskµÄ¶¨ÒåÒÔ¼°¾ßÌåÖ´ÐÐÒ²ÓÉFrameworkʵÏÖ£¬MesosµÄ×ÊÔ´·ÖÅäÁ£¶ÈÊǰ´taskµÄ£¬µ«ÓÉÓÚexecutorÖ´ÐÐtask¿ÉÄÜÔÚͬһ¸ö½ø³ÌÖÐʵÏÖ£¬ËùÒÔ×ÊÔ´ÏÞÖÆÖ»ÊÇÒ»ÖÖÁ÷¿ØµÄ»úÖÆ£¬²¢²»ÄÜʵ¼ÊµÄ¿ØÖƵ½taskÕâ¸öÁ£¶È¡£

¿´ÁËÉÏÃæ¹Ù·½µÄ¼Ü¹¹ËµÃ÷£¬´óÔ¼Ó¦¸ÃÃ÷°×ÁËMesosµÄ´óÖ¼ܹ¹£¬µ«¾ßÌåMesosΪʲôҪ×ö³ÉÕâÑù£¬ÏÂÃæÎÒÃǾßÌå·ÖÎöÏ¡£

ÀúÊ·Ñݽø

ÎÒÃǰÑʱ¼ä»ØÍ˵½Mesos·¢Ã÷µÄ2009Ä꣬ÄÇʱºòHadoopÖð½¥³ÉÊ죬²¢¹ã·ºÓ¦Óã¬ÕýÔÚÍÌÊÉ×Å´ó¼ÒµÄ·þÎñÆ÷¡£Sparkµ±Ê±Ò²ÔÚÔÍÄðÖС£¶ø·þÎñÆ÷ÅäÖùÜÀíÁìÓòPuppet»¹Ã»·¢²¼1.0£¬Chef²Å¸Õ³öÏÖ£¬¡ºConfiguration management Infrastructure as Code¡»µÄ˼Ïë²ÅÂýÂý±»½ÓÊÜ£¬Ansible/Salt»¹Ã»³öÏÖ¡£´ó¼Ò¹ÜÀí·þÎñÆ÷»¹ÊǾ²Ì¬»®·ÖµÄ·½Ê½£¬¹ºÂò·þÎñÆ÷µÄʱºò¾Í°²ÅźÃÁË£¬Õ⼸̨·þÎñÆ÷ÉÏÔËÐÐʲô·þÎñ£¬Ó¦¸ÃÅäÖöàÉÙCPU/ÄÚ´æ/´ÅÅÌ£¬°²×°Î¬»¤»¹¶àÓõÄÊÇshell½Å±¾¡£

¾²Ì¬¹ÜÀí·þÎñÆ÷£¬ÎÞÂÛÊÇÓÃshell»¹ÊÇPuppetÕâÖÖ¹¤¾ß£¬Ò»·½ÃæÊDZȽÏÀË·Ñ×ÊÔ´£¬ÁíÍâÒ»·½Ãæ·þÎñ¹ÊÕϻָ´£¬·þÎñÇ¨ÒÆ¶¼ÐèÒªÈ˹¤½éÈ룬ÒòΪÕâÖÖ¹¤¾ß¶¼Ö»ÔÚ²¿Êðʱ½øÐйÜÀí£¬·þÎñ½ø³ÌÔËÐкó¾Í²»¹é²¿Ê𹤾߹ÜÀíÁË¡£¶øMesosÔò¿´µ½ÁËÕâÖÖ·½Ê½µÄ±×¶Ë£¬ÊÔͼʵÏÖÒ»¸ö×ÊÔ´¹²ÏíµÄƽ̨£¬Ìá¸ß×ÊÔ´ÀûÓÃÂÊ£¬ÊµÏÖ¶¯Ì¬ÔËά¡£

°´ÕÕÕâÖÖ·½Ê½¾Í±È½ÏÈÝÒ×Àí½âMesosµÄ×ö·¨£¬MesosµÄmasterÏ൱ÓÚPuppet/SaltµÄmaster£¬MesosµÄslaveÏ൱ÓÚPuppet/SaltµÄagent£¬¶þÕ߸ɵÄÊÂÇé¶¼ÊǰÑÖ¸Áîͨ¹ýmaster·¢Ë͸øslave/agentÖ´ÐУ¬Çø±ðÊÇPuppet/Salt³É¹¦Ö´Ðкó¾Í²»¹ØÐÄÁË£¬¶øMesosÖ´Ðкó»áÔÚMasterά»¤taskµÄ״̬£¬task¹Òµôºó¿ÉÒÔÖØÆô»òÕßÇ¨ÒÆ¡£

ͬʱMesos¿´µ½HadoopµÈ·Ö²¼Ê½ÏµÍ³¶¼×Ô¼ºÊµÏÖÁËschedulerÒÔ¼°executor£¬ËùÒÔ½«schedulerÒÔ¼°executorµÄ¾ßÌåʵÏÖÈóöÀ´£¬Í¨¹ýÖÆ¶¨Framework±ê×¼£¬ÓɵÚÈý·½·Ö²¼Ê½¿ò¼Ü×Ô¼ºÊµÏÖ£¬×Ô¼ºÖ»¸ºÔðת·¢taskµ½slave£¬ÓÉslaveµ÷ÓÃFrameworkµÄexecutorÈ¥Ö´ÐÐtask¡£

Ò²¾ÍÊÇ˵ÓÉÓÚÀúʷʱ»úµÄÎÊÌ⣬Mesos²ÉÓÃÁËÒ»ÖÖ±£ÊصIJßÂÔÀ´½øÐÐÑݽø¡£

×ÊÔ´³åÍ»ÒÔ¼°¸ôÀë»úÖÆ

×ÊÔ´¹²Ïíµ¼ÖµÄÊ×ÒªÎÊÌâ¾ÍÊÇÈçºÎ½â¾ö×ÊÔ´³åÍ»ÎÊÌ⣺

cpu/mem Õâ¸öMesosĬÈÏÄÚÖÃÁËÒ»¸öMesos Containerizer£¬¿ÉÒÔͨ¹ýcgroupsºÍnamespaces½øÐÐÏÞÖÆ¡£

ÍøÂç¶Ë¿Ú MesosĬÈÏ»á¸øÃ¿¸ötask·ÖÅäÒ»¸ö£¨¿ÉÒÔ·ÖÅä¶à¸ö¶Ë¿Ú£©Ëæ»úµÄδʹÓõĶ˿ڣ¬ÐèÒªÓ¦Óôӻ·¾³±äÁ¿ÖлñÈ¡µ½Õâ¸ö¶Ë¿Ú½øÐÐʹÓã¬ÊÇÒ»ÖÖÔ¼¶¨µÄ¹æÔò£¬²¢²»Ç¿ÖÆÏÞÖÆ¡£

Îļþϵͳ ĬÈÏÇé¿öÏÂMesosµÄÎļþϵͳÊǶàÓ¦Óù²ÏíµÄ£¬Ä¬ÈϸøÃ¿¸ötask·ÖÅäÒ»¸ösandboxĿ¼×÷Ϊ¹¤×÷Ŀ¼£¬sandboxÔÚÖ÷»úÉϵÄĿ¼ÊǺÍtaskidÏà¹ØµÄ£¬²»»á³åÍ»£¬ÉúÃüÖÜÆÚºÍtask°ó¶¨¡£ÁíÍâÒ²Ö§³ÖPersistent Volume£¬ÓÃÓÚÓ¦Óñ£´æ³Ö¾ÃÊý¾Ý£¬Ò²ÊÇͨ¹ýĿ¼ӳÉäµÄ·½Ê½ÊµÏֵġ£Persistent VolumeµÄÉúÃüÖÜÆÚ¶ÀÁ¢ÓÚtask£¬ÓÉscheduler¾ö¶¨ÊÇ·ñ¸´Óã¬Ò²¾ÍÊÇ˵Mesos½«³Ö¾Ã»¯Êý¾ÝºÍ¶¯Ì¬Ç¨ÒÆÖ®¼äµÄ³åÍ»ÎÊÌâ½»¸øÁËscheduler×Ô¼º´¦Àí¡£ÁíÍâ¿ÉÒÔÑ¡ÔñʹÓÃDocker Containerizer£¬Í¨¹ýDockerµÄ·½Ê½¸ôÀëÎļþϵͳ¡£

·þÎñ·¢ÏÖÒÔ¼°¸ºÔؾùºâ MesosĬÈϲ»Ö§³Ö·þÎñ·¢Ïֺ͸ºÔؾùºâ£¬ÐèÒªÓû§×Ô¼ºÊµÏÖ¡£MesosÖ®ÉϵÄMarathon FrameworkÌṩÁËÒ»¸ömarathon-lb£¬Í¨¹ý¼àÌýMarathonµÄeventÐÞ¸ÄHAProxy£¬ÊµÏÖ¶¯Ì¬µÄ¸ºÔؾùºâ£¬²»¹ýÖ»Ö§³Öͨ¹ýMarathon²¿ÊðµÄÓ¦Óá£

ÈÝÆ÷µÄ¸Ä½ø MesosÄÚÖõÄÈÝÆ÷²»ÊÇ»ùÓÚImageµÄ£¬µ«DockerÊÇ»ùÓÚImageµÄ£¬´øÀ´µÄÎÊÌâ¾ÍÊÇÓÐЩ¹¦ÄÜҪͨ¹ýÁ½ÖÖ·½Ê½ÊµÏÖ£¨±ÈÈç´ÅÅ̸ôÀëµÈ£©¡£ÁíÍâDocker±¾ÉíµÄdaemon»úÖÆÈÃMesos²»ºÃÖ±½Ó¹ÜÀíÈÝÆ÷½ø³Ì£¬ËùÒÔMesosÒ²Ôڼƻ®¸Ä½øÄÚÖõÄÈÝÆ÷Ö§³ÖImage£¬¼æÈÝDocker/AppcµÄImage£¬²»»á°ÑDocker×÷ΪĬÈϵÄÈÝÆ÷,¾ßÌå²Î¿´¡£

Ô´Âë¼Ü¹¹·ÖÎö

MesosµÄºËÐÄÊÇÓÃc++дµÄ£¬Ö÷ҪʹÓÃÁËÒ»¸ölibprocessµÄ¿â£¬ÕâÊÇÒ»¸öc++µÄactorÄ£Ð͵Ŀ⣨²»Ì«Á˽âactorÄ£Ð͵ĿÉÒԲο´ÎÒµÄǰһƪÎÄÕ£º²¢·¢Ö®Í´ Thread£¬Goroutine£¬Actor£¬Õâ¸ö¿â˳´ø°ÑOption,Nothing,Try, Future,Lambda,DeferÕâЩ¶¼ÊµÏÖÁË£¬ÈÃÎÒ³ä·ÖÌå»áÁËc++µÄħ·¨£©¡£libprocess»ù±¾ÊDzο¼erlangµÄģʽʵÏֵ쬯äÖеÄactor¶¼½Ð×öprocess£¬Ã¿¸öprocessÓÐÒ»¸ö¶ÀÁ¢µÄID£¬ÎÒÃÇÕâÀïΪÁË·½±ãÀí½â£¬°ÑÆäÖеijéÏó¶¼½Ð×öactor£¬¾ßÌåactorЭ×÷ģʽ¼ûÏÂͼ£º

ÔÚMesosµÄmaster½ÚµãÖУ¬Ã¿¸öFrameworkÒÔ¼°Slave¶¼ÊÇÒ»¸öÔ¶³ÌµÄactor¡£¶øslave½ÚµãÉÏ£¬Ã¿¸öexecutorÊÇÒ»¸öactor£¬Ö»²»¹ýÄÚÖõÄexecutorÊÇÔÚͬһ¸ö½ø³ÌÖе쬶øÆäËû×Ô¶¨ÒåµÄexecutorÊǶÀÁ¢µÄ½ø³Ì£¬executorºÍslaveÖ®¼äͨ¹ý½ø³Ì¼äͨÐÅ·½Ê½£¨ÍøÂç¶Ë¿Ú£©½»»¥¡£

Mesosͨ¹ýactorÄ£ÐÍ£¬¼ò»¯ÁË·Ö²¼Ê½ÏµÍ³µÄµ÷ÓÃÒÔ¼°²¢·¢±à³ÌµÄ¸´ÔÓ¶È£¬actorÖ®¼ä¶¼Í¨¹ýÏûÏ¢Ò첽ͨÐÅ£¬Ö»ÐèÒªÖªµÀ¶Ô·½µÄID¼´¿É£¬ÎÞÐèÁ˽â¶Ô·½ºÍ×Ô¼ºÊÇ·ñÔÚͬһ¸ö½ÚµãÉÏ¡£libprocess·â×°µÄactor managerÖªµÀ½ÓÊÕ·½ÊDZ¾µØµÄactor»¹ÊÇÔ¶³ÌµÄactor£¬Èç¹ûÊÇÔ¶³ÌµÄÔòͨ¹ýÇëÇó½Ó¿Úת·¢ÏûÏ¢¡£libprocessÒ²·â×°ÁËÍøÂç²ã£¬´«Êä²ãʹÓõÄÊÇhttpЭÒ飬ʹÓ÷½¶Ô²»Í¬µÄÏûÏ¢×¢²á²»Í¬µÄhandler¼´¿É£¬Ò²Ö§³ÖhttpµÄ³¤ÂÖѯģʽ¶©ÔÄʼþ¡£mesosΪÁËÌá¸ßÏûÏ¢´«µÝ½âÎöЧÂÊ£¬ÏûÏ¢´«µÝÖ§³ÖjsonºÍprotobufÁ½ÖÖ¸ñʽ¡£

ÕâÖּܹ¹µÄºÃ´¦ÊÇMesosʡȥÁ˶ÔÏûÏ¢¶ÓÁеÄÒÀÀµ¡£Ò»°ãÇé¿öÏÂÕâÖÖ·Ö²¼Ê½ÏûÏ¢·Ö·¢ÏµÍ³¶¼ÐèÒªÏûÏ¢¶ÓÁлòÕßÖÐÐÄ´æ´¢µÄÖ§³Ö£¬±ÈÈçSaltʹÓõÄÊÇZeroMQ£¬KubenetesʹÓõÄÊÇEtcd£¬¶øMesosÔò²»ÒÀÀµÍⲿµÄ×ÊÔ´Ö§³Ö£¬Ö»Í¨¹ýactorÄ£Ð͵ÄÈÝ´í»úÖÆÀ´ÊµÏÖ¡£¶øÈ±µãÒ²ÊÇactor±¾ÉíµÄȱµã£¬ÒòΪÏûÏ¢¶¼ÊÇÒì²½µÄ£¬ÐèÒªactor´¦ÀíÏûÏ¢µÄ¶ªÊ§ÒÔ¼°³¬Ê±Âß¼­£¬Mesos²»±£Ö¤ÏûÏ¢µÄ¿É¿¿Í¶µÝ£¬ÌṩµÄͶµÝ²ßÂÔÊÇ ¡°at-most-once¡±£¬actorÐèҪͨ¹ý³¬Ê±ÖØÊÔ»úÖÆ½â¾öÏûÏ¢¶ªÊ§µÄÎÊÌâ¡£²»¹ýÈκÎÐèÒªÔ¶³Ìµ÷Óõķֲ¼Ê½ÏµÍ³ÐèÒª´¦ÀíµÄÀàËÆµÄÎÊÌâ°É¡£

FrameworkµÄʵÏÖ½âÎö

´ÓÉÏÃæµÄ·ÖÎö¿ÉÒÔÁ˽⵽£¬FrameworkÔÚMesosÖаçÑÝ×ÅÖØÒªµÄ½ÇÉ«¡£Èç¹ûÄã×Ô¼ºÒª¿ª·¢Ò»¸ö·Ö²¼Ê½ÏµÍ³£¬´òËãÔËÐÐÔÚMesosÖУ¬¾ÍÐèÒª¿¼ÂÇ×Ô¼ºÊµÏÖÒ»¸öFramework¡£

MesosÌṩÁËÒ»¸öFrameworkµÄ»ù´¡¿â£¬µÚÈý·½Ö»ÐèҪʵÏÖscheduler£¬ºÍexecutorÁ½¸ö½Ó¿Ú¼´¿É¡£»ù´¡¿âÊÇÓÃc++ʵÏÖÁË£¬Í¨¹ýjniÌṩÁËjava°æ±¾£¬Í¨¹ýpythonµÄnative·½Ê½ÌṩÁËpython°æ±¾¡£¶øgolangµÄ°æ±¾ÊǶÀÁ¢¿ª·¢µÄ£¬Ã»ÓÐÒÀÀµc++¿â£¬´úÂë¼Ü¹¹±È½ÏÓÅÑÅ£¬ÏëÓÃgoʵÏÖactorµÄ¿ÉÒԲο¼¡£Õâ¸öFramework»ù´¡¿â£¨SchedulerDriverÒÔ¼°ExecutorDriverµÄʵÏÖ£©Ö÷Òª×öµÄÊÂÇé¾ÍÊÇʵÏÖÇ°ÃæÎÒÃÇÌáµ½µÄactorÄ£ÐÍ£¬ºÍmasterÒÔ¼°slave½»»¥£¬ÊÕµ½ÏûÏ¢ºó»Øµ÷Óû§×Ô¶¨ÒåµÄschedulerºÍexecutor¡£

ÏÂÃæÊÇjavaµÄScheduler½Ó¿Ú£º

public interface Scheduler {
void registered(SchedulerDriver driver,
FrameworkID frameworkId,
MasterInfo masterInfo);
void reregistered(SchedulerDriver driver, MasterInfo masterInfo);
//Õâ¸öÊÇ×îÖ÷ÒªµÄÒ»¸ö·½·¨£¬µ±ÏµÍ³ÓпÕÏÐ×ÊÔ´µÄʱºò£¬»áѯÎÊScheduler£¬
//ÊÇ·ñ½ÓÊÜ»òÕ߾ܾø¸ÃOffer¡£Èç¹û½ÓÊÜ£¬ÔòͬʱÐèÒª·âװʹÓøÃOfferµÄtaskÐÅÏ¢£¬µ÷ÓÃdriverÈ¥Ö´ÐС£
void resourceOffers(SchedulerDriver driver, List<Offer> offers);
//Èç¹ûOffer±»È¡Ïû»òÕß±»±ðµÄFrameworkʹÓã¬Ôò»Øµ÷±¾·½·¨
void offerRescinded (SchedulerDriver driver, OfferID offerId);
//¸ÃFrameworkÆô¶¯µÄtask״̬±ä»¯Ê±»Øµ÷¡£
void statusUpdate (SchedulerDriver driver, TaskStatus status);
//×Ô¶¨ÒåµÄ¿ò¼ÜÏûÏ¢
void frameworkMessage (SchedulerDriver driver, ExecutorID executorId, SlaveID slaveId,byte[]() data);
void disconnected (SchedulerDriver driver);
void slaveLost (SchedulerDriver driver, SlaveID slaveId);
void executorLost (SchedulerDriver driver,ExecutorID executorId, SlaveID slaveId, int status);
void error (SchedulerDriver driver, String message);
}

MesosµÄFrameworkÊǶÀÁ¢ÓÚMesosϵͳµÄ£¬¾ßÌåµÄ²¿Êð·½Ê½£¬ÒÔ¼°¸ß¿ÉÓö¼ÐèÒªFramework×Ô¼º½â¾ö£¬ËùÒÔҪʵÏÖÒ»¸öÍ걸µÄ£¬¸ß¿ÉÓõÄFramework£¬¸´ÔÓ¶È»¹ÊÇͦ¸ßµÄ¡£ÁíÍâFramworkµÄ»úÖÆ±È½ÏÊʺÏÐèÒªÈÎÎñ·Ö·¢ÒÔ¼°µ÷¶ÈµÄ·Ö²¼Ê½ÏµÍ³£¬±ÈÈçHadoop£¬JenkinsµÈ¡£ÆäËûµÄ·Ö²¼Ê½Êý¾Ý¿â±ÈÈçCassandra£¬Mesos×öµÄÊÂÇéÊÇͨ¹ýSchedulerµ÷¶ÈCassandraExecutor²¿ÊðºÍ¹ÜÀí£¨°üÀ¨½ÚµãÉϵÄά»¤²Ù×÷£¬±ÈÈ籸·Ý£©Cassandra½Úµã£¬Ïêϸ¿É²Î¿´ ¡£

ÁíÍâMesos Master±¾ÉíûÓг־û¯´æ´¢£¬ËùÓÐÊý¾Ý¶¼ÔÚÄÚ´æ£¬ÖØÆôºóÊý¾Ý»á¶ªÊ§¡£µ«»îÔ¾µÄFrameworkºÍSlave×¢²áʱ»á°Ñ×Ô¼ºµ±Ç°µÄ״̬·¢Ë͸øMaster£¬Masterͨ¹ýÕâÖÖ·½Ê½»Ö¸´Êý¾Ý¡£ËùÒÔÈç¹ûFrameworkÐèÒª³Ö¾Ã»¯TaskµÄÖ´ÐмǼ£¬ÐèÒª×Ô¼ºÊµÏֳ־û¯´æ´¢¡£

Mesos SlaveÌṩÁËrecoveryµÄ»úÖÆ£¬ÓÃÓÚʵÏÖSlave½ø³ÌÖØÆôºóµÄ»Ö¸´¡£Ä¬ÈÏÇé¿öÏ£¬Slave½ø³ÌÖØÆôºó£¬ºÍ¸Ã½ø³ÌÏà¹ØµÄexecutor/task¶¼»á±»É±µô£¬µ«Èç¹ûFrameworkÅäÖÿªÆôÁËcheckpointÉèÖã¬Ôò¸ÃFrameworkÏà¹ØµÄexecutor/taskÐÅÏ¢»á±»³Ö¾Ã»¯µ½´ÅÅÌÉÏ£¬ÓÃÓÚÖØÆôºóµÄrecovery¡£

Marathon

Marathon°´ÕÕ¹Ù·½µÄ˵·¨ÊǸö»ùÓÚMesosµÄ˽ÓÐPaaS¡£ËüʵÏÖÁËMesosµÄFramework£¬Ö§³Öͨ¹ýshellÃüÁîºÍDocker²¿ÊðÓ¦Óã¬ÌṩWeb½çÃæ£¬Ö§³Öcpu/mem£¬ÊµÀýÊýµÈ²ÎÊýÉèÖã¬Ö§³Öµ¥Ó¦ÓõÄscale£¬µ«²»Ö§³Ö¸´Ôӵļ¯Èº¶¨Òå¡£

Marathon±¾ÉíÊÇͨ¹ýScalaʵÏֵģ¬Ò²Ê¹ÓÃÁËactorÄ£ÐÍ¡£ËüÌṩÁËevent bus½Ó¿Ú£¬ÔÊÐíÆäËûÓ¦ÓÃͨ¹ý¼àÌýevent busÀ´ÊµÏÖ¶¯Ì¬ÅäÖ㬱ÈÈçÇ°ÃæÌáµ½µÄmarathon-lb¡£

MarathonÓÉÓÚÊÇ»ùÓÚjvmµÄ£¬×öϵͳ°²×°°ü·Ö·¢ÂÔÂé·³£¬½á¹ûÈ˼ÒΪÁË·½±ãÖ±½Ó·Ö·¢ÁËÒ»¸ö70¶àMµÄshell½Å±¾¡£³õ¿´ÏÅÎÒÒ»Ìø£¬70¶àMµÄshellµÃд¶àÉÙÐУ¬½á¹û´ò¿ªÒ»¿´£¬javaµÄ¶þ½øÖÆjarµÄҲǶÔÚÀïÃæ¡£Õâµ¹Ò²ÊǸö°ì·¨¡£

Aurora

AuroraÊÔͼÓÃÒ»ÖÖ×Ô¶¨ÒåµÄÅäÖÃÓïÑÔÈ¥¶¨ÒåMesosÖ®ÉϵÄtaskÒÔ¼°Ë³Ðò¹ØÏµ£¬½â¾ö¸÷ÖÖ»·¾³µÄÒì¹¹ÎÊÌ⣬½µµÍÓÃshell½Å±¾µÄ¸´ÔÓ¶È¡£¿ÉÒÔÀí½âΪMesosÖ®ÉϵÄÒ»ÖÖÕ³ºÏ¼ÁÓïÑÔ£¬µØÎ»ÀàËÆÓÚSalt/AnsibleµÄyaml£¬Ö»²»¹ýMesos±¾Éíû֧³ÖÀàËÆµÄÅäÖÃÓïÑÔ£¬ÓÚÊÇAuroraͨ¹ýFrameworkµÄ·½Ê½À´Ö§³Ö¡£

MesosºÍKubernetes±È½Ï

MesosºÍKubernetesËäÈ»¶¼½è¼øÁËBorgµÄ˼Ï룬ÖÕ¼«Ä¿±êÀàËÆ£¬µ«½â¾ö·½°¸ÊDz»Í¬µÄ¡£MesosÓеãÏñÁª°îÖÆ£¬³ÐÈϸ÷°î£¨Framework£©µÄÖ÷Ȩ£¬µ«¸÷°îÈöÉÒ»²¿·Ö¹«ÓõĻúÖÆ³öÀ´ÓÉMesosÀ´ÊµÏÖ£¬×î´ó»¯µÄ¹²Ïí×ÊÔ´£¬Ìá¸ß×ÊÔ´ÀûÓÃÂÊ£¬FrameworkºÍMesosÊÇÏà¶Ô¶ÀÁ¢µÄ¹ØÏµ¡£¶øKubernetesÓеãÏñµ¥Ò»ÖÆ£¬´î½¨Ò»¸öͨÓÃµÄÆ½Ì¨£¬¾¡Á¿Ìá¹©È«ÃæµÄÄÜÁ¦£¨ÍøÂ磬´ÅÅÌ£¬Äڴ棬cpu£©£¬Öƶ¨Ò»¸ö¼¯ÈºÓ¦Óõ͍Òå±ê×¼£¬Èκθ´ÔÓµÄÓ¦Óö¼¿ÉÒÔ°´Õոñê×¼¶¨Òå²¢ÒÔ×îСµÄ±ä¸ü³É±¾ÔÚÉÏÃæ²¿ÊðÔËÐУ¬Ö÷ÒªµÄ±ä¸üÐèÇóÒ²ÊÇÒòΪÏëÏíÊÜKubernetesµÄ¶¯Ì¬ÉìËõÄÜÁ¦´øÀ´µÄ¡£ËùÒÔMesos¾¡Á¿×öµÄ±È½ÏÉÙ£¬¶øKubernetes¾¡Á¿×öµÄ±È½Ï¶à¡£Mesos¶¨ÒåÊÇDCOSµÄkernel£¬µ«OSµÄkernel¾ßÌåÓ¦¸Ã³Ðµ£ÄÄЩְÔð£¬Ïà¹ØÕùÂÛÒ²´ÓÀ´Ã»Í£Ö¹¹ý¡£

Ïà¶ÔÀ´ËµKubernetesʹÓÃÒª±È½ÏÈÝÒ×Щ£¬¶øMesos¸üÁé»îЩ£¬ÐèÒª×öµÄ¶¨ÖÆ¿ª·¢¹¤×÷Ò²±È½Ï¶à¡£ÄÃÇ°ÃæÌáµ½µÄcassandraÀ´±È½Ï£¬cassandra-mesosµÄʵÏֺܸ´ÔÓ£¬¶øKubernetesµÄcassandraÀý×ÓÔòÖ»ÓÐÒ»¸öÀ࣬¾ÍÊÇʵÏÖÁËKubernetesSeedProvider£¬Í¨¹ýKubernetesµÄ·þÎñ·¢ÏÖ»úÖÆÑ°ÕÒcassandraµÄseed½Úµã¡£µ±È»MesosÉϵÄcassandra¿ÉÒÔͨ¹ýMesos·¢Ëͱ¸·ÝµÈ¹ÜÀíÈÎÎñ£¬¶øKubernetes²»ÌṩÈÎÎñת·¢µÄ¹¦ÄÜ£¬ÕâÀàÐèÇóÓû§¿ÉÒÔͨ¹ýkubectlµÄexec·½·¨ÊµÏÖ¡£´ÓÕâ¸öÀý×ÓÒ²´óÖÂÄÜÃ÷°×¶þÕߵIJîÒìµã¡£

KubernetesϵÄKubernetes on MesosÏîÄ¿µÄÄ¿µÄ¾ÍÊÇÀûÓÃMesosµÄÕâ¸öÌØÐÔ£¬ÊµÏÖKubernetesºÍMesosÉÏµÄÆäËûFramework¹²Ïí×ÊÔ´¡£Èç¹ûÏëÁ˽âKubernetesµÄ¸ü¶à×ÊÁÏ¿ÉÒÔ¿´ÎÒÈ¥ÄêдµÄKubernetes ¼Ü¹¹Ç³Îö¡£

   
3458 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
ÔÆÔ­Éú¼Ü¹¹¸ÅÊö
K8S¸ß¿ÉÓü¯Èº¼Ü¹¹ÊµÏÖ
ÈÝÆ÷ÔÆ¹ÜÀíÖ®K8S¼¯Èº¸ÅÊö
k8s-ÕûÌå¸ÅÊöºÍ¼Ü¹¹
Ê®·ÖÖÓѧ»áÓÃdocker²¿Êð΢·þÎñ
×îпγÌ
ÔÆ¼ÆË㡢΢·þÎñÓë·Ö²¼Ê½¼Ü¹¹
Æóҵ˽ÓÐÔÆÔ­ÀíÓë¹¹½¨
»ùÓÚKubernetesµÄDevOpsʵ¼ù
ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦Ó㨰¢ÀïÔÆ£©
Docker²¿Êð±»²âϵͳÓë×Ô¶¯»¯¿ò¼Üʵ¼ù
³É¹¦°¸Àý
±±¾© ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ùÅàѵ
ij¾ü¹¤Ñо¿µ¥Î» MDA£¨Ä£ÐÍÇý¶¯¼Ü¹¹£©
ÖªÃûÏû·Ñ½ðÈÚ¹«Ë¾ ÁìÓòÇý¶¯Éè¼Æ
ÉîÛÚijÆû³µÆóÒµ Ä£ÐÍÇý¶¯µÄ·ÖÎöÉè¼Æ