Platform
Symphony ¼ò½é
¼òµ¥À´Ëµ£¬Platform Symphony ÊÇÒ»¸öÌṩÊý¾Ý·Ö·¢¡¢ÈÎÎñµ÷¶ÈÒÔ¼°×ÊÔ´¹ÜÀíµÄÆóÒµ¼¶·Ö²¼Ê½¼ÆËã¿ò¼Ü£¬²¢ÇÒÖ§³ÖÒì¹¹»¯µÄ
IT »·¾³¡£Symphony ÓÉÁ½²ã¼Ü¹¹×é³É£¬Ò»²ãÊǸºÔð×ÊÔ´¹ÜÀíµÄ EGO£¬ÁíÒ»²ãÊÇÈÎÎñ¹ÜÀíµÄ SOAM¡£ÔÚ
Symphony µÄ¼¯ÈºÖУ¬Óû§ÐèÒª¸ù¾Ý Symphony ÌṩµÄ API ʵÏÖ Client ºÍ Service
³ÌÐò¡£Symphony Éæ¼°µÄ»ù´¡Ä£¿éÈçÏÂͼ¡£
ͼ 1. Platform Symphony »ù´¡Ä£¿é

ÈçͼËùʾ£¬Client ³ÌÐòÓÃÓÚÌá½»ÈÎÎñµ½ Symphony ¼¯Èº£¬Symphony »áÔÚ EGO ²ãΪ¸ÃÀàÓ¦ÓÃÉêÇë¼ÆËã×ÊÔ´£¬½Ó×ÅÔÚ¶ÔÓ¦µÄ»úÆ÷ÉÏÆô¶¯Óû§µÄ
Service¡£Service ½ÓÊÕÈÎÎñÊý¾Ý²¢½øÐмÆË㣬×îÖÕ»áͨ¹ý Symphony ½«ÈÎÎñ½á¹û·µ»Ø Client
³ÌÐò¡£
PMC ÊÇ Symphony ÌṩµÄÒ»¸öרҵ WEB ²Ù×÷½çÃæ£¬Æä¿ÉÒÔ¶¨ÖÆ Symphony ¼¯ÈºµÄÅäÖã¬ÒÔ¼°¹ÜÀíÈÎÎñµÈ¡£
CLI ÊÇ Symphony ÌṩÁËһЩÃüÁîÐй¤¾ßµÄ¼¯ºÏ£¬¶ÔÓÚϰ¹ßʹÓÃÃüÁî²Ù×÷µÄÓû§À´Ëµ£¬¸ü¼Ó·½±ãºÍ¸ßЧ¡£Knowledge
Center ÊÇ Symphony ²úÆ·ÎĵµµÄ WEB ½Ó¿Ú£¬Óû§¿ÉÒÔÔÚÆäÖÐÕÒµ½ Symphony ¸÷¸ö¹¦ÄܵĽéÉܺÍʹÓ÷½·¨¡£
·Ö²¼Ê½´óÊý¾Ý¿ò¼ÜµÄ·ÖÀà ÔÚÏêϸ½éÉÜ Platform Symphony Óë´óÊý¾ÝÉú̬ȦµÄ¹ØÏµÖ®Ç°£¬ÈÃÎÒÃÇÏÈÁ˽âÒ»ÏÂÕû¸ö´óÊý¾ÝÉú̬ϵͳ¡£ÎÒ¸öÈËÀí½âÊÇ£ºÄ¿Ç°Õâ¸öÐÐÒµ¿ÉÒÔ¼òµ¥µÄ·ÖΪÈý´ó¿é£¬·Ö±ðÊÇÊý¾ÝÔ´¡¢Êý¾Ý´¦ÀíÒÔ¼°Êý¾Ý·ÖÎö¡£Êý¾Ý·ÖÎöÊÇÖ±½Ó½«´óÊý¾Ýת»»ÎªÉÌÒµ¼ÛÖµµÄÁìÓò£¬ÔÚÊý¾Ý·ÖÎöµÄÁìÓò»áÌá³ö¸÷ÖÖÒµÎñÐèÇó¡£Êý¾Ý´¦ÀíÁìÓòÔòÊǸºÔðʵÏÖÊý¾Ý·ÖÎöÌá³öµÄÐèÇó£¬ÕâÒ»ÁìÓòÒ²¾ÍÊÇÎÒÃǾ³£ËµµÄ»ù´¡ÉèÊ©¼Ü¹¹²ã£¨Infrastructure£©¡£Êý¾ÝÔ´Ö¸µÄ¾ÍÊÇÊý¾Ý²úÉúµÄµØ·½¡£ÔÚÕâÈý¿éÖ®¼äÒ²ÓÐһЩÏνӵÄÈí¼þÁìÓò£¬²»¹ýÍùÍùÒ²¶¼¹éÔÚÁËÊý¾Ý´¦ÀíÁìÓò£¨»ù´¡¼Ü¹¹²ã£©£¬ÀýÈçÏνÓÊý¾ÝÔ´ÓëÊý¾Ý´¦Àí²ãµÄÊý¾Ýµ¼È빤¾ß£¨Èç
sqoop µÈ£©£¬ÒÔ¼°ÏνÓÊý¾Ý·ÖÎöºÍÊý¾Ý´¦ÀíµÄÓ¦Óýӿڣ¨È磺SQL ½Ó¿ÚµÄ Hive£¬ÒÔ¼°Á÷µÄ½Ó¿ÚµÈ£©¡£ÔÚ´óÊý¾ÝµÄÕâÈý´óÁìÓòÖÐÓкܶ࿪ԴÒÔ¼°·Ç¿ªÔ´µÄ²úÆ·£¬ÊìÖªµÄ¿ªÔ´µÄ
Hadoop¡¢Spark µÈ£¬¶¼ÊôÓÚÊý¾Ý´¦ÀíÁìÓò£¬Ò²¾ÍÊÇ»ù´¡¼Ü¹¹Õâ¿é¡£IBM Platform Symphony
ÎÞÒÉÒ²ÊôÓÚÕâÒ»¿é¡£×ÛÉÏËùÊö£¬Èç¹ûºê¹ÛµÄ³éÏó³öÕû¸ö´óÊý¾ÝÉúÌ¬Éæ¼°µÄÏà¹ØÁìÓò£¬´óÖÂÈçÏÂͼËùʾ£º ͼ 2.
´óÊý¾ÝÐÐÒµÏà¹ØµÄÁìÓò  »ùÓÚ¶Ô´óÊý¾ÝÏà¹ØÁìÓòµÄºê¹ÛÃèÊö£¬ÏÂÀ´ÎÒÃǾÍÔÙÀ´Ì¸Ï»ù´¡¼Ü¹¹ÕâÒ»¿é¡£Ä¿Ç°´ó¶à¿ªÔ´Ïà¹ØµÄ´óÊý¾Ý¿ò¼Ü»ù±¾¿ÉÒÔ¹éÊôµ½»ù´¡ÉèÊ©¼Ü¹¹Õâ¿é¡£ÎªÁ˸üºÃµÄÀí½â¸÷¸ö¿ò¼ÜÖ®¼äµÄ¹ØÏµ£¬ÎÒÃÇÓÖ½«»ù´¡ÉèÊ©¼Ü¹¹Õâ¿é·ÖΪËIJ㣬·Ö±ðÊÇÊý¾Ý´æ´¢²ã¡¢¼¯Èº×ÊÔ´¹ÜÀí²ã¡¢¼ÆËãÒýÇæ²ã¡¢ÒÔ¼°Ó¦Óýӿڲ㡣³ýÁËһЩÌṩÒ×ÓÃÐÔ¡¢¿Éά»¤ÐÔÒÔ¼°½¡×³ÐԵĿò¼ÜÖ®Í⣨һ°ãÒ²¿ÉÒÔͳ³ÆÎª¹ÜÀíÀࣩ£¬ÆäËû´ó²¿·Ö¶¼¿ÉÒÔ¹éÔÚÕâËÄÀà¡£ÀýÈç
HDFS ÊôÓÚÊý¾Ý´æ´¢²ã£¬Mesos ºÍ Yarn ÔòÊôÓÚ¼¯Èº×ÊÔ´¹ÜÀí²ã£¬Hadoop MapReduce¡¢Storm¡¢Spark
µÈÔò¹éÊôÓÚ¼ÆËãÒýÇæ²ã£¬Hive¡¢Pig ÔòΪÊý¾Ý²éѯÌṩ½Ó¿Ú¡£Ambari ÔòÊÇÒ»¸öÌáÉýÒ×ÓÃÐԺͿÉά»¤ÐԵŤ¾ß£¬Zookeeper
ÌṩÁ˽¡×³ÐÔ£¨HA£©¡£ÕâЩϵͳ֮¼ä¾ßÌåµÄ¹ØÏµ£¬Çë²Î¼ûÏÂÃæµÄ¼òͼ£º ͼ 3. ·Ö²¼Ê½´óÊý¾Ý»ù´¡¼Ü¹¹¹ØÏµÍ¼
 ÄÇô Platform Symphony ÓÖ¾ßÌå´¦ÔÚÄĸö²ã£¬ÓÖ¿ÉÒÔÌæ´úÄÄЩ¿ªÔ´µÄ¿ò¼ÜÄØ£¿´ø×ÅÎÊÌ⣬ÎÒÃÇÀ´Àí½âÏÂͼ¡£
