±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁËyarnºËÐÄ˼Ïë¡¢¹¤×÷»úÖÆ¸ÅÊö¡¢×é¼þ¼ò½é¡¢YARNµÄ×ÊÔ´Ä£ÐÍ¡¢×é¼þ¹¦ÄܵÈÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×Ô¿ªÔ´Öйú£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼¡¢ÍƼö¡£ |
|
1¡¢yarn²úÉú±³¾°
mapReduce´æÔÚÎÊÌ⣺
JobTrackerµ¥µã¹ÊÕÏ
JobTracker³ÐÊܵķÃÎÊѹÁ¦´ó£¬Ó°ÏìϵͳÀ©Õ¹
²»Ö§³ÖMapReduceÖ®ÍâµÄ¼ÆËã¿ò¼Ü£¬±ÈÈçStorm,spark,flink
2¡¢yarnµÄºËÐÄ˼Ïë
ÊÇÒ»ÖÖÐ嵀 Hadoop ×ÊÔ´¹ÜÀíÆ÷£¬ËüÊÇÒ»¸öͨÓÃ×ÊÔ´¹ÜÀíϵͳ£¬YARNµÄ»ù±¾Ë¼ÏëÊǽ«JobTrackerµÄÁ½¸öÖ÷Òª¹¦ÄÜ£¨×ÊÔ´¹ÜÀíºÍ×÷Òµµ÷¶È/¼à¿Ø£©·ÖÀ룬Ö÷Òª·½·¨ÊÇ´´½¨Ò»¸öÈ«¾ÖµÄResourceManager£¨RM£©ºÍÈô¸É¸öÕë¶ÔÓ¦ÓóÌÐòµÄApplicationMaster£¨AM£©¡£
ËüÓÉÏÂÃæ¼¸´ó¹¹³É×é¼þ£º
ResourceManager£º¸ºÔðΪ¼¯ÈºÖеÄËùÓÐÓ¦ÓóÌÐò·ÖÅä×ÊÔ´
ÿ¸ö½Úµã´úÀí µÄNodeManager
ÿ¸öÓ¦ÓöÔÓ¦Ò»¸öApplicationMaster
Ò»¸öApplicationMasterÓµÓжà¸öContainer£¬ContainnerÔÚNodeManagerÉÏÔËÐÐ
ÔËÐÐÔÚ¶ÀÁ¢½ÚµãÉϵÄRMºÍNMÒ»Æð×é³ÉÁËYARNµÄºËÐÄÇÒ¹¹³ÉÁËÕâ¸öƽ̨¡£AMºÍÏàÓ¦µÄContainerÒ»Æð×é³ÉÁËÒ»¸öYarnµÄÓ¦ÓóÌÐò¡£´ÓYARNµÄ½Ç¶ÈÀ´¿´£¬ËùÓÐÓû§Í¨¹ýÌá½»Ó¦ÓóÌÐò£¬È»ºóÀûÓÃ¸ÃÆ½Ì¨ÌṩµÄ×ÊÔ´À´½øÐн»»¥¡£´Ó×îÖÕÓû§µÄ½Ç¶È¿´£¬ËûÃÇ¿ÉÄÜÊÇÖ±½ÓÔÚYARNƽ̨ÉÏͨ¹ýÔËÓÃÓ¦ÓóÌÐòºÍYARN½øÐн»»¥¡£
3¡¢¹¤×÷»úÖÆ¸ÅÊö

