Á÷ʽ´¦Àí´óÊý¾Ý¼ò½é
Storm ÊÇÒ»¸ö¿ªÔ´µÄ¡¢´óÊý¾Ý´¦Àíϵͳ£¬ÓëÆäËûϵͳ²»Í¬£¬ËüÖ¼ÔÚÓÃÓÚ·Ö²¼Ê½ÊµÊ±´¦ÀíÇÒÓëÓïÑÔÎ޹ء£Á˽â Twitter
Storm¡¢ËüµÄ¼Ü¹¹£¬ÒÔ¼°Åú´¦ÀíºÍÁ÷ʽ´¦Àí½â¾ö·½°¸µÄ·¢Õ¹ÐÎÊÆ¡£
Hadoop£¨´óÊý¾Ý·ÖÎöÁìÓòÎÞ¿ÉÕù±çµÄÍõÕߣ©×¨×¢ÓÚÅú´¦Àí¡£ÕâÖÖÄ£ÐͶÔÐí¶àÇéÐΣ¨±ÈÈçÎªÍøÒ³½¨Á¢Ë÷Òý£©ÒѾ×ã¹»£¬µ«»¹´æÔÚÆäËûһЩʹÓÃÄ£ÐÍ£¬ËüÃÇÐèÒªÀ´×Ը߶ȶ¯Ì¬µÄÀ´Ô´µÄʵʱÐÅÏ¢¡£ÎªÁ˽â¾öÕâ¸öÎÊÌ⣬¾ÍµÃ½èÖú
Nathan Marz ÍÆ³öµÄ Storm£¨ÏÖÔÚÔÚ Twitter ÖгÆÎª BackType£©¡£Storm
²»´¦Àí¾²Ì¬Êý¾Ý£¬µ«Ëü´¦ÀíÔ¤¼Æ»áÁ¬ÐøµÄÁ÷Êý¾Ý¡£¿¼Âǵ½ Twitter Óû§Ã¿ÌìÉú³É 1.4 ÒÚÌõÍÆÎÄ (tweet)£¬ÄÇô¾ÍºÜÈÝÒ׿´µ½´Ë¼¼ÊõµÄ¾Þ´óÓÃ;¡£
µ« Storm ²»Ö»ÊÇÒ»¸ö´«Í³µÄ´óÊý¾Ý·ÖÎöϵͳ£ºËüÊǸ´ÔÓʼþ´¦Àí (CEP) ϵͳµÄÒ»¸öʾÀý¡£CEP ϵͳͨ³£·ÖÀàΪ¼ÆËãºÍÃæÏò¼ì²â£¬ÆäÖÐÿ¸öϵͳ¶¼¿Éͨ¹ýÓû§¶¨ÒåµÄËã·¨ÔÚ
Storm ÖÐʵÏÖ¡£¾ÙÀý¶øÑÔ£¬CEP ¿ÉÓÃÓÚʶ±ðʼþºéÁ÷ÖÐÓÐÒâÒåµÄʼþ£¬È»ºóʵʱµØ´¦ÀíÕâЩʼþ¡£
Nathan Marz ÌṩÁËÔÚ Twitter ÖÐʹÓà Storm µÄ´óÁ¿Ê¾Àý¡£Ò»¸ö×îÓÐȤµÄʾÀýÊÇÉú³ÉÇ÷ÊÆÐÅÏ¢¡£Twitter
´Óº£Á¿µÄÍÆÎÄÖÐÌáÈ¡Ëù¸¡ÏÖµÄÇ÷ÊÆ£¬²¢ÔÚ±¾µØºÍ¹ú¼Ò¼¶±ðά»¤ËüÃÇ¡£ÕâÒâζ×ŵ±Ò»¸ö°¸Àý¿ªÊ¼¸¡ÏÖʱ£¬Twitter
µÄÇ÷ÊÆÖ÷ÌâËã·¨¾Í»áʵʱʶ±ð¸ÃÖ÷Ìâ¡£ÕâÖÖʵʱËã·¨ÔÚ Storm ÖÐʵÏÖΪ Twitter Êý¾ÝµÄÒ»ÖÖÁ¬Ðø·ÖÎö¡£
Storm Ó봫ͳµÄ´óÊý¾Ý
Storm ÓëÆäËû´óÊý¾Ý½â¾ö·½°¸µÄ²»Í¬Ö®´¦ÔÚÓÚËüµÄ´¦Àí·½Ê½¡£Hadoop ÔÚ±¾ÖÊÉÏÊÇÒ»¸öÅú´¦Àíϵͳ¡£Êý¾Ý±»ÒýÈë
Hadoop Îļþϵͳ (HDFS) ²¢·Ö·¢µ½¸÷¸ö½Úµã½øÐд¦Àí¡£µ±´¦ÀíÍê³Éʱ£¬½á¹ûÊý¾Ý·µ»Øµ½ HDFS
¹©Ê¼·¢ÕßʹÓá£Storm Ö§³Ö´´½¨ÍØÆË½á¹¹À´×ª»»Ã»ÓÐÖÕµãµÄÊý¾ÝÁ÷¡£²»Í¬ÓÚ Hadoop ×÷Òµ£¬ÕâЩת»»´Ó²»Í£Ö¹£¬ËüÃÇ»á³ÖÐø´¦Àíµ½´ïµÄÊý¾Ý¡£
´óÊý¾ÝʵÏÖ
Hadoop µÄºËÐÄÊÇʹÓà Java? ÓïÑÔ±àдµÄ£¬µ«Ö§³ÖʹÓø÷ÖÖÓïÑÔ±àдµÄÊý¾Ý·ÖÎöÓ¦ÓóÌÐò¡£×îеÄÓ¦ÓóÌÐòµÄʵÏÖ²ÉÓÃÁ˸ü¼ÓÉî°ÂµÄ·Ïߣ¬ÒÔ³ä·ÖÀûÓÃÏÖ´úÓïÑÔºÍËüÃǵÄÌØÐÔ¡£ÀýÈ磬λÓÚ²®¿ËÀûµÄ¼ÓÀû¸£ÄáÑÇ´óѧ
(UC) µÄ Spark ÊÇʹÓà Scala ÓïÑÔʵÏֵ쬶ø Twitter Storm ÊÇʹÓà Clojure£¨·¢Òôͬ
closure£©ÓïÑÔʵÏֵġ£
Clojure ÊÇ Lisp ÓïÑÔµÄÒ»ÖÖÏÖ´ú·½ÑÔ¡£ÀàËÆÓÚ Lisp£¬Clojure Ö§³ÖÒ»ÖÖ¹¦ÄÜÐÔ±à³Ì·ç¸ñ£¬µ«
Clojure »¹ÒýÈëÁËÒ»Ð©ÌØÐÔÀ´¼ò»¯¶àÏ̱߳à³Ì£¨Ò»ÖÖ¶Ô´´½¨ Storm ºÜÓÐÓõÄÌØÐÔ£©¡£Clojure
ÊÇÒ»ÖÖ»ùÓÚÐéÄâ»ú (VM) µÄÓïÑÔ£¬ÔÚ Java ÐéÄâ»úÉÏÔËÐС£µ«ÊÇ£¬¾¡¹Ü Storm ÊÇʹÓà Clojure
ÓïÑÔ¿ª·¢µÄ£¬ÄúÈÔÈ»¿ÉÒÔÔÚ Storm ÖÐʹÓü¸ºõÈκÎÓïÑÔ±àдӦÓóÌÐò¡£ËùÐèµÄÖ»ÊÇÒ»¸öÁ¬½Óµ½ Storm
µÄ¼Ü¹¹µÄÊÊÅäÆ÷¡£ÒÑ´æÔÚÕë¶Ô Scala¡¢JRuby¡¢Perl ºÍ PHP µÄÊÊÅäÆ÷£¬µ«ÊÇ»¹ÓÐÖ§³ÖÁ÷ʽ´«Êäµ½
Storm ÍØÆË½á¹¹ÖеĽṹ»¯²éѯÓïÑÔÊÊÅäÆ÷¡£
Storm µÄ¹Ø¼üÊôÐÔ
Storm ʵÏÖµÄÒ»Ð©ÌØÕ÷¾ö¶¨ÁËËüµÄÐÔÄܺͿɿ¿ÐԵġ£Storm ʹÓà ZeroMQ ´«ËÍÏûÏ¢£¬Õâ¾ÍÏû³ýÁËÖмäµÄÅŶӹý³Ì£¬Ê¹µÃÏûÏ¢Äܹ»Ö±½ÓÔÚÈÎÎñ×ÔÉíÖ®¼äÁ÷¶¯¡£ÔÚÏûÏ¢µÄ±³ºó£¬ÊÇÒ»ÖÖÓÃÓÚÐòÁл¯ºÍ·´ÐòÁл¯
Storm µÄÔÓïÀàÐ͵Ä×Ô¶¯»¯ÇÒ¸ßЧµÄ»úÖÆ¡£
Storm µÄÒ»¸ö×îÓÐȤµÄµØ·½ÊÇËü×¢ÖØÈÝ´íºÍ¹ÜÀí¡£Storm ʵÏÖÁËÓб£ÕϵÄÏûÏ¢´¦Àí£¬ËùÒÔÿ¸öÔª×é¶¼»áͨ¹ý¸ÃÍØÆË½á¹¹½øÐÐÈ«Ãæ´¦Àí£»Èç¹û·¢ÏÖÒ»¸öÔª×黹δ´¦Àí£¬Ëü»á×Ô¶¯´ÓÅç×ì´¦ÖØ·Å¡£Storm
»¹ÊµÏÖÁËÈÎÎñ¼¶µÄ¹ÊÕϼì²â£¬ÔÚÒ»¸öÈÎÎñ·¢Éú¹ÊÕÏʱ£¬ÏûÏ¢»á×Ô¶¯ÖØÐ·ÖÅäÒÔ¿ìËÙÖØÐ¿ªÊ¼´¦Àí¡£Storm °üº¬±È
Hadoop ¸üÖÇÄܵĴ¦Àí¹ÜÀí£¬Á÷³Ì»áÓɼà¹ÜÔ±À´½øÐйÜÀí£¬ÒÔÈ·±£×ÊÔ´µÃµ½³ä·ÖʹÓá£
Storm Ä£ÐÍ
Storm ʵÏÖÁËÒ»ÖÖÊý¾ÝÁ÷Ä£ÐÍ£¬ÆäÖÐÊý¾Ý³ÖÐøµØÁ÷¾Ò»¸öת»»ÊµÌåÍøÂ磨²Î¼û ͼ 1£©¡£Ò»¸öÊý¾ÝÁ÷µÄ³éÏó³ÆÎªÒ»¸öÁ÷£¬ÕâÊÇÒ»¸öÎÞÏÞµÄÔª×éÐòÁС£Ôª×é¾ÍÏñÒ»ÖÖʹÓÃһЩ¸½¼ÓµÄÐòÁл¯´úÂëÀ´±íʾ±ê×¼Êý¾ÝÀàÐÍ£¨±ÈÈçÕûÊý¡¢¸¡µãºÍ×Ö½ÚÊý×飩»òÓû§¶¨ÒåÀàÐ͵Ľṹ¡£Ã¿¸öÁ÷ÓÉÒ»¸öΩһ
ID ¶¨Ò壬Õâ¸ö ID ¿ÉÓÃÓÚ¹¹½¨Êý¾ÝÔ´ºÍ½ÓÊÕÆ÷ (sink) µÄÍØÆË½á¹¹¡£Á÷ÆðÔ´ÓÚÅç×죬Åç×콫Êý¾Ý´ÓÍⲿÀ´Ô´Á÷Èë
Storm ÍØÆË½á¹¹ÖС£
ͼ 1. Ò»¸öÆÕͨµÄ Storm ÍØÆË½á¹¹µÄ¸ÅÄîÐԼܹ¹
Ò»¸öÆÕͨµÄ Storm ÍØÆË½á¹¹µÄ¸ÅÄîÐԼܹ¹Í¼
½ÓÊÕÆ÷£¨»òÌṩת»»µÄʵÌ壩³ÆÎªÂÝ˨¡£ÂÝ˨ʵÏÖÁËÒ»¸öÁ÷Éϵĵ¥Ò»×ª»»ºÍÒ»¸ö Storm ÍØÆË½á¹¹ÖеÄËùÓд¦Àí¡£ÂÝ˨¼È¿ÉʵÏÖ
MapReduce Ö®ÀàµÄ´«Í³¹¦ÄÜ£¬Ò²¿ÉʵÏÖ¸ü¸´ÔӵIJÙ×÷£¨µ¥²½¹¦ÄÜ£©£¬±ÈÈç¹ýÂË¡¢¾ÛºÏ»òÓëÊý¾Ý¿âµÈÍⲿʵÌåͨÐÅ¡£µäÐ͵Ä
Storm ÍØÆË½á¹¹»áʵÏÖ¶à¸öת»»£¬Òò´ËÐèÒª¶à¸ö¾ßÓжÀÁ¢Ôª×éÁ÷µÄÂÝ˨¡£Åç×ìºÍÂÝ˨¶¼ÊµÏÖΪ Linux?
ϵͳÖеÄÒ»¸ö»ò¶à¸öÈÎÎñ¡£
¿ÉʹÓà Storm Ϊ´ÊƵÇáËɵØÊµÏÖ MapReduce ¹¦ÄÜ¡£Èç ͼ
2 ÖÐËùʾ£¬Åç×ìÉú³ÉÎı¾Êý¾ÝÁ÷£¬ÂÝ˨ʵÏÖ Map ¹¦ÄÜ£¨ÁîÅÆ»¯Ò»¸öÁ÷µÄ¸÷¸öµ¥´Ê£©¡£À´×Ô ¡°map¡± ÂÝ˨µÄÁ÷È»ºóÁ÷ÈëÒ»¸öʵÏÖ
Reduce ¹¦ÄܵÄÂÝ˨ÖУ¨ÒÔ½«µ¥´Ê¾ÛºÏµ½×ÜÊýÖУ©¡£

