³¡¾°
°éËæ×ÅÐÅÏ¢¿Æ¼¼ÈÕÐÂÔÂÒìµÄ·¢Õ¹£¬ÐÅÏ¢³ÊÏÖ³ö±¬·¢Ê½µÄÅòÕÍ£¬ÈËÃÇ»ñÈ¡ÐÅÏ¢µÄ;¾¶Ò²¸ü¼Ó¶àÑù¡¢¸ü¼Ó±ã½Ý£¬Í¬Ê±¶ÔÓÚÐÅÏ¢µÄʱЧÐÔÒªÇóÒ²Ô½À´Ô½¸ß¡£¾Ù¸öËÑË÷³¡¾°ÖеÄÀý×Ó£¬µ±Ò»¸öÂô¼Ò·¢²¼ÁËÒ»Ìõ±¦±´ÐÅϢʱ£¬ËûÏ£ÍûµÄµ±È»ÊÇÕâ¸ö±¦±´ÂíÉϾͿÉÒÔ±»Âô¼ÒËÑË÷³öÀ´¡¢µã»÷¡¢¹ºÂòÀ²£¬Ïà·´£¬Èç¹ûÕâ¸ö±¦±´ÒªµÈµ½µÚ¶þÌì»òÕ߸ü¾Ã²Å¿ÉÒÔ±»ËѳöÀ´£¬¹À¼ÆÕâ¸ö´ó¸ç¾ÍÒªÂîÄïÁË¡£ÔÙ¾ÙÒ»¸öÍÆ¼öµÄÀý×Ó£¬Èç¹ûÓû§×òÌìÔÚÌÔ±¦ÉÏÂòÁËһ˫Íà×Ó£¬½ñÌìÏëÂòÒ»¸±Ó¾¾µÈ¥ÓÎÓ¾£¬µ«ÊÇÈ´·¢ÏÖϵͳÔÚ²»ÒÅÓàÁ¦µØ¸øËûÍÆ¼öÍà×Ó¡¢Ð¬×Ó£¬¸ù±¾¶ÔËû½ñÌìѰÕÒÓ¾¾µµÄÐÐΪÊÓ¶ø²»¼û£¬¹À¼ÆÕâ¸çÃÇÐÄÀï¾Í»áÏëÍÆ¼öÄãÃÃѽ¡£ÆäʵÉÔ΢Á˽âµã±³¾°ÖªÊ¶µÄÂëÅ©ÃǶ¼ÖªµÀ£¬ÕâÊÇÒòΪºǫ́ϵͳ×öµÄÊÇÿÌìÒ»´ÎµÄÈ«Á¿´¦Àí£¬¶øÇÒ´ó¶àÊÇÔÚÒ¹ÉîÈ˾²Ö®Ê±×öµÄ£¬ÄÇôÄã½ñÌì°×Ìì×öµÄÊÂÇ鵱ȻҪÃ÷Ìì²ÅÄÜ·´Ó³³öÀ´À²¡£
ʵÏÖÒ»¸öʵʱ¼ÆËãϵͳ
È«Á¿Êý¾Ý´¦ÀíʹÓõĴó¶àÊǶ¦¶¦´óÃûµÄhadoop»òÕßhive£¬×÷Ϊһ¸öÅú´¦Àíϵͳ£¬hadoopÒÔÆäÍÌÍÂÁ¿´ó¡¢×Ô¶¯ÈÝ´íµÈÓŵ㣬ÔÚº£Á¿Êý¾Ý´¦ÀíÉϵõ½Á˹㷺µÄʹÓᣵ«ÊÇ£¬hadoop²»Éó¤ÊµÊ±¼ÆË㣬ÒòΪËüÌìÈ»¾ÍÊÇΪÅú´¦Àí¶øÉúµÄ£¬ÕâÒ²ÊÇÒµ½çÒ»ÖµĹ²Ê¶¡£·ñÔò×î½üÕâÁ½ÄêÒ²²»»áÓÐs4,storm,pumaÕâЩʵʱ¼ÆËãϵͳÈçÓêºó´ºËñ°ãð³öÀ´À²¡£ÏÈÅ׿ªs4,storm,pumaÕâЩϵͳ²»Ì¸£¬ÎÒÃÇÊ×ÏÈÀ´¿´Ò»Ï£¬Èç¹ûÈÃÎÒÃÇ×Ô¼ºÉè¼ÆÒ»¸öʵʱ¼ÆËãϵͳ£¬ÎÒÃÇÒª½â¾öÄÄЩÎÊÌâ¡£
µÍÑÓ³Ù¡£¶¼ËµÁËÊÇʵʱ¼ÆËãϵͳÁË£¬ÑÓ³ÙÊÇÒ»¶¨ÒªµÍµÄ¡£
¸ßÐÔÄÜ¡£ÐÔÄܲ»¸ß¾ÍÊÇÀË·Ñ»úÆ÷£¬ÀË·Ñ»úÆ÷ÊÇÒªÊÜÅúÆÀµÄŶ¡£
·Ö²¼Ê½¡£ÏµÍ³¶¼ÊÇΪӦÓó¡¾°¶øÉúµÄ£¬Èç¹ûÄãµÄÓ¦Óó¡¾°¡¢ÄãµÄÊý¾ÝºÍ¼ÆËãµ¥»ú¾ÍÄܸ㶨£¬ÄÇô²»Óÿ¼ÂÇÕâЩ¸´ÔÓµÄÎÊÌâÁË¡£ÎÒÃÇËù˵µÄÊǵ¥»ú¸ã²»¶¨µÄÇé¿ö¡£
¿ÉÀ©Õ¹¡£°éËæ×ÅÒµÎñµÄ·¢Õ¹£¬ÎÒÃǵÄÊý¾ÝÁ¿¡¢¼ÆËãÁ¿¿ÉÄÜ»áÔ½À´Ô½´ó£¬ËùÒÔÏ£ÍûÕâ¸öϵͳÊÇ¿ÉÀ©Õ¹µÄ¡£
ÈÝ´í¡£ÕâÊÇ·Ö²¼Ê½ÏµÍ³ÖÐͨÓÃÎÊÌâ¡£Ò»¸ö½Úµã¹ÒÁ˲»ÄÜÓ°ÏìÎÒµÄÓ¦Óá£
ºÃ£¬Èç¹û½ö½öÐèÒª½â¾öÕâ5¸öÎÊÌ⣬¿ÉÄÜ»áÓÐÎÞÊýÖÖ·½°¸£¬¶øÇÒ¸÷ÓÐǧÇï£¬Ëæ±ã¾ÙÒ»ÖÖ·½°¸£¬Ê¹ÓÃÏûÏ¢¶ÓÁÐ+·Ö²¼ÔÚ¸÷¸ö»úÆ÷ÉϵŤ×÷½ø³Ì¾ÍokÀ²¡£ÎÒÃÇÔÙ¼ÌÐøÍùÏ¿´¡£
ÈÝÒ×ÔÚÉÏÃæ¿ª·¢Ó¦ÓóÌÐò¡£Ç×£¬ÄãÉè¼ÆµÄϵͳÐèÒªÓ¦ÓóÌÐò¿ª·¢ÈËÔ±¿¼ÂǸ÷¸ö´¦Àí×é¼þµÄ·Ö²¼¡¢ÏûÏ¢µÄ´«µÝÂð£¿Èç¹ûÊÇ£¬ÄÇÓеãÂé·³°¡£¬¿ª·¢ÈËÔ±¿ÉÄÜ»áÓò»ºÃ£¬Ò²²»»áÏëÈ¥Óá£
ÏûÏ¢²»¶ªÊ§¡£Óû§·¢²¼µÄÒ»¸ö±¦±´ÏûÏ¢²»ÄÜÔÚʵʱ´¦ÀíµÄʱºò¸ø¶ªÁË£¬¶Ô°É£¿¸üÑϸñÒ»µã£¬Èç¹ûÊÇÒ»¸ö¾«È·Êý¾Ýͳ¼ÆµÄÓ¦Óã¬ÄÇôËü´¦ÀíµÄÏûÏ¢Òª²»¶à²»ÉÙ²ÅÐС£Õâ¸öÒªÇóÓеã¸ßŶ¡£
ÏûÏ¢ÑϸñÓÐÐò¡£ÓÐЩÏûÏ¢Ö®¼äÊÇÓÐÇ¿Ïà¹ØÐԵ쬱ÈÈçͬһ¸ö±¦±´µÄ¸üкÍɾ³ý²Ù×÷ÏûÏ¢£¬Èç¹û´¦Àíʱ¸ãÂÒ˳ÐòÍêÈ«ÊDz»Ò»ÑùµÄЧ¹ûÁË¡£
²»ÖªµÀ´ó¼Ò¶ÔÕâЩÎÊÌâÊÇ·ñ¶¼ÓÐÁË×Ô¼ºµÄ´ð°¸£¬ÏÂÃæÈÃÎÒÃÇ´ø×ÅÕâЩÎÊÌ⣬һÆðÀ´¿´Ò»¿´stormµÄ½â¾ö·½°¸°É¡£
StormÊÇʲô
Èç¹ûÖ»ÓÃÒ»¾ä»°À´ÃèÊöstormµÄ»°£¬¿ÉÄÜ»áÊÇÕâÑù£º·Ö²¼Ê½ÊµÊ±¼ÆËãϵͳ¡£°´ÕÕstorm×÷ÕßµÄ˵·¨£¬storm¶ÔÓÚʵʱ¼ÆËãµÄÒâÒåÀàËÆÓÚhadoop¶ÔÓÚÅú´¦ÀíµÄÒâÒå¡£ÎÒÃǶ¼ÖªµÀ£¬¸ù¾Ýgoogle
mapreduceÀ´ÊµÏÖµÄhadoopΪÎÒÃÇÌṩÁËmap, reduceÔÓʹÎÒÃǵÄÅú´¦Àí³ÌÐò±äµÃ·Ç³£µØ¼òµ¥ºÍÓÅÃÀ¡£Í¬Ñù£¬stormҲΪʵʱ¼ÆËãÌṩÁËһЩ¼òµ¥ÓÅÃÀµÄÔÓï¡£ÎÒÃÇ»áÔÚµÚÈý½ÚÖÐÏêϸ½éÉÜ¡£
ÎÒÃÇÀ´¿´Ò»ÏÂstormµÄÊÊÓó¡¾°¡£
Á÷Êý¾Ý´¦Àí¡£Storm¿ÉÒÔÓÃÀ´´¦ÀíÔ´Ô´²»¶ÏÁ÷½øÀ´µÄÏûÏ¢£¬´¦ÀíÖ®ºó½«½á¹ûдÈ뵽ij¸ö´æ´¢ÖÐÈ¥¡£
·Ö²¼Ê½rpc¡£ÓÉÓÚstormµÄ´¦Àí×é¼þÊÇ·Ö²¼Ê½µÄ£¬¶øÇÒ´¦ÀíÑÓ³Ù¼«µÍ£¬ËùÒÔ¿ÉÒÔ×÷Ϊһ¸öͨÓõķֲ¼Ê½rpc¿ò¼ÜÀ´Ê¹Óᣵ±È»£¬ÆäʵÎÒÃǵÄËÑË÷ÒýÇæ±¾ÉíÒ²ÊÇÒ»¸ö·Ö²¼Ê½rpcϵͳ¡£
˵Á˰ëÌ죬ºÃÏñ¶¼ÊǺÜÐþºõµÄ¶«Î÷£¬ÏÂÃæÎÒÃÇ¿ªÊ¼¾ßÌå½²½âstormµÄ»ù±¾¸ÅÄîºÍËüÄÚ²¿µÄһЩʵÏÖÔÀí°É¡£
StormµÄ»ù±¾¸ÅÄî
Ê×ÏÈÎÒÃÇͨ¹ýÒ»¸ö storm ºÍhadoopµÄ¶Ô±ÈÀ´Á˽âstormÖеĻù±¾¸ÅÄî¡£
±í3-1