ClientÏòRMÌá½»Ó¦ÓóÌÐò£¬Ó¦ÓóÌÐòÌá½»µ½RMºó£¬AM×¢²áµ½RMÉÏ£¬RM¼ÆËãËùÐè×ÊÔ´²¢ÏòRMÌá³öÉêÇ룬RM·µ¸øAM×ÊÔ´ÐÅÏ¢£¬AMÏòNM·¢ÆðÆô¶¯containerµÄÇëÇó£¬containerÆô¶¯ºó£¬NM½«Æô¶¯³É¹¦ºÍÆô¶¯Ê§°ÜµÄcontainerÁÐ±í·¢Ë͸øAM£¬ÓÉAMÖØÐÂÏòRMÉêÇë×ÊÔ´£¬ÆÚ¼äAMºÍNM¶¨ÆÚµÄÏòRM·¢ËÍÐÄÌø¡£
4¡¢×é¼þ¼ò½é
4.1¡¢ResourceManager£¨RM£©
RM×÷Ϊһ¸ö¶ÀÁ¢µÄÊØ»¤½ø³ÌÔËÐÐÔÚרÓлúÆ÷ÉÏ£¬RMÓµÓм¯ÈºÉÏËùÓÐ×ÊÔ´µÄÐÅÏ¢£¬ÊǼ¯ÈºËùÓÐ×ÊÔ´µÄÖÙ²ÃÕߣ¬Ö»¸ºÔð¸øÓ¦ÓýøÐÐ×ÊÔ´µÄ»®·ÖºÍ×ÊÔ´µÄÊջء£ÕâÀïµÄ×ÊÔ´Ö÷ÒªÖ¸£ºÄڴ棬´ø¿í£¬ÄÚºËÊýµÈ¡£
4.2¡¢ApplicationMaster£¨AM£©
ApplicationMaster¹ÜÀíÒ»¸öÔÚYARNÄÚÔËÐеÄÓ¦ÓóÌÐòµÄÿ¸öʵÀý£¬Ã¿¸öÓ¦ÓóÌÐò¶ÔӦΨһһ¸öAM¡£
¸ºÔð¹ÜÀí×÷ÒµµÄÉúÃüÖÜÆÚ£¬°üÀ¨¶¯Ì¬µÄÔö¼ÓºÍ¼õÉÙ×ÊԴʹÓ㬹ÜÀí×÷ÒµÖ´ÐÐÁ÷³Ì£¬´¦Àí¹ÊÕϺͼÆËãÆ«²î£¬ÒÔ¼°Ö´ÐÐÆä±¾µØÓÅ»¯¡£
4.3¡¢NodeManager£¨NM£©
¹ÜÀí¼¯ÈºÖжÀÁ¢µÄ¼ÆËã½Úµã¡£
NMÊÇÿ¸ö½ÚµãÉϵÄ×ÊÔ´ºÍÈÎÎñ¹ÜÀíÆ÷¡£Ò»·½Ã棬Ëü»á¶¨Ê±µØÏòRM»ã±¨±¾½ÚµãÉϵÄ×ÊԴʹÓÃÇé¿öºÍ¸÷¸öContainerÔËÐÐ״̬£»ÁíÒ»·½Ã棬Ëü½ÓÊÕ²¢´¦ÀíÀ´×ÔAMµÄ
Container Æô¶¯/Í£Ö¹µÈ¸÷ÖÖÇëÇó¡£
4.4¡¢Container
ContainerÊÇYARNÖеÄ×ÊÔ´³éÏó£¬Êǵ¥¸ö½ÚµãÉÏÄڴ棬CPU£¬´ÅÅÌ£¬ÍøÂçµÈÎïÀí×ÊÔ´µÄ¼¯ºÏ¡£Ò»¸ö½Úµã¿ÉÒÔÓÐÒ»¸ö»òÕß¶à¸öcontainer£¬µ±AMÏòRMÉêÇë×ÊԴʱ£¬RMΪAM·µ»ØµÄ×ÊÔ´±ãÊÇÓÃContainer±íʾµÄ¡£ÆäÖÐAM¿ÉÒÔ¿´×öÊÇÒ»ÖÖÌØÊâµÄContainer¡£
containerÓÉNM¼à¿Ø£¬RMµ÷¶È¡£
5¡¢YARNµÄ×ÊÔ´Ä£ÐÍ
ÔÚÔçÆÚµÄ Hadoop°æ±¾ÖÐ,¼¯ÈºÖеÄÿ¸ö½Úµã±»¾²Ì¬µÄ·ÖÅäºÃÔ¤Ïȶ¨ÒåµÄMap²ÛλºÍReduce²ÛλÊý,²Ûλ²»ÄÜÔÚMapºÍ
ReduceÖ®¼ä¹²Ïí¡£²ÛλµÄÕâÖÖ¾²Ì¬·ÖÅä²»ÊÇ×îÓŵÄ,ÒòΪ¶Ô²ÛλµÄÐèÇó»áÔÚMapReduceÓ¦ÓóÌÐòµÄÉúÃüÖÜÆÚÖб仯¡£Í¨³£Çé¿öÏÂ,ÔÚ×÷Òµ¸ÕÆô¶¯Ê±,ÓÐMap²ÛλµÄÐèÇó,Ïà¶ÔµÄ,ÔÚ×÷Òµ¿ì½áÊøÊ±,Ö÷ÒªÊÇ
Reduce²ÛλµÄÐèÇó¡£
YARNµÄ×ÊÔ´·ÖÅäÄ£ÐÍͨ¹ýÌṩÁ˸ü´óµÄÁé»îÐÔ,½â¾öÁ˾²Ì¬·ÖÅäµÄµÍЧÂÊÎÊÌâ¡£ÈçÏÈǰËùÊö,ʹÓà ContainerµÄ·½Ê½À´ÇëÇó×ÊÔ´,ÿ¸ö
Container¶¼ÓÐһЩ·Ç¾²Ì¬ÊôÐÔ,YARNĿǰÒѾ֧³ÖÄÚ´æºÍCPUµÄ¶¯Ì¬ÊôÐÔ,»¹¿ÉÒÔÖ§³ÖÈç´ø¿íºÍGPUµÈ¡£ÔÚδÀ´µÄ×ÊÔ´¹ÜÀíÄ£ÐÍÖÐ,ÿ¸öÊôÐÔ¶¨ÒåÒ»¸ö×îСºÍ×î´óÖµ,
ApplicationManager¿ÉÒÔÇëÇó×îСֵÕûÊý±¶µÄ×ÊÔ´container¡£ÔÚÓ¦ÓÃÔËÐеĹý³ÌÖУ¬AM¿ÉÒÔ¶Ô×ÊÔ´½øÐÐÔö¼Ó»òÕß»ØÊÕ£¬´ïµ½¶¯Ì¬µ÷Õû×ÊÔ´µÄÄ¿µÄ¡£