ͼ 4. Platform Symphony Óë´óÊý¾ÝÉú̬ȦµÄ¹ØÏµ 
´Óͼ 3 ÖÐÎÒÃÇ¿ÉÒÔ¿´³ö£¬ÔÚ´óÊý¾ÝÓ¦Óó¡¾°ÖУ¬Platform Symphony
¼È´¦ÔÚ×ÊÔ´¹ÜÀí²ã£¬Ò²º¸ÇÁ˼ÆËãÒýÇæ²ã¡£Òò´ËºÜ¶àÔÓеĴóÊý¾ÝÓ¦Ó㬶¼¿ÉÒÔºÜÆ½»¬µÄÇ¨ÒÆµ½ Symphony µÄ¼¯ÈºÖÐÔËÐУ¬ÀýÈç
Hive¡¢Pig µÈ¡£²¢ÇÒÓû§ÒÔǰÔÚ Hadoop MapReduce ÉÏ¿ª·¢µÄÓ¦ÓÃÒ²¿ÉÒÔºÜÆ½»¬µÄÔËÐÐÔÚ Symphony
Ö®ÉÏ¡£ Àà±È¿ªÔ´µÄ¿ò¼Ü£¬Platform Symphony ÖÐµÄ EGO ÏàËÆÓë Yarn ºÍ Mesos
´¦ÓÚ¼¯Èº×ÊÔ´¹ÜÀí²ã£¬SOAM ´¦ÓÚ¼ÆËãÒýÇæ²ã£¬¸ºÔðÈÎÎñ¹ÜÀíºÍµ÷¶È¡£Symphony MapReduce Ö»ÊÇ
Symphony ÄÚÖõÄÒ»ÖÖÓ¦Óã¨Hadoop MapReduce Ò²ÊÇÄÚÖÃÓÚ Yarn µÄÒ»ÖÖÓ¦Óã©¡£Óû§Æäʵ¿ÉÒÔ¸ù¾Ý
Symphony µÄ API ʵÏÖ¸÷ÖÖ²»Í¬µÄ Symphony Ó¦Óá£Ä¿Ç° Symphony ÒѾÓ뿪Դ Yarn
ºÍ Spark ¼¯³É£¬Ò²¾ÍÊÇ˵Óû§Ö®Ç°ÔÚ Yarn ºÍ Spark ÉÏÃæµÄÓ¦Ó㬿ÉÒÔÖ±½Óͨ¹ý Symphony
¹ÜÀíºÍµ÷¶È¼¯Èº×ÊÔ´¡£ Platform Symphony µÄÄ£¿éºÍ»ù´¡ÖªÊ¶
ÔÚÎÄÕµĿªÊ¼ÎÒÃǾÍÒѾ̸µ½ÁË Platform Symphony µÄ»ù´¡¼Ü¹¹£¬ÕâÀïÎÒÃǾÍÀ´¿´¿´ Platform
Symphony Á½²ã¼Ü¹¹Öж¼ÓÐÄÄЩÏêϸµÄÄ£¿é¡£ EGO ¼ò½é ÓÃÒ»¾ä˵£¬EGO£¨È«³ÆÎª Enterprise
Grid Orchestrator£©¾ÍÊÇÒ»¸ö¹ÜÀí¼¯Èº×ÊÔ´µÄÄ£¿é¡£Ê×ÏÈËü»á½«ÎïÀí×ÊÔ´£¬½øÐÐÐéÄâ³éÏó²¢¹ÜÀí£¬È»ºóÔÚ¶à¸öÓ¦ÓÃÖ®¼ä½øÐÐе÷ºÍ·ÖÅä¡£ÕâÒ²ÊÇÆäÉè¼ÆµÄ³õÖÔ¡£ÀàËÆÓÚ¿ªÔ´µÄ
Yarn£¬¿ÉÊÇÒªÖªµÀ EGO Õâ¸öÉè¼Æ¼°ÊµÏÖ¶¼ÊÇÊ®¼¸Äêǰ¾ÍÒѾÓÐÁË£¬¶ø Yarn ÔòÊÇÕ⼸Äê²Å·¢Õ¹ÆðÀ´µÄ£¨ÆóÒµ¼¶µÄ·Ö²¼Ê½ÏµÍ³£¬Í¨³£¶¼»á»ýÀÛ³ÁµíºÜ¾Ã²Å»áÇ÷ÓÚÎȶ¨£©¡£EGO
»á½«¼¯Èº½Úµã·ÖΪ¹ÜÀí½ÚµãºÍ¼ÆËã½Úµã£¬²¢¶¨ÒåÒ»Ì××ÊÔ´·ÖÅäµÄ²ßÂÔ¡£ÎÒÃÇÒ²¿ÉÒÔ˵ EGO ¾ÍÊÇÓÉÕâÈý²¿·Ö×é³É£¬ÈçÏÂͼËùʾ¡£
ͼ 5. EGO µÄ×é³É  ¹ÜÀí½Úµã£¬Ò»°ã»áÔËÐÐÒ»Ð©ÌØÊ⻯µÄ·þÎñ£¬ÀýÈç¹ÜÀí
Symphony ÈÎÎñµÄ·þÎñ£¨Session Manager ºÍ WEB µÄ·þÎñ½ø³Ì£¬ºóÃæ»á½éÉÜ£©¡£¼ÆËã½ÚµãÔòÊdzÐÔØÓû§¼ÆËãÈÎÎñµÄ½Úµã¡£Í¼ÖеÄ
Master candidate ÊôÓÚÒ»¸ö Standby µÄ Master ½Úµã¡£¶ÔÓÚ Symphony
µÄ Master ½ÚµãÀ´Ëµ£¬Õâ¾ÍÊÇËüµÄ HA¡£Master ºÍ Master Candidate ¶¼ÊôÓÚ¹ÜÀí½Úµã£¬ËüÃǻṲÏíÒ»¸öĿ¼£¨NFS£©À´¼Ç¼ÔËÐÐʱµÄһЩýÌåÐÅÏ¢¡£µ±
Master å´»ú»ò³¤Ê±¼ä²»ÏìÓ¦µÄʱºò£¬Master Candidate »á½Ó¹Ü¼¯Èº³ÉΪÐ嵀 Master£¬²¢´Ó
NFS µÄýÌåÐÅÏ¢Öлָ´ÕýÔÚÖ´ÐеÄÈÎÎñÐÅÏ¢¡£CPU slot ÊÇÒ»¸öÓÃÀ´ºâÁ¿¼ÆËã×ÊÔ´µÄ»ù±¾µ¥Î»¡£Ò»¸ö Slot
¿ÉÒÔÓÃÀ´Æô¶¯Ò»¸öÓû§µÄ Service ʵÀý£¨ÔÚ¼ÆËã½Úµã£©£¬Ò²¿ÉÒÔÓÃÀ´Æô¶¯Ò»¸ö Session Manager
ÕâÑùµÄ¹ÜÀí·þÎñʵÀý£¨ÔÚ¹ÜÀí½Úµã£©¡£Æäʵ¹ÜÀí½ÚµãºÍ¼ÆËã½ÚµãÖ»ÊÇ EGO ÄÚÖõÄÁ½ÖÖ×ÊÔ´·Ö×飬ÎÒÃÇÒ²½Ð Resource
Group¡£Óû§Ò²¿ÉÒÔ×Ô¶¨ÒåÆäÌØÓÐµÄ Resource Group À´¸ôÀ벻ͬµÄÓ¦Óá£Resource Group
Ö®¼äÒ²¿ÉÒÔÓÐÓÅÏȼ¶£¬Ò²¿ÉÒÔ¶¨ÖÆ»¯¹²Ïí×ÊÔ´¡£ÕâÒ²ÊÇ EGO Ìṩ¸øÉϲãµÄ¹¦ÄÜ¡£ ÕâÀïÒ²½éÉÜÏ EGO
Öм¸¸öÖØÒªµÄ·þÎñ½ø³Ì£¬VEMKD¡¢EGOSC¡¢PEM¡£VEMKD Ï൱ÓÚ Yarn ÖÐµÄ RM£¬ËüÆô¶¯ÔÚ Master
½ÚµãÉÏÃæ£¬ÓÃÓÚ¼à²â¼¯ÈºµÄ×ÊÔ´µÄ״̬ÒÔ¼°¹ÜÀí¼¯Èº×ÊÔ´¡£ÉϲãµÄÓ¦ÓÃ×îÖÕ¶¼»áÏò VEMKD À´ÉêÇë×ÊÔ´£¨Slot£©¡£EGOSC
È«Ãû¾ÍÊÇ EGO service controller£¬Ëü»áÏò VEMKD ÉêÇë×ÊÔ´Æô¶¯Ò»Ð©ÏµÍ³¹ÜÀíµÄ·þÎñ¡£PEM
È«ÃûÊÇ Process Manager£¬ÓÃÓÚÆô¶¯½ø³ÌʵÀý£¬ºÍ¼à²â½ø³ÌʵÀýµÄ״̬¡£ SOAM µÄ×é³É
SOAM ÊÇÒ»¸öÃæÏò·þÎñµÄÖмä¼þ£¬ÆäÓÉ Session Director£¨SD£©¡¢Session Manager£¨SSM£©¡¢Service
Instance Manager (SIM) ºÍ Service Instance£¨SI£©×é³É¡£¾ßÌåµÄ¹ØÏµÈçÏÂͼ¡£
ͼ 6. SOAM µÄ¼Ü¹¹Éè¼Æ  ¼òµ¥½éÉÜϸ÷¸öÄ£¿éÖ®¼äµÄ¹ØÏµ£¬Client
¾ÍÊÇÓû§¸ù¾Ý Symphony SDK ¿ª·¢µÄ¿Í»§¶Ë³ÌÐò£¬Óû§´Ó Client Ìá½»¼ÆËãÈÎÎñ¡£Client
»áÏÈºÍ SD ½¨Á¢Á¬½Ó£¬SD »áÕÒµ½¸ÃÀàÐÍÓ¦ÓÃµÄ SSM¡£Èç¹û¸ÃÀàÐÍ SSM ²»´æÔÚ£¬SD »áÏò EGO ²ãÉêÇë¹ÜÀí½ÚµãµÄ×ÊÔ´£¬²¢Æô¶¯
SSM£¨ÕâÀïµÄ SD ºÍ SSM ¶¼ÊǹÜÀí½ÚµãµÄϵͳ·þÎñʵÀý£¬²»Õ¼ÓüÆËã½ÚµãµÄ×ÊÔ´£©¡£SSM »á¸ù¾ÝÓû§Ìá½»µÄÈÎÎñÏò
EGO ²ãÉêÇëÒ»¶¨µÄ¼ÆËã×ÊÔ´¡£Äõ½¼ÆËã×ÊÔ´ºó SOAM ²ã»áÔÚ¼ÆËã½ÚµãÆô¶¯ SIM ºÍ SI£¨Ò»°ãÒ»¸ö Slot
Æô¶¯Ò»¸ö SI ʵÀý£©¡£È»ºó SSM »á·¢ËÍÈÎÎñºÍÊý¾Ýµ½ SIM£¬½ø¶øµ½ SI Íê³É¼ÆËã¡£SIM »á¹ÜÀíÓû§µÄ
Service ½ø³Ì£¬Èç¹ûÓû§µÄ Service Óöµ½Ò»Ð©´íÎó£¬SIM »á¸ù¾ÝÓû§ÅäÖòúÉú¶ÔÓ¦µÄÐÐΪ£¬ÎÒÃdzÆÖ®Îª
Error Handing¡£ Symphony µÄÓ¦ÓÃÒÔ¼°ÆäÔËÐÐÊ±Éæ¼°µÄ¸ÅÄî ÔÚ Symphony
ÖÐÔËÐеÄÓ¦Óã¬Ö÷Òª°üº¬Èý²¿·Ö£¬·Ö±ðÊÇ Client¡¢Service ³ÌÐòÒÔ¼°¸ÃÓ¦Óõ͍ÒåÎļþ App Profile¡£ÆäÖÐ
Client¡¢Service ¶¼ÐèÒªÓû§¸ù¾Ý Symphony SDK ¿ª·¢¡£ÔËÐÐÊ±Éæ¼°µÄ¸ÅÄî¼ûÏÂͼ¡£
ͼ 7. Symphony App ÔËÐÐʱµÄÏà¹Ø¸ÅÄî 
´ÓͼÖУ¬¿ÉÒÔ¿´¼û Client »á´´½¨ Session£¨¸ú Job ÊÇÒ»¸öÒâ˼£©£¬Session »á°üº¬ºÜ¶à¸ö
Task¡£Client ÿÌá½»Ò»´Î×÷Òµ¶¼»á´´½¨Ò»¸ö Session£¬²¢Éú³É¶à¸ö Task¡£Session µÄ
ID ÊÇÈ«¾ÖΨһµÄ£¬¶ø Task µÄ ID Ö»ÊÇÔڸà Session ÖÐΨһ¡£Ã¿Ò»¸öÓ¦Óö¼»áÓÐÒ»¸ö App
Profile£¬Ëü»á¶¨Òå¸ú¸ÃÓ¦ÓÃÏà¹ØµÄÊôÐÔ£¬ÒÔ¼° Symphony ¶Ô¸ÃÓ¦ÓÃÔÚij¸ö³¡¾°µÄÐÐΪ¡£¶ÔÔËÐÐʱµÄÊý¾ÝÁ÷Ïò£¬ÎÒÃÇ¿ÉÒԲμûÏÂͼ¡£
ͼ 8. Symphony Ó¦ÓõÄÊý¾ÝÁ÷Ïò  Symphony
µÄ Package ¹ÜÀí ÎÞÂÛÊÇ¿ªÔ´µÄ Hadoop »¹ÊÇ Platform Symphony£¬Óû§¶¼ÐèÒª¿ª·¢×Ô¼ºµÄ³ÌÐò¡£Òò´Ë£¬»áÉæ¼°µ½ÈçºÎ¹ÜÀíÓû§Ó¦ÓõIJ¿Êð°ü¡£¶ÔÓÚ
Hadoop À´Ëµ£¬ÐèÒªÉÏ´« Package£¨Jar °ü£©µ½ HDFS¡£Í¬ÑùµÄ Symphony ÐèÒªÓû§½«
Package ·¢Ë͸ø RS ·þÎñ¡£²»¹ý Symphony ÌṩÁ˺ÜÓѺõÄÃüÁîÐй¤¾ßºÍ WEB ²Ù×÷Èë¿Ú¡£Óû§ÉÏ´«Íê³Éºó£¬Symphony
»áÔÚÔËÐиÃÓû§Ó¦ÓÃʱ£¬×Ô¶¯ÏÂÔØ Package µ½¼ÆËã½Úµã¡£ÈçÏÂͼËùʾ¡£ ͼ 9. Symphony
µÄ Package µÄ¹ÜÀí 
Platform Symphony Ó¦ÓüäµÄ×ÊÔ´¹ÜÀíºÍºÍ¹²Ïí Platform Symphony ͨ¹ý
Consumer À´¹ÜÀíÓ¦ÓÃÖ®¼äµÄ×ÊÔ´¡£ÎÒÃÇ¿ÉÒÔ¼òµ¥Àí½â Consumer ¾ÍÏ൱ÓÚÿ¸öÓ¦ÓõÄÒøÐÐÕË»§£¬ÉêÇëµ½µÄ×ÊÔ´¾Í»á´æ·ÅÔÚ
Consumer£¬È»ºóÓëÆä¹ØÁªµÄÓ¦ÓþͿÉÒÔʹÓøà Consumer »ñµÃµÄ×ÊÔ´¡£ÏÂͼÊÇ Consumer ºÍ
App ÒÔ¼° Resource Group µÄ¹ØÏµ¡£ ͼ 10. Consumer¡¢App¡¢RG µÄ¹ØÏµ