½ÓÏÂÀ´ÎÒÃÇÔÙÀ´¾ßÌå¿´Ò»ÏÂÕâЩ¸ÅÄî¡£
Nimbus£º¸ºÔð×ÊÔ´·ÖÅäºÍÈÎÎñµ÷¶È¡£
Supervisor£º¸ºÔð½ÓÊÜnimbus·ÖÅäµÄÈÎÎñ£¬Æô¶¯ºÍÍ£Ö¹ÊôÓÚ×Ô¼º¹ÜÀíµÄworker½ø³Ì¡£
Worker£ºÔËÐоßÌå´¦Àí×é¼þÂß¼µÄ½ø³Ì¡£
Task£ºworkerÖÐÿһ¸öspout/boltµÄÏ̳߳ÆÎªÒ»¸ötask.
ÔÚstorm0.8Ö®ºó£¬task²»ÔÙÓëÎïÀíÏ̶߳ÔÓ¦£¬Í¬Ò»¸öspout/boltµÄtask¿ÉÄܻṲÏíÒ»¸öÎïÀíỊ̈߳¬¸ÃÏ̳߳ÆÎªexecutor¡£
ÏÂÃæÕâ¸öͼÃèÊöÁËÒÔÉϼ¸¸ö½Çɫ֮¼äµÄ¹ØÏµ¡£