5.1¡¢¿Í»§¶Ë×ÊÔ´ÇëÇó
µÚÒ»²½£º¿Í»§·¢ËÍÒ»¸ö¼´½«ÒªÌá½»³ÌÐòµÄÇëÇó
µÚ¶þ²½£ºRMÔÚÓ¦´ðÖиø³öÒ»¸öApplicationID,ÒÔ¼°ÓÐÖúÓÚ¿Í»§¶ËÇëÇó×ÊÔ´µÄ¾ÍÇëÄãÈÝÁ¿ÐÅÏ¢
5.2¡¢Container·ÖÅä
½ÓÏÂÀ´,¿Í»§¶ËÔÚµÚ3²½ÖÐʹÓá° Application Submission Context¡±·¢³öÏìÓ¦,
Application
SubmissionÉÏÏÂÎÄÖаüº¬ÁË ApplicationID¡¢Óû§Ãû¡¢¶ÓÁÐÒÔ¼°ÆäËûÆô¶¯ Application
MasterËù
ÐèÇó(ÄÚ´æCPU)¡¢×÷ÒµÎļþ¡¢°²È«ÁîÅÆÒÔ¼°ÔÚ½ÚµãÉÏÆô¶¯ Application Master ÐèÒªµÄÆäËûÐÅÏ¢¡£Ó¦ÓóÌÐò±»Ìá½»Ö®ºó,¿Í»§¶ËÒ²¿ÉÒÔÏò
ResourceManagerÇëÇóɱËÀÕâ¸öÓ¦ÓóÌÐò,»òÕßÌṩ¸ÃÓ¦ÓóÌÐòµÄ״̬±¨¸æ
µ±ResourceManagerÊÕµ½À´×Ô¿Í»§¶ËµÄÓ¦ÓóÌÐòÌá½»ÉÏÏÂÎÄ,Ëü¾Í»áΪApplicationMasterµ÷¶ÈÒ»¸ö¿ÉÓÃ
Container,Õâ¸ö Containerͨ³£³ÆÎª¡° Container0¡±",ÒòΪËüÊÇApplicationMaster,±ØÐëÇëÇóÆäËûµÄ
Container¡£Èç¹ûûÓÐÊÊÓÃµÄ Container,Õâ¸öÇëÇó±ØÐëµÈ´ý¡£Èç¹ûÕÒµ½Á˺ÏÊ浀 Container,
ResourceManager¾Í»áÁªÏµÏàÓ¦µÄ NodeManager²¢Æô¶¯ ApplicationMaster(ͼµÚ4²½)¡£×÷Ϊ´Ë²½ÖèµÄÒ»²¿·Ö,½«½¨Á¢
ApplicationMasterµÄRPC¶Ë¿ÚºÍÓÃÓÚ¸ú×ÙµÄURL,ÓÃÀ´¼à¿ØÓ¦ÓóÌÐòµÄ״̬¡£
ÔÚ×¢²áÇëÇóµÄÏìÓ¦ÖÐ, ResourceManager»á·¢Ë͹ØÓÚ¼¯ÈºµÄ×îСºÍ×î´óÈÝÁ¿ÐÅÏ¢(µÚ5²½)¡£ÔÚÕâÒ»µãÉÏ,
ApplicationMasterÐë¾ö¶¨ÈçºÎʹÓõ±Ç°¿ÉÓõÄ×ÊÔ´¡£ÓëһЩ¿Í»§¶ËÇëÇóÓ²ÏÞÖÆµÄ×ÊÔ´µ÷¶Èϵͳ²»Í¬,YARNÔÊÐíÓ¦ÓóÌÐòÊÊÓ¦µ±Ç°µÄ¼¯Èº»·¾³(Èç¹û¿ÉÄܵϰ)¡£»ùÓÚÀ´×Ô
ResourceManagerµÄ¿ÉÓÃ×ÊÔ´±¨¸æ, ApplicationMaster»áÇëÇóÒ»¶¨Á¿µÄContainer(ͼµÚ6²½)¡£¸ÃÇëÇó¿ÉÒԷdz£¾ßÌå,°üÀ¨×îС×ÊÔ´ÕûÊý±¶µÄ
Container(ÀýÈç,¶îÍâµÄÄÚ´æ)¡£ ResourceManager»á»ùÓÚµ÷¶È²ßÂÔ,¾¡¿ÉÄÜ×îÓŵÄApplication
Master·ÖÅäContainer×ÊÔ´,×÷Ϊ×ÊÔ´ÇëÇóµÄÓ¦´ð·¢¸ø Application Master(ͼµÚ7²½)¡£
Ëæ×Å×÷ÒµµÄÖ´ÐÐ, ApplicationMaster½«ÐÄÌøºÍ½ø¶ÈÐÅϢͨ¹ýÐÄÌø·¢¸ø ResourceManager¡£ÔÚÕâЩÐÄÌøÖÐ,
ApplicationMaster»¹¿ÉÒÔÇëÇóºÍÊÍ·Å Container£¬µ±×÷Òµ½áÊøÊ±, Application
MasterÏò ResourceManager·¢³öÒ»¸ö FinishÏûÏ¢,È»ºóÍ˳ö¡£
5.3¡¢ApplicationMasterÓëContainer¹ÜÀíÆ÷µÄͨÐÅ