ͼ 2. MapReduce ¹¦Äܵļòµ¥
Storm ÍØÆË½á¹¹
MapReduce ¹¦Äܵļòµ¥ Storm ÍØÆË½á¹¹Í¼
Çë×¢Ò⣬ÂÝ˨¿É½«Êý¾Ý´«Êäµ½¶à¸öÂÝ˨£¬Ò²¿É½ÓÊÜÀ´×Ô¶à¸öÀ´Ô´µÄÊý¾Ý¡£Storm ÓµÓÐÁ÷·Ö×é µÄ¸ÅÄÁ÷·Ö×éʵÏÖÁË»ìÅÅ
(shuffling)£¨Ëæ»úµ«¾ùµÈµØ½«Ôª×é·Ö·¢µ½ÂÝ˨£©»ò×ֶηÖ×飨¸ù¾ÝÁ÷µÄ×ֶνøÐÐÁ÷·ÖÇø£©¡£»¹´æÔÚÆäËûÁ÷·Ö×飬°üÀ¨Éú³ÉÕßʹÓÃ×Ô¼ºµÄÄÚ²¿Â߼·ÓÉÔª×éµÄÄÜÁ¦¡£
µ«ÊÇ£¬Storm ¼Ü¹¹ÖÐÒ»¸ö×îÓÐȤµÄÌØÐÔÊÇÓб£ÕϵÄÏûÏ¢´¦Àí¡£Storm ¿É±£Ö¤Ò»¸öÅç×ì·¢Éä³öµÄÿ¸öÔª×é¶¼»á´¦Àí£»Èç¹ûËüÔÚ³¬Ê±Ê±¼äÄÚûÓд¦Àí£¬Storm
»á´Ó¸ÃÅç×ìÖØ·Å¸ÃÔª×é¡£´Ë¹¦ÄÜÐèҪһЩ´ÏÃ÷µÄ¼¼ÇÉÀ´ÔÚÍØÆË½á¹¹Öиú×ÙÔªËØ£¬Ò²ÊÇ Storm µÄÖØÒªµÄ¸½¼Ó¼ÛÖµÖ®Ò»¡£
³ýÁËÖ§³Ö¿É¿¿µÄÏûÏ¢´«ËÍÍ⣬Storm »¹Ê¹Óà ZeroMQ ×î´ó»¯ÏûÏ¢´«ËÍÐÔÄÜ£¨É¾³ýÖмäÅŶӣ¬ÊµÏÖÏûÏ¢ÔÚÈÎÎñ¼äµÄÖ±½Ó´«ËÍ£©¡£ZeroMQ
ºÏ²¢ÁËÓµÈû¼ì²â²¢µ÷ÕûÁËËüµÄͨÐÅ£¬ÒÔÓÅ»¯¿ÉÓõĴø¿í¡£
Storm ʾÀýÑÝʾ
ÏÖÔÚÈÃÎÒÃÇͨ¹ýʵÏÖÒ»¸ö¼òµ¥µÄ MapReduce ÍØÆË½á¹¹µÄ´úÂ루²Î¼û Çåµ¥ 1£©£¬¿´Ò»Ï Storm
ʾÀý¡£Õâ¸öʾÀýʹÓÃÁËÀ´×Ô Nathan µÄ Storm ÈëÃŹ¤¾ß°ü£¨¿É´Ó GitHub »ñÈ¡£©£¨²Î¼û ²Î¿¼×ÊÁÏ
»ñÈ¡Á´½Ó£©µÄÇÉÃîÉè¼ÆµÄ×ÖÊýʾÀý¡£´ËʾÀýÑÝʾÁË Í¼ 2 ÖÐËùʾµÄÍØÆË½á¹¹£¬ËüʵÏÖÁËÒ»¸ö°üº¬Ò»¸öÂÝ˨µÄ map
ת»»ºÍ°üº¬Ò»¸öÂÝ˨µÄ reduce ת»»¡£
Çåµ¥ 1. Ϊͼ 2 ÖÐµÄ Storm ¹¹½¨Ò»¸öÍØÆË½á¹¹
01 TopologyBuilder builder = new TopologyBuilder(); 02 03 builder.setSpout("spout", new RandomSentenceSpout(), 5); 04 05 builder.setBolt("map", new SplitSentence(), 4) 06 .shuffleGrouping("spout"); 07 08 builder.setBolt("reduce", new WordCount(), 8) 09 .fieldsGrouping("map", new Fields("word")); 10 11 Config conf = new Config(); 12 conf.setDebug(true); 13 14 LocalCluster cluster = new LocalCluster(); 15 cluster.submitTopology("word-count", conf, builder.createTopology()); 16 17 Thread.sleep(10000); 18 19 cluster.shutdown(); |
Çåµ¥ 1£¨Ìí¼ÓÁËÐкÅÒÔ¹©ÒýÓã©Ê×ÏÈʹÓà TopologyBuilder
ÉùÃ÷Ò»¸öÐÂÍØÆË½á¹¹¡£½ÓÏÂÀ´ÔÚµÚ 3 ÐУ¬¶¨ÒåÁËÒ»¸öÅç×죨ÃûΪ spout£©£¬¸ÃÅç×ì°üº¬Ò»¸ö RandomSentenceSpout¡£RandomSentenceSpout
ÀࣨҲ¾ÍÊÇ nextTuple ·½·¨£©·¢³ö 5 ¸öËæ»ú¾ä×ӵįäÖÐÒ»¸ö×÷ΪËüµÄÊý¾Ý
setSpout ·½·¨Ä©Î²µÄ 5 ²ÎÊýÊÇÒ»¸ö²¢ÐÐÐÔÌáʾ£¨»òҪΪ´Ë»î¶¯´´½¨µÄÈÎÎñÊý£©¡£
ÔÚµÚ 5 ºÍ 6 ÐС£ÎÒ¶¨ÒåÁ˵ÚÒ»¸öÂÝ˨£¨»òË㷨ת»»ÊµÌ壩£¬ÔÚ±¾ÀýÖÐΪ
map£¨»ò split£©ÂÝ˨¡£Õâ¸öÂÝ˨ʹÓà SplitSentence ÁîÅÆ»¯ÊäÈëÁ÷²¢½«Æä×÷ΪÊä³öµÄ¸÷¸öµ¥´Ê·¢³ö¡£Çë×¢Ò⣬µÚ
6 ÐÐʹÓÃÁË shuffleGrouping£¬Ëü¶¨ÒåÁ˶ԴËÂÝ˨£¨ÔÚ±¾ÀýÖÐΪ ¡°spout¡±£©µÄÊäÈë¶©ÔÄ£¬»¹½«Á÷·Ö×鶨ÒåΪ»ìÅÅ¡£ÕâÖÖ»ìÅÅ·Ö×éÒâζ×ÅÀ´×ÔÅç×ìµÄÊäÈ뽫»ìÅÅ
»òËæ»ú·Ö·¢¸ø´ËÂÝ˨ÖеÄÈÎÎñ£¨¸ÃÂÝ˨ÒÑÌáʾ¾ßÓÐ 4 ÈÎÎñ²¢ÐÐÐÔ£©¡£
ÔÚµÚ 8 ºÍ 9 ÐУ¬ÎÒ¶¨ÒåÁË×îºóÒ»¸öÂÝ˨£¬Õâ¸öÂÝ˨ʵ¼ÊÉÏÓÃÓÚ reduce ÔªËØ£¬Ê¹ÓøÃÔªËØµÄÊäÈë×÷Ϊ
map ÂÝ˨¡£WordCount ·½·¨ÊµÏÖÁ˱ØÒªµÄ×ÖÊýͳ¼ÆÐÐΪ£¨½«ÏàËÆµÄµ¥´Ê·Ö×éµ½Ò»Æð£¬ÒÔά»¤×ÜÊý£©£¬µ«²»ÊÇ»ìÅŵģ¬ËùÒÔËüµÄÊä³öÊÇÒ»Öµġ£Èç¹ûÓжà¸öÈÎÎñÔÚʵÏÖ
reduce ÐÐΪ£¬ÄÇôÄú×îÖÕ»áµÃµ½·Ö¶ÎµÄ¼ÆÊý£¬¶ø²»ÊÇ×ÜÊý¡£
µÚ 11 ºÍ 12 Ðд´½¨ºÍ¶¨ÒåÁËÒ»¸öÅäÖöÔÏ󲢯ôÓÃÁË Debug ģʽ¡£Config Àà°üº¬´óÁ¿ÅäÖÿÉÄÜÐÔ£¨²Î¼û
²Î¿¼×ÊÁÏ£¬»ñÈ¡ÓÐ¹Ø Storm ÀàÊ÷µÄ¸ü¶àÐÅÏ¢µÄÁ´½Ó£©¡£
µÚ 14 ºÍ 15 Ðд´½¨Á˱¾µØ¼¯Èº£¨ÔÚ±¾ÀýÖУ¬ÓÃÓÚ¶¨Òå±¾µØÄ£Ê½µÄÓÃ;£©¡£ÎÒ¶¨ÒåÁËÎҵı¾µØ¼¯Èº¡¢ÅäÖöÔÏóºÍÍØÆË½á¹¹µÄÃû³Æ£¨¿Éͨ¹ý
builder ÀàµÄ createTopology ÔªËØ»ñÈ¡£©¡£
×îºó£¬ÔÚµÚ 17 ÐУ¬Storm ÐÝÃßÒ»¶Îʱ¼ä£¬È»ºóÔÚµÚ 19 Ðйرռ¯Èº¡£Çë¼Çס£¬Storm ÊÇÒ»¸ö³ÖÐøÔËÐеIJÙ×÷ϵͳ£¬ËùÒÔÈÎÎñ¿É´æÔÚÏ൱³¤Ê±¼ä£¬²»¶Ï´¦ÀíËüÃǶ©ÔĵÄÁ÷ÉϵÄÐÂÔª×é¡£
Äú¿ÉÔÚ Storm ÈëÃŹ¤¾ß°üÖÐÁ˽âÕâ¸ö·Ç³£¼òµ¥µÄʵÏֵĸü¶àÐÅÏ¢£¬°üÀ¨Åç×ìºÍÂÝ˨µÄϸ½Ú¡£
ʹÓà Storm
Nathan Marz ±àдÁËÒ»×é¼òµ¥Ò×¶®µÄÎĵµ£¬Ïêϸ½éÉÜÁËÈçºÎ°²×° Storm À´Ö´Ðм¯ÈºÄ£Ê½ºÍ±¾µØÄ£Ê½µÄ²Ù×÷¡£±¾µØÄ£Ê½ÎÞÐèÒ»¸öÅÓ´óµÄ½Úµã¼¯Èº£¬¼´¿ÉʹÓÃ
Storm¡£Èç¹ûÐèÒªÔÚÒ»¸ö¼¯ÈºÖÐʹÓà Storm µ«È±·¦½Úµã£¬Ò²¿ÉÔÚ Amazon Elastic Compute
Cloud (EC2) ÖÐʵÏÖÒ»¸ö Storm ¼¯Èº¡£Çë²Î¼û ²Î¿¼×ÊÁÏ »ñȡÿ¸ö Storm ģʽ£¨±¾µØ¡¢¼¯ÈººÍ
Amazon EC2£©µÄ²Î¿¼ÐÅÏ¢¡£
ÆäËû¿ªÔ´µÄ´óÊý¾Ý½â¾ö·½°¸
×Ô Google ÔÚ 2004 ÄêÍÆ³ö MapReduce ·¶Ê½ÒÔÀ´£¬Òѵ®ÉúÁ˶à¸öʹÓÃÔʼ MapReduce
·¶Ê½£¨»òÓµÓи÷¶Ê½µÄÖÊÁ¿£©µÄ½â¾ö·½°¸¡£Google ¶Ô MapReduce µÄ×î³õÓ¦ÓÃÊǽ¨Á¢ÍòÎ¬ÍøµÄË÷Òý¡£¾¡¹Ü´ËÓ¦ÓóÌÐòÈÔÈ»ºÜÁ÷ÐУ¬µ«Õâ¸ö¼òµ¥Ä£Ðͽâ¾öµÄÎÊÌâÒ²ÕýÔÚÔö¶à¡£
±í 1 ÌṩÁËÒ»¸ö¿ÉÓÿªÔ´´óÊý¾Ý½â¾ö·½°¸µÄÁÐ±í£¬°üÀ¨´«Í³µÄÅú´¦ÀíºÍÁ÷ʽ´¦ÀíÓ¦ÓóÌÐò¡£ÔÚ½« Storm ÒýÈ뿪Դ֮ǰ½«½üÒ»ÄêµÄʱ¼äÀYahoo!
µÄ S4 ·Ö²¼Ê½Á÷¼ÆËãÆ½Ì¨ÒÑÏò Apache ¿ªÔ´¡£S4 ÓÚ 2010 Äê 10 Ô·¢²¼£¬ËüÌṩÁËÒ»¸ö¸ßÐÔÄܼÆËã
(HPC) ƽ̨£¬ÏòÓ¦ÓóÌÐò¿ª·¢ÈËÔ±Òþ²ØÁ˲¢Ðд¦ÀíµÄ¸´ÔÓÐÔ¡£S4 ʵÏÖÁËÒ»¸ö¿ÉÀ©Õ¹µÄ¡¢·ÖÉ¢»¯µÄ¼¯Èº¼Ü¹¹£¬²¢ÄÉÈëÁ˲¿·ÖÈÝ´í¹¦ÄÜ¡£
±í 1. ¿ªÔ´´óÊý¾Ý½â¾ö·½°¸