ͼ3-1
Topology£ºstormÖÐÔËÐеÄÒ»¸öʵʱӦÓóÌÐò£¬ÒòΪ¸÷¸ö×é¼þ¼äµÄÏûÏ¢Á÷¶¯ÐγÉÂß¼ÉϵÄÒ»¸öÍØÆË½á¹¹¡£
Spout£ºÔÚÒ»¸ötopologyÖвúÉúÔ´Êý¾ÝÁ÷µÄ×é¼þ¡£Í¨³£Çé¿öÏÂspout»á´ÓÍⲿÊý¾ÝÔ´ÖжÁÈ¡Êý¾Ý£¬È»ºóת»»ÎªtopologyÄÚ²¿µÄÔ´Êý¾Ý¡£SpoutÊÇÒ»¸öÖ÷¶¯µÄ½ÇÉ«£¬Æä½Ó¿ÚÖÐÓиönextTuple()º¯Êý£¬storm¿ò¼Ü»á²»Í£µØµ÷Óô˺¯Êý£¬Óû§Ö»ÒªÔÚÆäÖÐÉú³ÉÔ´Êý¾Ý¼´¿É¡£
Bolt£ºÔÚÒ»¸ötopologyÖнÓÊÜÊý¾ÝÈ»ºóÖ´Ðд¦ÀíµÄ×é¼þ¡£Bolt¿ÉÒÔÖ´ÐйýÂË¡¢º¯Êý²Ù×÷¡¢ºÏ²¢¡¢Ð´Êý¾Ý¿âµÈÈκβÙ×÷¡£BoltÊÇÒ»¸ö±»¶¯µÄ½ÇÉ«£¬Æä½Ó¿ÚÖÐÓиöexecute(Tuple
input)º¯Êý,ÔÚ½ÓÊܵ½ÏûÏ¢ºó»áµ÷Óô˺¯Êý£¬Óû§¿ÉÒÔÔÚÆäÖÐÖ´ÐÐ×Ô¼ºÏëÒªµÄ²Ù×÷¡£
Tuple£ºÒ»´ÎÏûÏ¢´«µÝµÄ»ù±¾µ¥Ôª¡£±¾À´Ó¦¸ÃÊÇÒ»¸ökey-valueµÄmap£¬µ«ÊÇÓÉÓÚ¸÷¸ö×é¼þ¼ä´«µÝµÄtupleµÄ×Ö¶ÎÃû³ÆÒѾÊÂÏȶ¨ÒåºÃ£¬ËùÒÔtupleÖÐÖ»Òª°´ÐòÌîÈë¸÷¸övalue¾ÍÐÐÁË£¬ËùÒÔ¾ÍÊÇÒ»¸övalue
list.
Stream£ºÔ´Ô´²»¶Ï´«µÝµÄtuple¾Í×é³ÉÁËstream¡£
10. stream grouping£º¼´ÏûÏ¢µÄpartition·½·¨¡£StormÖÐÌṩÈô¸ÉÖÖʵÓõÄgrouping·½Ê½£¬°üÀ¨shuffle,
fields hash, all, global, none, directºÍlocalOrShuffleµÈ
Ïà±ÈÓÚs4, pumaµÈÆäËûʵʱ¼ÆËãϵͳ£¬storm×î´óµÄÁÁµãÔÚÓÚÆä¼Ç¼¼¶ÈÝ´íºÍÄܹ»±£Ö¤ÏûÏ¢¾«È·´¦ÀíµÄÊÂÎñ¹¦ÄÜ¡£ÏÂÃæ¾ÍÖØµãÀ´¿´Ò»ÏÂÕâÁ½¸öÁÁµãµÄʵÏÖÔÀí¡£
Storm¼Ç¼¼¶ÈÝ´íµÄ»ù±¾ÔÀí
Ê×ÏÈÀ´¿´Ò»ÏÂʲô½Ð×ö¼Ç¼¼¶ÈÝ´í£¿stormÔÊÐíÓû§ÔÚspoutÖз¢ÉäÒ»¸öеÄÔ´tupleʱΪÆäÖ¸¶¨Ò»¸ömessage
id, Õâ¸ömessage id¿ÉÒÔÊÇÈÎÒâµÄobject¶ÔÏó¡£¶à¸öÔ´tuple¿ÉÒÔ¹²ÓÃÒ»¸ömessage
id£¬±íʾÕâ¶à¸öÔ´ tuple¶ÔÓû§À´ËµÊÇͬһ¸öÏûÏ¢µ¥Ôª¡£stormÖмǼ¼¶ÈÝ´íµÄÒâ˼ÊÇ˵£¬storm»á¸æÖªÓû§Ã¿Ò»¸öÏûÏ¢µ¥ÔªÊÇ·ñÔÚÖ¸¶¨Ê±¼äÄÚ±»ÍêÈ«´¦ÀíÁË¡£ÄÇʲô½Ð×öÍêÈ«´¦ÀíÄØ£¬¾ÍÊǸÃmessage
id°ó¶¨µÄÔ´tuple¼°ÓɸÃÔ´tupleºóÐøÉú³ÉµÄtuple¾¹ýÁËtopologyÖÐÿһ¸öÓ¦¸Ãµ½´ïµÄboltµÄ´¦Àí¡£¾Ù¸öÀý×Ó¡£ÔÚͼ4-1ÖУ¬ÔÚspoutÓÉmessage
1°ó¶¨µÄtuple1ºÍtuple2¾¹ýÁËbolt1ºÍbolt2µÄ´¦ÀíÉú³ÉÁ½¸öеÄtuple£¬²¢×îÖÕ¶¼Á÷ÏòÁËbolt3¡£µ±Õâ¸ö¹ý³ÌÍê³É´¦ÀíÍêʱ£¬³Æmessage
1±»ÍêÈ«´¦ÀíÁË¡£