ÔÚÕâÒ»µãÉÏ, ResourceManagerÒѾ½«·ÖÅä NodeManagerµÄ¿ØÖÆÈ¨Òƽ»¸øApplicationMaster
£¬AM½«¶ÀÁ¢ÁªÏµÆäÖ¸¶¨µÄ½Úµã¹ÜÀíÆ÷²¢Ìṩ Container launch Context(CLC),CLC°üÀ¨»·¾³±äÁ¿¡¢Ô¶³Ì´æ´¢ÒÀÀµÎļþ¡¢°²È«ÁîÅÆÒÔ¼°Æô¶¯Êµ¼Ê½ø³ÌËùÐèµÄÃüÁî¡£µ±
ContainerÆô¶¯Ê±,ËùÓеÄÊý¾ÝÎļþ,¿ÉÖ´ÐÐÎļþÒÔ¼°±ØÒªµÄÒÀÀµÎļþ¶¼±»¿½±´µ½½ÚµãµÄ±¾µØ´æ´¢ÉÏÁË¡£ÒÀÀµÎļþ¿ÉÒÔ±»ÔËÐÐÖеÄÓ¦ÓóÌÐòµÄ
ContainerÖ®¼ä¹²Ïí¡£Ò»µ©ËùÓÐµÄ Container¶¼±»Æô¶¯, ApplicationMaster¾Í¿ÉÒÔ¼ì²éËüÃǵÄ״̬£¬
RM²»²ÎÓëÓ¦ÓóÌÐòµÄÖ´ÐÐ,Ö»´¦Àíµ÷¶ÈºÍ¼à¿ØÆäËû×ÊÔ´¡£ RM¿ÉÒÔÃüÁîNMɱËÀContainer£¬ÔÚAM֪ͨRM×Ô¼ºÍê³ÉÁË,»òÕßResourceManagerÐèҪΪÁíÒ»¸öÓ¦ÓóÌÐòÇÀÕ¼×ÊÔ´,»òÕß
Container³¬³ö×ÊÔ´ÏÞÖÆÊ±¶¼¿ÉÄÜ·¢ÉúɱËÀ Containerʼþ¡£µ± Container±»É±ËÀºó,
NodeManager»áÇåÀíËüµÄ±¾µØ¹¤×÷Ŀ¼¡£×÷Òµ½áÊøºó, ApplicationMaster֪ͨ
ResourceManager¸Ã×÷Òµ³É¹¦Íê³É,È»ºóResourceManager֪ͨ NodeManager¾Û¼¯ÈÕÖ¾²¢ÇÒÇåÀí
ContainerרÓõÄÎļþ¡£Èç¹û Container»¹Ã»ÓÐÍ˳öNodeManagerÒ²¿ÉÒÔ½ÓÊÜÖ¸ÁîȥɱËÀÊ£ÓàµÄ
Container(°üÀ¨ ApplicationMaster)¡£
5.4¡¢¹ÜÀíÓ¦ÓóÌÐòµÄÒÀÀµÎļþ
ÔÚYARNÖÐ,Ó¦ÓóÌÐòͨ¹ýÔËÐÐ ContainerÀ´Ö´ÐÐËüÃǵŤ×÷,ÕâЩ Container¶ÔÓ¦ÓÚÔËÐÐÔڵײã²Ù×÷ϵͳÉϵĽø³Ì¡£
ContainerÉÏÓÐÖ´ÐгÌÐòÒÀÀµµÄÎļþ,ÕâЩÎļþÔÚÆô¶¯Ê±»òÕßÓ¦ÓóÌÐòµÄÖ´Ðйý³ÌÖпÉÄÜÐèÒªÒ»´Î»òÕß¶à´Î¡£ÀýÈç,ÒªÔÚ
ContainerÖÐÆô¶¯Ò»¸ö¼òµ¥µÄJava½ø³Ì,ÎÒÃÇÐèÒªÒ»×éÀàÎļþ»ò¸ü¶àÒÀÀµµÄJARÎļþ¡£YARNûÓÐÇ¿ÆÈÿ¸öÓ¦ÓóÌÐòÿ´Î¶¼Ô¶³Ì·ÃÎÊ(´ó²¿·ÖÊǶÁ)ÕâЩÎļþ»òÕßÈÃËüÃÇ×Ô¼º¹ÜÀíÕâЩÎļþ,¶øÊÇΪӦÓóÌÐòÌṩÁ˱¾µØ»¯ÕâЩÎļþµÄÄÜÁ¦¡£
µ±Æô¶¯Ò»¸ö Containerʱ, Application Master¿ÉÒÔÖ¸¶¨¸Ã ContainerÐèÒªµÄËùÓÐÎļþ,Òò´Ë,ÕâЩÎļþ¶¼Ó¦¸Ã±»±¾µØ»¯¡£Ò»ÇÒÖ¸¶¨ÁËÕâЩÎļþ,YARN¾Í»á¸ºÔ𱾵ػ¯,²¢ÇÒÒþ²ØËùÓа²È«¿½±´¡¢¹ÜÀíÒÔ¼°ºóÐøµÄɾ³ýµÈÒýÈëµÄ¸´ÔÓÐÔ¡£
6¡¢×é¼þ¹¦ÄÜ
6.1¡¢ResourceManager