¸ü¶àÐÅÏ¢
¾¡¹Ü Hadoop ÈÔÈ»ÊÇÐû´«×î¶àµÄ´óÊý¾Ý·ÖÎö½â¾ö·½°¸£¬µ«ÈÔ¿ÉÄÜ´æÔÚÐí¶àÆäËûµÄ½â¾ö·½°¸£¬Ã¿ÖÖ½â¾ö·½°¸¶¼¾ßÓв»Í¬µÄÌØÕ÷¡£ÎÒÔÚ¹ýÈ¥µÄÎÄÕÂÖÐ̽ÌÖÁË
Spark£¬ËüÄÉÈëÁËÊý¾Ý¼¯µÄÄÚ´æÖд¦Àí¹¦ÄÜ£¨Äܹ»ÖØÐ¹¹½¨¶ªÊ§µÄÊý¾Ý£©¡£µ« Hadoop ºÍ Spark
¶¼×¨×¢ÓÚ´óÊý¾Ý¼¯µÄÅú´¦Àí¡£Storm ÌṩÁËÒ»¸öеĴóÊý¾Ý·ÖÎöÄ£ÐÍ£¬¶øÇÒÒòΪËü×î½ü±»¿ªÔ´£¬ËùÒÔÒ²ÒýÆð¹ã·ºµÄ¹Ø×¢¡£
Óë Hadoop ²»Í¬£¬Storm ÊÇÒ»¸ö¼ÆËãϵͳ£¬ËüûÓаüÀ¨Èκδ洢¸ÅÄî¡£Õâ¾ÍʹµÃ Storm Äܹ»ÓÃÔÚ¸÷ÖÖ¸÷ÑùµÄÉÏÏÂÎÄÖУ¬ÎÞÂÛÊý¾ÝÊÇ´ÓÒ»¸ö·Ç´«Í³À´Ô´¶¯Ì¬´«È룬»¹ÊÇ´æ´¢ÔÚÊý¾Ý¿âµÈ´æ´¢ÏµÍ³ÖУ¨»òÕßÓÉÒ»¸ö¿ØÖÆÆ÷ÓÃÓÚ¶ÔÆäËûһЩÉ豸£¨±ÈÈçÒ»¸ö½»Ò×ϵͳ£©½øÐÐʵʱ²Ù×÷£©¶¼ÊÇÈç´Ë¡£
Çë²Î¼û ²Î¿¼×ÊÁÏ »ñÈ¡ÓÐ¹Ø Storm µÄ¸ü¶àÐÅÏ¢µÄÁ´½Ó£¬Á˽âÈçºÎÈÃÒ»¸ö¼¯ÈºÕý³£ÔËÐУ¬ÒÔ¼°ÆäËû´óÊý¾Ý·ÖÎö½â¾ö·½°¸£¨°üÀ¨Åú´¦ÀíºÍÁ÷ʽ´¦Àí£©¡£
|