ÏûÏ¢´«µÝ ͼ4-1
ÔÚstormµÄtopologyÖÐÓÐÒ»¸öϵͳ¼¶×é¼þ£¬½Ð×öacker¡£Õâ¸öackerµÄÈÎÎñ¾ÍÊÇ×·×Ù´ÓspoutÖÐÁ÷³öÀ´µÄÿһ¸ömessage
id°ó¶¨µÄÈô¸ÉtupleµÄ´¦Àí·¾¶£¬Èç¹ûÔÚÓû§ÉèÖõÄ×î´ó³¬Ê±Ê±¼äÄÚÕâЩtupleûÓб»ÍêÈ«´¦Àí£¬ÄÇôacker¾Í»á¸æÖªspout¸ÃÏûÏ¢´¦Àíʧ°ÜÁË£¬Ïà·´Ôò»á¸æÖªspout¸ÃÏûÏ¢´¦Àí³É¹¦ÁË¡£ÔڸղŵÄÃèÊöÖУ¬ÎÒÃÇÌáµ½ÁË¡±¼Ç¼tupleµÄ´¦Àí·¾¶¡±£¬Èç¹ûÔø¾³¢ÊÔ¹ýÕâô×öµÄͬѧ¿ÉÒÔ×ÐϸµØË¼¿¼Ò»ÏÂÕâ¼þʵĸ´Ôӳ̶ȡ£µ«ÊÇstormÖÐÈ´ÊÇʹÓÃÁËÒ»Öַdz£ÇÉÃîµÄ·½·¨×öµ½ÁË¡£ÔÚ˵Ã÷Õâ¸ö·½·¨Ö®Ç°£¬ÎÒÃÇÀ´¸´Ï°Ò»¸öÊýѧ¶¨Àí¡£
A xor A = 0.
A xor B¡xor B xor A = 0£¬ÆäÖÐÿһ¸ö²Ù×÷Êý³öÏÖÇÒ½ö³öÏÖÁ½´Î¡£
stormÖÐʹÓõÄÇÉÃî·½·¨¾ÍÊÇ»ùÓÚÕâ¸ö¶¨Àí¡£¾ßÌå¹ý³ÌÊÇÕâÑùµÄ£ºÔÚspoutÖÐϵͳ»áΪÓû§Ö¸¶¨µÄmessage
idÉú³ÉÒ»¸ö¶ÔÓ¦µÄ64λÕûÊý£¬×÷Ϊһ¸öroot id¡£root id»á´«µÝ¸øacker¼°ºóÐøµÄbolt×÷Ϊ¸ÃÏûÏ¢µ¥ÔªµÄΨһ±êʶ¡£Í¬Ê±ÎÞÂÛÊÇspout»¹ÊÇboltÿ´ÎÐÂÉú³ÉÒ»¸ötupleµÄʱºò£¬¶¼»á¸³Óè¸ÃtupleÒ»¸ö64λµÄÕûÊýµÄid¡£Spout·¢ÉäÍêij¸ömessage
id¶ÔÓ¦µÄÔ´tupleÖ®ºó£¬»á¸æÖªacker×Ô¼º·¢ÉäµÄroot id¼°Éú³ÉµÄÄÇЩԴtupleµÄid¡£¶øboltÄØ£¬Ã¿´Î½ÓÊܵ½Ò»¸öÊäÈëtuple´¦ÀíÍêÖ®ºó£¬Ò²»á¸æÖªacker×Ô¼º´¦ÀíµÄÊäÈëtupleµÄid¼°ÐÂÉú³ÉµÄÄÇЩtupleµÄid¡£AckerÖ»ÐèÒª¶ÔÕâЩid×öÒ»¸ö¼òµ¥µÄÒì»òÔËË㣬¾ÍÄÜÅжϳö¸Ãroot
id¶ÔÓ¦µÄÏûÏ¢µ¥ÔªÊÇ·ñ´¦ÀíÍê³ÉÁË¡£ÏÂÃæÍ¨¹ýÒ»¸öͼʾÀ´ËµÃ÷Õâ¸ö¹ý³Ì¡£