ÈçǰËùÊö£¬RMÊÇMaster£¬Öٲü¯ÈºÖÐËùÓеĿÉÓÃ×ÊÔ´£¬´Ó¶ø°ïÖú¹ÜÀíÔËÐÐÔÚyarnƽ̨Éϵķֲ¼Ê½Ó¦ÓóÌÐò£¬ËûºÍÏÃÃŵÄ×é¼þÒ»Æð¹¤×÷£º
ÿ¸ö½ÚµãµÄNM¡£´ÓRMÖлñȡָÁ¹ÜÀíµ¥¸ö½ÚµãÉϵĿÉÓÃ×ÊÔ´£¬²¢½ÓÊÕAMµÄ×ÊÔ´ÇëÇó¡£
ÿ¸öÓ¦ÓóÌÐòµÄAM£¬Ö°ÔðÊÇÏòRMÉêÇë×ÊÔ´²¢ÇÒºÍNMÒ»Æð¹¤×÷¡¢Æô¶¯¡¢¼à¿ØºÍÍ£Ö¹Container¡£
6.2¡¢NodeManager
NMÊÇyarnÔÚÿ¸ö¼ÆËã½ÚµãÉϵĴúÀí£¬Ëû¸ù¾ÝyarnÓ¦ÓóÌÐòµÄÒªÇó£¬Ê¹ÓÃÿ¸ö½ÚµãÉϵÄÎïÀí×ÊÔ´À´ÔËÐÐContainer¡£NM±¾ÖÊÉÏÊÇYARNµÄ¹¤×÷ÊØ»¤½ø³Ì¡£Ö÷ÒªÖ°ÔðÊÇ£º
±£³ÖÓëRMµÄͬ²½
¸ú×Ù½ÚµãµÄ½¡¿µ×´Ì¬
¹ÜÀíContainerµÄÉúÃüÖÜÆÚ£¬¼à¿ØÃ¿¸öContainerµÄ×ÊԴʹÓÃÇé¿ö£¨ÈçÄڴ棬CPUµÈ£©
¹ÜÀí·Ö²¼Ê½»º´æ£¨¶ÔcontainerËùÐèµÄJAR£¬¿âµÈÎļþµÄ±¾µØÎļþϵͳ»º´æ£©
¹ÜÀí¸÷¸öContainerµÄÈÕÖ¾
²»Í¬µÄYARNÓ¦ÓÿÉÄÜÐèÒªµÄ¸¨Öú·þÎñ
ÆäÖÐContainerµÄ¹ÜÀíÊÇNodeManagerµÄºËÐŦÄÜ¡£NodeManager½ÓÊÜÀ´×ÔApplicationMaster¶ÔContainerÆô¶¯»òÕßÍ£Ö¹ÇëÇó,¶ÔContainerÁîÅÆ½øÐмøÈ¨(Ò»ÖÖÈ·±£Ó¦ÓóÌÐò¿ÉÒÔÊʵ±Ê¹ÓÃResourceManager¸ø¶¨×ÊÔ´µÄ°²È«»úÖÆ),¹ÜÀí
ContainerÖ´ÐÐÒÀÀµµÄ¿â,¼à¿Ø ContainerµÄÖ´Ðйý³Ì¡£¹ÜÀíԱͨ¹ýÅäÖÃÎļþ( yarn-default.
xml»òyarm- site.xml)À´ÅäÖÃÿ¸ö NodeManagerµÄ×ÊÔ´,°üÀ¨½ÚµãÉϵÄÄÚ´æ¡¢CPU¼°ÆäËû¿ÉÓÃ×ÊÔ´¡£ÔÚÏò
ResourceManager³É¹¦×¢²áÖ®ºó, NodeManagerͨ¹ýÖÜÆÚÐÔµÄÐÄÌø»ã±¨×Ô¼ºµÄ״̬²¢½ÓÊÕ
ResourceManager¿ÉÄÜ·¢À´µÄÖ¸Áî¡£
ÔÚYARNÖÐ,°üÀ¨ ApplicationMasterÔÚÄÚµÄËùÓÐ Container¶¼Í¨¹ý Container
launch
Context(CLC)À´ÃèÊö¡£CLC°üÀ¨»·¾³±äÁ¿,ÒÀÀµµÄ¿â(¿ÉÄÜ´æÔÚÔ¶³Ì´æ´¢ÖÐ),ÏÂÔØ¿âÎļþÒÔ¼°
Container×ÔÉíÔËÐÐÐèÒªµÄ°²È«ÁîÅÆ,ÓÃÓÚ NodeManager¸¨Öú·þÎñµÄ ContainerרÓõÄÔØºÉ,ÒÔ¼°Æô¶¯½ø³ÌËùÐèµÄÃüÁî¡£ÔÚÑéÖ¤Æô¶¯
ContainerÇëÇóµÄÓÐЧÐÔºó, NodeManager»áΪContainerÅäÖû·¾³,´Ó¶øÊ¹¹ÜÀíÔ±Ö¸¶¨µÄÉèÖÃÉúЧ¡£
ÔÚÕæÕýÀÆðÒ»¸ö Container֮ǰ, NodeManager»á½«ËùÓÐÐèÒªµÄ¿âÎļþÏÂÔØµ½±¾µØ,°üÀ¨Êý¾ÝÎļþ,¿ÉÖ´ÐÐÎļþ¡¢
tarball¡¢JARÎļþ,shel½Å±¾µÈ¡£ÕâЩÏÂÔØºÃµÄ¿âÎļþ¿ÉÒÔͨ¹ý±¾µØÓ¦Óü¶±ð»º´æ±»Í¬Ò»Ó¦ÓõĶà¸ö
Container¹²Ïí,ͨ¹ý±¾µØÓû§¼¶±ð»º´æ±»ÏàͬÓû§Æô¶¯µÄ¶à¸ö Container¹²Ïí,ÉõÖÁͨ¹ý¹«Óûº´æµÄ·½Ê½±»¶à¸öÓû§¹²Ïí,Æä¹²Ïí·½Ê½ÊÇͨ¹ýCLCÀ´Ö¸¶¨µÄ¡£
NodeManager×îÖÕ»á»ØÊÕ²»ÔÙ±»ÈκΠContainerʹÓõĿâÎļþNodeManagerÒ²¿ÉÄܰ´ÕÕ
ResourceManagerµÄÖ¸ÁîȥɱËÀ Container¡£ Container¿ÉÄÜÔÚÒÔÏÂÇé¿öϱ»É±ËÀ£º
ResourceManager·¢ËÍÓ¦ÓóÌÐòÒѾÍê³ÉµÄÐźÅ
µ÷¶ÈÆ÷×÷³öҪΪÆäËûÓ¦ÓóÌÐò»òÕßÓû§ÇÀÕ¼¸Ã ContainerµÄ¾ö²ß
NodeMananger¼à¿Øµ½Õâ¸ö Container³¬³öÁË ContainerTokenÖÐÖ¸¶¨µÄ×ÊÔ´ÏÞÖÆ
ContainerÍ˳öʱ, Node Manager¾Í»áÇåÀíµôËüµÄ±¾µØ¹¤×÷Ŀ¼¡£µ±Ó¦ÓóÌÐòÍê³Éʱ,Æä¶ÔÓ¦µÄ
ContainerËùÓеÄ×ÊÔ´¶¼»á±»ÇåÀíµô¡£
³ýÁË ContainerµÄÆô¶¯ºÍÍ£Ö¹,Íê³É ContainerµÄÇåÀí,ÒÔ¼°¶Ô±¾µØ×ÊÔ´µÄ¹ÜÀíNode
Manager»¹ÎªÔËÐÐÔÚ±¾½ÚµãÉ쵀 ContainerÌṩÁËÆäËû±¾µØ·þÎñ,ÀýÈç:µ±Ó¦ÓóÌÐò ÊøÊ±,ÈÕÖ¾¾Û¼¯·þÎñ¿ÉÒÔ½«Ó¦ÓóÌÐòµÄ
ContainerÉú³ÉµÄÈÕÖ¾ÒÔ¼°¶Ô stdoutºÍ stderrÖØ¶¨ÏòµÄÎļþÉÏ´«µ½Ò»¸öÎļþϵͳÈç ResourceManagerÄÇÒ»½ÚËùÊö,µ±ÓÐ
NodeManagerʧ°Üʱ(Õâ¿ÉÄÜÓɺܶàÔÒòÒý), ResourceManagerͨ¹ý³¬Ê±»úÖÆ¼à¿Øµ½ÕâÖÖʧ°Ü,²¢½«¸Ãʧ°Ü±¨¸æ¸øËùÓÐÔËÐÐÖеÄÓ¦ÓóÌÐò¡£Èç¹ûÒý·¢³¬Ê±µÄ¹ÊÕÏ»òÔÒòÊÇ˲ʱµÄ,
NodeManager»áÓë ResourceManagerÖØÐÂͬ²½,ÇåÀíËüµÄ±¾µØ×´Ì¬,È»ºó¼ÌÐø·þÎñ¡£Í¬ÑùµÄ,µ±Ò»¸öеÄ
NodeManager¼ÓÈëµ½¼¯Èº ResourceManager»á½«Õâ¸öÓÃÓÚÔËÐÐ ContainerµÄÐÂ×ÊԴ֪ͨËùÓеÄ
ApplicationMastser.
6.3¡¢ApplicationMaster
ÿ¸öÓ¦ÓóÌÐòAM¶¼ÊÇÒ»¸öÒýµ¼½ø³Ì£¬Ò»µ«Ó¦ÓóÌÐòµÄÌύͨ¹ýÁË£¬ÇÒ×ÔÉí¼ÓÔØÍê³É£¬Ó¦ÓóÌÐòÔÚRMÖеĴú±í½«ÉêÇëÒ»¸öContainerÀ´Æô¶¯´ËÒýµ¼³ÌÐò£¬Èç¹ûRM·ÖÅäÁËContainer£¬AMµÄÆô¶¯Æ÷½«Ö±½ÓÓëNM½øÐÐͨѶ£¬ÒÔÉèÖò¢Æô¶¯¸Ãcontainer£¬AMµÄÉúÃüÖÜÆÚ¾Í¿ªÊ¼ÁË¡£Óëhadoop1Öеļܹ¹Ïà±È£¬±¾ÖÊÉÏAMÊÇÒ»¸öÓ¦ÓóÌÐòµÄJobTracker¡£