´ÓͼÖÐÎÒÃÇ¿ÉÒÔ¿´µ½ App »áÒÔ Consumer
ΪÕË»§ÔÚ Resource Group ÖÐÈ¡µÃ×ÊÔ´£¬Ò»¸ö Consumer ¿ÉÒÔÅäÖôÓÒ»¸ö»ò¶à¸ö RG ÖÐÉêÇë×ÊÔ´¡£ÎªÁË×î´ó»¯µÄÀûÓÃ×ÊÔ´£¬Symphony
ÔÊÐí Consumer Ö®¼äµÄ×ÊÔ´¹²Ïí¡£ÔÚ Symphony µÄ¼¯ÈºÖУ¬»áÓÐ Resource Distribution
Plan µÄ¶¨Ò壬Ҳ¾ÍÊÇÈ«¾Ö×ÊÔ´·ÖÅäµÄ²ßÂÔ¡£Ëü»á°üº¬ÈýÖÖ×ÊÔ´¹²ÏíµÄÄ£ÐÍ¡¢·Ö±ðÊÇ Siloed Ä£ÐÍ¡¢Directed
Shared Ä£ÐÍÒÔ¼° Brokered share Ä£ÐÍ£¨Ò²¿ÉÒÔ³ÆÎª utility Ä£ÐÍ£©ÈçÏÂͼ¡£
ͼ 11. Symphony ×ÊÔ´¹²ÏíÄ£ÐÍ 
¼òµ¥À´Ëµ£¬Óû§¿ÉÒÔ¶ÔÒ»¸ö£¨»ò¶à¸ö£©Ó¦ÓÃÅäÖöÀÕ¼Ò»²¿·Ö×ÊÔ´£¬½«Ê£ÏµķÖÅ䏸ÆäËûÓ¦Óá£ÔÚ¶ÀÕ¼µÄ×ÊÔ´ÖУ¬ÓÖ¿ÉÒÔÅäÖýèÈëºÍ½è³ö¹æÔò¡£ÔÚÓ¦ÓÃÓëÓ¦ÓÃÖ®¼ä£¨Ò²¾ÍÊÇ
Consumer Ö®¼ä£©Ò²¿ÉÒÔÅäÖÃÒ»¸ö±ÈÀý£¬ÕâÑùÓ¦ÓÃÖ®¼ä¿ÉÒÔ°´±ÈÀý»ñÈ¡¼¯ÈºÖйúµÄ×ÊÔ´¡£ÒÔÉÏÖ»ÊǺܼòµ¥µÄ¸ÅÀ¨ÃèÊö£¬×ÊÔ´ÈçºÎ·ÖÅäÊÇ
Symphony µÄÒ»¸öºËÐĵÄÄÚÈÝ£¬¸ÐÐËȤµÄ¶ÁÕß¿ÉÒÔÔÚ IBM Knowledge Center ÖлñµÃ¸ü¶àÄÚÈÝ¡£
Platform Symphony Óë Yarn µÄ¶Ô±È Ç°Ãæ½éÉÜÁË Symphony
ÖÐ EGO ºÍ SOAM ÀïµÄһЩģ¿éºÍ¸ÅÄ¿ÉÄÜÓеÄÈ˾õµÃºÍ´óÊý¾Ý²¢Ã»ÓÐʲô¹ØÏµ¡£ÆäʵÊǺܶàÈËÒѾÏÈÈëΪÖ÷ÁË£¬Ìáµ½´óÊý¾Ý¿ÉÄÜÏëµ½µÄ¸ü¶àµÄÊÇ
Hadoop MapReduce ºÍ Spark Ö®À࣬¶øÕâЩ¶¼Ö»ÊǼÆËã¿ò¼Ü¶øÒÑ¡£Symphony µÄÓû§ÍêÈ«¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÒµÎñ¼ÆËãÂß¼£¬ÊµÏÖ×Ô¼ºµÄ
Symphony Ó¦Óá£Äà MapReduce ¶øÑÔ£¬ËüÒ²Ö»ÊÇ Symphony µÄÒ»¸öÓ¦Óá£ÕâÒ²¼ä½Ó˵Ã÷ÁË
Symphony µÄÁíÒ»¸öÓÅÊÆ£¬¶à×â»§µÄ¸ÅÄî¡£Symphony ÖпÉÒÔͬʱÔËÐжàÖÖÀàÐ͵ÄÓ¦Óá£Óùý Yarn
µÄ¶ÁÕߣ¬¿ÉÄܾõµÃ Symphony ÓÐЩÀàËÆÓÚ Yarn¡£ÕâÀï¾Í½« Symphony µÄ¸÷¸öÄ£¿éÓë YARN
×ö¸ö¼òµ¥µÄ¶ÔÕÕ¡£ÏÂͼÊÇ Yarn µÄ¼Ü¹¹Éè¼Æ£¬ÎÒÃǶԱÈÏ Yarn Óë Symphony µÄÏàËÆÖ®´¦¡£
ͼ 12. Yarn µÄ¼Ü¹¹Éè¼Æ 
Client ¶¼ÊÇÓÃÀ´Ìá½»ÈÎÎñµÄ£¬ÔÚ
Yarn ÖÐ RM »áÉêÇë×ÊÔ´Æô¶¯ App Master¡£ÕâÒ»²½ÀàËÆÓÚ SOAM ÖÐ SD ÉêÇë×ÊÔ´Æô¶¯£¨»òÕÒµ½£©SSM¡£Yarn
ÖÐ App Master »áÏò RM ÉêÇë×ÊÔ´Æô¶¯ container ÔËÐÐ MR ÈÎÎñ£¬²¢ÊÕ¼¯ÈÎÎñ״̬¡£ÕâÀïÀàËÆÓÚ
SSM Ïò EGO ÉêÇë×ÊÔ´Æô¶¯ SIM ºÍ SI£¬²¢·¢ËÍÈÎÎñºÍÊÕ¼¯ÈÎÎñ½á¹ûµÄ¹ý³Ì¡£SSM ºÍ App Master
Ò»Ñù£¬ÊǹÜÀíºÍµ÷¶ÈÈÎÎñµÄÄ£¿é£¬ÔÚÒ»¸ö¼¯ÈºÖпÉÒÔ´æÔÚ¶à¸ö£¨¶àÖÖ²»Í¬ÀàÐ͵ÄÓ¦Óã©¡£ºÜ¶àÈ˶¼ºÜÔÞ̾ Yarn ¼Ü¹¹µÄÇ°ÑØÐÔ£¬ÓÈÆäÓë
Hadoop Ò»´ú±È½Ï£¬Yarn ½«×ÊÔ´¹ÜÀí²ãµ¥¶À³éÏó³öÀ´£¬ÕâÑùʹµÃ Hadoop µÄ¼Ü¹¹¸ü¼ÓÇåÎú¡£¶ø Symphony
Ê®¼¸Äêǰ¾ÍÒѾÕâÑùÉè¼Æ£¬¿É¼û Symphony ÒѾÁìÏÈ¿ªÔ´ºÜ¶àÄê¡£ µ±È» Symphony Óë Yarn
Ò²ÓÐһЩ²îÒ죬ÀýÈçĬÈÏÇé¿öÏ£¨Yarn ¿ÉÒÔÅäÖã©£¬Yarn µÄ App Master ÊÇÆô¶¯ÔÚ Yarn
µÄ Container ÖУ¬ÓëÕæÕýµÄ¼ÆËãʵÀýµÄ Container ²¢ÎÞÌØÊâ¶Ô´ý¡£Ò²¾ÍÊÇ˵Æô¶¯ App Master
µÄ»úÆ÷£¬ÓÐËæ»úÐÔ¡£¶ø Symphony Ò»°ãÖ»ÄÜÆô¶¯ SSM ÔÚ Symphony µÄ¹ÜÀí½Úµã¡£Ò»°ãÇé¿öÏ£¬¹ÜÀí½ÚµãµÄÐÔÄÜ»áÔ¶¸ßÓÚ¼ÆËã½ÚµãµÄ£¬¶ø
SSM µÈ¹ÜÀí½ø³Ì¶ÔÐÔÄܵÄÏûºÄÒ»°ãÒ²»á±È½Ï´ó£¬ËùÒÔÔÚ¹ÜÀí½ÚµãÆô¶¯ SSM ÕâÑùµÄÖØÁ¿¼¶½ø³ÌÊÇÓм¼Êõ±³¾°µÄ¡£ÔÙÀýÈç
Yarn ûÓÐ Resource Group µÄ¸ÅÄÈç¹ûÐèÒª½«Ä³Ð©ÌØÊâµÄÈÎÎñµ÷¶Èµ½Ä³Ò»ÈºÌض¨»úÆ÷ʱ£¬Yarn
ÏÔµÃÓÐЩ³ÁÖØ£¬ÒòΪ Yarn ĿǰֻÄÜͨ¹ý±êÇ©µ÷¶È£¨Tag Policy£©È¥×ö¡£Symphony ¿ÉÄÜÖ»ÐèÒªÉ趨¼¸¸ö
Resource Group£¬²¢Éè¼Æ²»Í¬ÓÅÏȼ¶¼´¿É£¨Symphony ºÜÔçǰҲ֧³ÖÁË Tag µÄµ÷¶È²ßÂÔ£©¡£ÓëËùÓеĿªÔ´¿ò¼ÜÏà±È£¬Symphony
Ö§³Ö¸ü¶àµÄ OS ƽ̨ÒÔ¼°Ó²¼þƽ̨¡£ÀýÈç Hadoop Ŀǰ»¹Ã»Ö§³Ö Windows£¬¶ø Symphony
ºÜÔç¾ÍÖ§³ÖÁË¡£¸ü¶àµÄ²îÒ컯£¬¿ÉÒÔÔÚ IBM µÄ Knowledge Center ÕÒµ½¡£
Platform Symphony µÄ SDK ½Ó¿Ú½éÉÜ ÔÚ½éÉÜ SDK ²ã֮ǰ£¬Ïȼòµ¥½éÉÜһϠSymphony
±¾ÉíµÄʵÏÖÓïÑÔ¡£Symphony µÄÖ÷Ҫģ¿é EGO ºÍ SOAM ÊÇÓÉ C£¯C++ÓïÑÔʵÏֵģ¬ÕâÒ²ÊÇ Symphony
×·ÇóÐÔÄܼ«ÖµÄÒ»ÖÖÌåÏÖ¡£Òò´Ë Symphony Ò²²»»áÊÜÏÞÓÚ JVM£¨Èç GC µÄÓ°Ï죩¡£²»¹ý¶ÔÓÚÓû§À´Ëµ£¬¸ü¹ØÐĵÄÊÇ
SDK ²ãÖ§³ÖµÄÓïÑÔ¡£ Ŀǰ£¬Symphony Ö§³Ö 2 ÖÖ½Ó¿Ú£º £ ÔÉúµÄ SDK
Ö§³Ö Java¡¢C++¡¢C# ÒÔ¼° Python¡£Òò´Ë£¬Óû§¿ÉÒÔ¸ù¾Ý×Ô¼ºÉó¤µÄÓïÑÔ£¬¿ª·¢¶ÔÓ¦µÄ Symphony
Ó¦ÓóÌÐò¡£ ¡ª Symphony MapReduce µÄ½Ó¿Ú Symphony ÌṩºÍ¿ªÔ´
Hadoop Ò»Ö嵀 API£¬²¢È·±£¼æÈÝÐÔ£¬ÕâÀï¾ÍÔÙ²»¶à×ö½éÉÜ¡£ ÏÂÃæÖ÷Òª½éÉÜÏ Symphony
ÔÉú SDK µÄ½Ó¿Ú¡£ Client ¶ËµÄ API ÔÚ Client ¶ËÉæ¼°µÄ×îÖØÒªµÄ¼¸¸ö
API ÓÐ: connect()£¬ÓÃÓÚÔÚ Client ¶ËÁ¬½Ó Symphony ¼¯ÈºÖиÃÀàÓ¦ÓõÄ
SSM¡£ createSession()£¬ÓÃÓÚΪ¸Ã´ÎÈÎÎñ´´½¨ Session£¨Job£©¡£ sendTaskInput()£¬ÓÃÓÚ·¢ËÍÈÎÎñÐèÒªµÄÊäÈë¡£
fetchTaskOutput()£¬ÓÃÓÚ»ñÈ¡¼ÆËãÈÎÎñµÄ½á¹û¡£ Client ¹¤×÷Á÷³ÌͼÈçÏ£º
ͼ 13. Client ¶Ë API µÄÁ÷³Ìͼ 
Service ¶Ë API ÔÚ Service ¶ËÖ÷ÒªµÄ API »áÓУº onCreateService()£¬ÌṩÓû§
Service ¶Ë³õʼ»¯µÄʱ»ú¡£ onSessionEnter()£¬Óû§ Service ¶Ë Common
Data µÈÊý¾ÝµÄ¶ÁÈ¡¡£ onInvoke()£¬Óû§¼ÆËãÂß¼µÄʵÏÖ½Ó¿Ú£¬Ò²¾ÍÊÇ˵ÔÚÕâÀï²¢ÐÐÖ´ÐÐÓû§µÄ¼ÆËãÂß¼¡£
onSessionLeave()£¬ÓÃÓÚ Common Data Êý¾ÝµÄÇåÀí¡£ onDestoryService()£¬Óû§¿ÉÒÔÔÚÕâÀïÇåÀíµô³õʼ»¯Ê±ºòµÄÊý¾Ý¡£
ͼ 14. Service ¶Ë API µÄÁ÷³Ìͼ 
¸ü¶à API µÄϸ½Ú£¬¿ÉÒԲμû Knowledge Center ÖеĽéÉÜ¡£ |