ͼ4-1 spoutÖаó¶¨message
1Éú³ÉÁËÁ½¸öÔ´tuple£¬id·Ö±ðÊÇ0010ºÍ1011.

ͼ4-2 bolt1´¦Àítuple 0010ʱÉú³ÉÁËÒ»¸öеÄtuple£¬idΪ0110.

ͼ4-3 bolt2´¦Àítuple 1011ʱÉú³ÉÁËÒ»¸öеÄtuple£¬idΪ0111.

ͼ4-4 bolt3ÖнÓÊÕµ½tuple 0110ºÍtuple
0111£¬Ã»ÓÐÉú³ÉеÄtuple.
¿ÉÄÜÓÐЩϸÐĵÄͬѧ»á·¢ÏÖ£¬ÈÝ´í¹ý³Ì´æÔÚÒ»¸ö¿ÉÄܳö´íµÄµØ·½£¬ÄǾÍÊÇ£¬Èç¹ûÉú³ÉµÄtuple id²¢²»ÊÇÍêÈ«¸÷ÒìµÄ£¬acker¿ÉÄÜ»áÔÚÏûÏ¢µ¥ÔªÍêÈ«´¦ÀíÍê³É֮ǰ¾Í´íÎóµÄ¼ÆËãΪ0¡£Õâ¸ö´íÎóÔÚÀíÂÛÉϵÄÈ·ÊÇ´æÔڵ쬵«ÊÇÔÚʵ¼ÊÖÐÆä¸ÅÂÊÊǼ«µÍ¼«µÍµÄ£¬ÍêÈ«¿ÉÒÔºöÂÔ¡£
StormµÄÊÂÎñÍØÆË
ÊÂÎñÍØÆË(transactional topology)ÊÇstorm0.7ÒýÈëµÄÌØÐÔ£¬ÔÚ×î½ü·¢²¼µÄ0.8°æ±¾ÖÐÒѾ±»·âװΪTrident£¬ÌṩÁ˸ü¼Ó±ãÀûºÍÖ±¹ÛµÄ½Ó¿Ú¡£ÒòΪƪ·ùËùÏÞ£¬Ôڴ˶ÔÊÂÎñÍØÆË×öÒ»¸ö¼òµ¥µÄ½éÉÜ¡£
ÊÂÎñÍØÆËµÄÄ¿µÄÊÇΪÁËÂú×ã¶ÔÏûÏ¢´¦ÀíÓÐ׿«ÆäÑϸñÒªÇóµÄ³¡¾°£¬ÀýÈçʵʱ¼ÆËãij¸öÓû§µÄ³É½»±ÊÊý£¬ÒªÇó½á¹ûÍêÈ«¾«È·£¬²»ÄܶàÒ²²»ÄÜÉÙ¡£StormµÄÊÂÎñÍØÆËÊÇÍêÈ«»ùÓÚËüµ×²ãµÄspout/bolt/ackerÔÓïʵÏֵģ¬Í¨¹ýÒ»²ãÇÉÃîµÄ·â×°µÃ³öÒ»¸öÓÅÑŵÄʵÏÖ¡£¸öÈ˾õµÃÕâÒ²ÊÇstorm×î´óµÄ÷ÈÁ¦Ö®Ò»¡£
ÊÂÎñÍØÆË¼òµ¥À´Ëµ¾ÍÊǽ«ÏûÏ¢·ÖΪһ¸ö¸öµÄÅú(batch)£¬Í¬Ò»ÅúÄÚµÄÏûÏ¢ÒÔ¼°ÅúÓëÅúÖ®¼äµÄÏûÏ¢¿ÉÒÔ²¢Ðд¦Àí£¬ÁíÒ»·½Ã棬Óû§¿ÉÒÔÉèÖÃijЩboltΪcommitter£¬storm¿ÉÒÔ±£Ö¤committerµÄfinishBatch()²Ù×÷Êǰ´Ñϸñ²»½µÐòµÄ˳ÐòÖ´Ðеġ£Óû§¿ÉÒÔÀûÓÃÕâ¸öÌØÐÔͨ¹ý¼òµ¥µÄ±à³Ì¼¼ÇÉʵÏÖÏûÏ¢´¦ÀíµÄ¾«È·¡£
StormÔÚÌÔ±¦
ÓÉÓÚstormµÄÄÚºËÊÇclojure±àдµÄ(²»¹ý´ó²¿·ÖµÄÍØÕ¹¹¤×÷¶¼ÊÇjava±àдµÄ)£¬ÎªÎÒÃÇÀí½âËüµÄʵÏÖ´øÀ´ÁËÒ»¶¨µÄÀ§ÄÑ£¬ºÃÔڴ󲿷ÖÇé¿öÏÂstorm¶¼±È½ÏÎȶ¨£¬µ±È»ÎÒÃÇÒ²ÔÚ¾¡Á¦ÊìϤclojureµÄÊÀ½ç¡£ÎÒÃÇÔÚʹÓÃstormʱͨ³£¶¼ÊÇÑ¡ÔñjavaÓïÑÔ¿ª·¢Ó¦ÓóÌÐò¡£
ÔÚÌÔ±¦£¬storm±»¹ã·ºÓÃÀ´½øÐÐʵʱÈÕÖ¾´¦Àí£¬³öÏÖÔÚʵʱͳ¼Æ¡¢ÊµÊ±·ç¿Ø¡¢ÊµÊ±ÍƼöµÈ³¡¾°ÖС£Ò»°ãÀ´Ëµ£¬ÎÒÃÇ´ÓÀàkafkaµÄmetaQ»òÕß»ùÓÚhbaseµÄtimetunnelÖжÁȡʵʱÈÕÖ¾ÏûÏ¢£¬¾¹ýһϵÁд¦Àí£¬×îÖÕ½«´¦Àí½á¹ûдÈëµ½Ò»¸ö·Ö²¼Ê½´æ´¢ÖУ¬Ìṩ¸øÓ¦ÓóÌÐò·ÃÎÊ¡£ÎÒÃÇÿÌìµÄʵʱÏûÏ¢Á¿´Ó¼¸°ÙÍòµ½¼¸Ê®ÒÚ²»µÈ£¬Êý¾Ý×ÜÁ¿´ïµ½TB¼¶¡£¶ÔÓÚÎÒÃÇÀ´Ëµ£¬stormÍùÍù»áÅäºÏ·Ö²¼Ê½´æ´¢·þÎñÒ»ÆðʹÓá£ÔÚÎÒÃÇÕýÔÚ½øÐеĸöÐÔ»¯ËÑË÷ʵʱ·ÖÎöÏîÄ¿ÖУ¬¾ÍʹÓÃÁËtimetunnel
+ hbase + storm + upsµÄ¼Ü¹¹£¬Ã¿Ìì´¦Àí¼¸Ê®ÒÚµÄÓû§ÈÕÖ¾ÐÅÏ¢£¬´ÓÓû§ÐÐΪ·¢Éúµ½Íê³É·ÖÎöÑÓ³ÙÔÚÃë¼¶¡£
StormµÄδÀ´
Storm0.7ϵÁеİ汾ÒѾÔÚ¸÷´ó¹«Ë¾µÃµ½Á˹㷺ʹÓã¬×î½ü·¢²¼µÄ0.8°æ±¾ÖÐÒýÈëÁËState£¬Ê¹µÃÆä´ÓÒ»¸ö´¿¼ÆËã¿ò¼ÜÑݱä³ÉÁËÒ»¸ö°üº¬´æ´¢ºÍ¼ÆËãµÄʵʱ¼ÆËãÐÂÀûÆ÷£¬»¹ÓиղÅÌáµ½µÄTrident£¬Ìṩ¸ü¼ÓÓѺõĽӿڣ¬Í¬Ê±¿É¶¨ÖÆschedulerµÄÌØÐÔҲΪÆäÕë¶Ô²»Í¬µÄÓ¦Óó¡¾°×öÓÅ»¯ÌṩÁ˸ü±ãÀûµÄÊֶΣ¬Ò²ÓÐÈËÒѾÔÚ»ùÓÚstormµÄʵʱql(query
language)ÉÏÂõ³öÁ˽ű¾¡£ÔÚ·þÎñ»¯·½Ã棬stormÒ»Ö±ÔÚ³¯×ÅÈÚÈëmesos¿ò¼ÜµÄ·½ÏòŬÁ¦¡£Í¬Ê±£¬stormÒ²ÔÚʵÏÖϸ½ÚÉϲ»¶ÏµØÓÅ»¯£¬Ê¹ÓúܶàÓÅÐãµÄ¿ªÔ´²úÆ·£¬°üÀ¨kryo,
Disruptor, curatorµÈµÈ¡£¿ÉÒÔÏëÏ󣬵±storm·¢Õ¹µ½1.0°æ±¾Ê±£¬Ò»¶¨ÊÇÒ»¿îÎޱȽܳöµÄ²úÆ·£¬ÈÃÎÒÃÇÊÃÄ¿ÒÔ´ý£¬µ±È»£¬×îºÃ»¹ÊDzÎÓëµ½ÆäÖÐÈ¥°É£¬Í¬Ñ§ÃÇ¡£
|