Õâ¸ö¹ý³ÌÒÔÓ¦ÓóÌÐòÌá½»Ò»¸öÇëÇóµ½ ResourceManager¿ªÊ¼¡£½Ó×Å, ApplicationMasterÆô¶¯,Ïò
ResourceManager×¢²á¡£ ApplicationMasterÏò ResourceManagerÇëÇó
ContainerÖ´ÐÐʵ¼ÊµÄ¹¤×÷¡£½«·ÖÅäµÄ Container¸æÖª NodeManagerÒÔ±ã ApplicationMasterʹÓ᣼ÆËã¹ý³ÌÔÚ
Container ÖнøÐÐ,ÕâЩ Container½«Óë Application Master(²»ÊÇ
ResourceManager)±£³ÖͨÐÅ,²¢¸æÖªÈÎÎñ¹ý³Ì¡£µ±Ó¦ÓóÌÐòÍê³Éºó, Container±»Í£Ö¹,
ApplicationMaster´Ó ResourceManagerÖÐ×¢Ïú
Ò»µ©³É¹¦Æô¶¯, Application Master½«¸ºÔðÒÔÏÂÈÎÎñ£º
³õʼ»¯Ïò ResourceManager±¨¸æ×Ô¼º»îÔ¾ÐÅÏ¢µÄ½ø³Ì
¼ÆËãÓ¦ÓóÌÐòµÄ×ÊÔ´ÐèÇó
½«ÐèÇóת»»³ÉYARNµ÷¶ÈÆ÷¿ÉÒÔÀí½âµÄ ReqsourceReques
Óëµ÷¶ÈÆ÷ÐÉÌÉêÇë×ÊÔ´
Óë NodeManagerºÏ×÷ʹÓ÷ÖÅäµÄ Container
¸ú×ÙÕýÔÚÔËÐÐµÄ ContainerµÄ״̬,¼à¿ØËüÃǵĽø³Ì
¶Ô Container»ò½Úµãʧ°ÜµÄÇé¿ö½øÐд¦Àí,ÔÚ±ØÒªµÄÇé¿öÏÂÖØÐÂÉêÇë×ÊÔ´
6.4¡¢Container

Application Master´Ó ResourceManager»ñµÃ Containerºó,Ëü¾Í¿ÉÒÔ½øÐÐ
ContainerµÄʵ¼ÊÆô¶¯¹¤×÷¡£Æô¶¯ Containerǰ,ËüÊ×Ïȸù¾ÝÐèÒª¹¹Ôì ContainerLaunchContext¶ÔÏó,¸Ã¶ÔÏó°üÀ¨·ÖÅä×ÊÔ´µÄ´óС¡¢°²È«ÁîÅÆ(Èç¹ûÒÑÆôÓÃ)¡¢Æô¶¯
ContainerµÄÖ´ÐÐÃüÁî¡¢½ø³Ì»·¾³¡¢±ØÒªµÄ¶þ½øÖÆÎļþ/AR°ü/¹²Ïí¶ÔÏóµÈ¡£Ëü¿ÉÒÔͨ¹ýÓë NodeManagerͨÐÅ,ÖðÒ»Æô¶¯Container,Ò²¿ÉÒÔÅúÁ¿ÔËÐе¥¸ö½ÚµãÉϵÄËùÓÐContainer,Ïò
NodeManagerÔÚµ¥¸öµ÷ÓÃÀïÌṩһϵÁÐStart ContainerRequestÀ´Æô¶¯ËüÃÇ¡£
NodeManagerͨ¹ý Start ContainerResponse»ØÓ¦:¸Ã»ØÓ¦°üº¬³É¹¦Æô¶¯µÄ
ContainerÁÐ±í¡¢Ã¿¸öʧ°ÜµÄ Start ontainerRequest¶ÔÓ¦µÄ Container
IDµ½Òì³£µÄÓ³Éä(¼Ç¼ÁËÿ¸ö ContainerµÄÒì³£)¡¢ allServices DataÓ³Éä(´Ó¸½¼Ó·þÎñµÄÃû×Öµ½ËüÃÇÏàÓ¦µÄÔªÊý¾Ý)¡£
ApplicationMasterÄÜ»ñÈ¡ÒѾÌá½»µ«Î´Æô¶¯µÄ ContainerÒÔ¼°ÒѾÆô¶¯µÄ ContainerµÄ¸üÐÂ״̬¡£
ApplicationMaster¿ÉÒÔÏò Node Manager·¢ËÍ Stop ContainersRequestÇëÇó,Í£Ö¹ÔڸýڵãÉÏÔËÐеÄһϵÁÐ
Container,¸ÃÇëÇó°üº¬´ýÍ£Ö¹µÄ Container ID¡£ NodeManagerͨ¹ýStop
ContainersResponse»ØÓ¦,Ëü°üº¬³É¹¦Í£Ö¹µÄ ContainerµÄÁбíÒÔ¼°Ã¿¸öʧ°ÜµÄÇëÇóÖÐContainer
idµ½Òì³£µÄÓ³Éä(Òì³£ÐÅÏ¢±íʾÁËÿ¸öÌØ¶¨ ContainerµÄ´íÎó)¡£µ± ApplicationMasterÍ˳öʱ,
ResourceManager½«¸ù¾ÝËüÌá½»µÄÉÏÏÂÎÄɱËÀËùÓÐÕýÔÚÔËÐжøÃ»Óб» ApplicatMasterÏÔʾÖÕÖ¹µÄ
Container
ÈçÉÏÎÄËùÊö,µ± Container½áÊøÊ±, ResourceManager½«ÒÔʼþµÄÐÎʽ֪ͨ Application
Master
ResourceManager²¢²»½âÊÍ(Ò²²»¹ØÐÄ) ContainerµÄ״̬,Ö»ÓÐ ApplicationMaster²ÅÄܾö¶¨ResourceManager±¨¸æµÄ
ContainerµÄÍ˳ö״̬³É¹¦»òʧ°ÜµÄº¬Òå¡£
´¦Àí Containerʧ°ÜÊÇÓ¦ÓóÌÐò/¿ò¼ÜµÄÔðÈΡ£YARNÖ»¸ºÔðΪӦÓóÌÐò/¿ò¼ÜÌṩÐÅÏ¢¡£
ResourceManagerÊÕ¼¯ËùÓÐÒÑÍê³ÉµÄ ContainerµÄÐÅÏ¢,°ÑËüÃÇ×÷Ϊ API allocateµÄ»ØÓ¦ÐÅÏ¢²¿·Ö·µ»Ø¸øÏàÓ¦µÄ
Application. ApplicationMaster¸ºÔð²é¿´ÈçÏÂÐÅÏ¢: ContainerµÄ״̬¡¢Í˳öÂëºÍÕï¶ÏÐÅÏ¢,²¢Ç¡µ±µØ´¦ÀíËü¡£ÀýÈç,µ±
MapReduce Application MasterÖªµÀContainerʧ°Üʱ,ËüÏò ResouceManagerÇëÇóеÄ
Container,ÖØÐÂÔËÐÐMap»ò ReduceÈÎÎñÖ±µ½´ïµ½Îªµ¥¸öÈÎÎñÅäÖõÄ×î´óµÄ³¢ÊÔ´ÎÊý¡£
Application MasterÐèÒªÔÚÓÉÓÚËü×ÔÉíÔÒòÖØÆôºó»Ö¸´Ó¦ÓóÌÐò¡£µ± Application
Masterʧ°Üʱ, ResourceManager¼òµ¥µØÍ¨¹ýÖØÐÂÆô¶¯Ò»¸öÐ嵀 ApplicationMaster(¸üÈ·ÇеØËµÊÇÔËÐÐ
ApplicationMasterµÄ Container)À´ÖØÆôÓ¦ÓóÌÐò(Ð嵀 ApplicationMaster½«Æô¶¯ÐµÄApplication
Attempt,»Ö¸´Ó¦ÓóÌÐòµÄÏÈǰµÄ״̬ÊÇРApplication.µÄÔðÈΡ£Õâ¸öÄ¿±ê¿ÉÒÔͨ¹ýÒÔÏ·½·¨ÊµÏÖ:ǰ
ApplicationAttempt½«µ±Ç°×´Ì¬³Ö¾Ã»¯µ½Íⲿ´æ´¢¹©ºóÃæµÄApplicationAttemptʹÓÃÏÔÈ»
ApplicationMasterÒ²¿ÉÒÔ´ÓÍ·¿ªÊ¼ÔËÐÐÓ¦ÓóÌÐò,¶ø²»Êǻָ´Æä¹ýÈ¥µÄ״̬¡£ÀýÈç,Èç±¾ÊéËùÊö²»
Hadoop MapReduce¿ò¼ÜµÄ Application Master»á»Ö¸´ÒÑÍê³ÉµÄÈÎÎñ,µ«»áɱËÀÕýÔÚÔËÐеÄÈÎÎñÒÔ¼°ÔÚ
Application Master»Ö¸´Ê±Íê³ÉµÄÈÎÎñ,È»ºóÖØÐÂÔËÐÐËüÃÇ¡£
|