±»ÓþΪ×î»ðµÄÁ÷ʽ´¦Àí¿ò¼Ü£¬ÃÖ²¹ÁËHadoopµÄÖÚ¶àȱµã£¬Storm¾³£ÓÃÓÚÔÚʵʱ·ÖÎö¡¢ÔÚÏß»úÆ÷ѧϰ¡¢³ÖÐø¼ÆËã¡¢·Ö²¼Ê½Ô¶³Ìµ÷ÓúÍETLµÈÁìÓò¡£±¾ÎĽéÉܵÄÊÇ»ùÓÚStormµÄNginx logʵʱ¼à¿ØÏµÍ³¡£
HadoopµÄȱµãÒ²ºÍËüµÄÓŵãͬÑùÏÊÃ÷——ÑÓ³Ù´ó£¬ÏìÓ¦»ºÂý£¬ÔËά¸´ÔÓ¡£±»È˹ãÊÜÚ¸²¡£¬µ«ÊÇ ÓÐÐèÇó¾ÍÓд´Ô죬ÔÚHadoop»ù±¾µì¶¨ÁË´óÊý¾Ý°ÔÖ÷µØÎ»µÄʱºò£¬ºÜ¶àµÄ¿ªÔ´ÏîÄ¿¶¼ÊÇÒÔÃÖ²¹HadoopµÄʵʱÐÔΪĿ±ê¶ø±»´´Ôì³öÀ´£¬StormÕýÊÇÔÚÕâ¸öʱºòºá¿Õ³öÊÀ£¬StormÊÇÒ»¸öÃâ·Ñ¿ªÔ´¡¢·Ö²¼Ê½¡¢¸ßÈÝ´íµÄʵʱ¼ÆËãϵͳ¡£StormÁî³ÖÐø²»¶ÏµÄÁ÷¼ÆËã±äµÃÈÝÒ×£¬ÃÖ²¹ÁËHadoopÅú´¦ÀíËù²»ÄÜÂú×ãµÄʵʱҪÇó¡£
ÒÔÏÂΪÔÎÄ£º
±³¾°
UAE£¨UC App Engine£©ÊÇÒ»¸öUCÄÚ²¿µÄPaaSƽ̨£¬×ÜÌå¼Ü¹¹ÓеãÀàËÆCloudFoundry£¬°üÀ¨£º
- ¿ìËÙ²¿Êð£ºÖ§³ÖNode.js¡¢Play!¡¢PHPµÈ¿ò¼Ü
- ÐÅϢ͸Ã÷£ºÔËά¹ý³Ì¡¢ÏµÍ³×´Ì¬¡¢ÒµÎñ×´¿ö
- »Ò¶ÈÊÔ´í£ºIP»Ò¶È¡¢µØÓò»Ò¶È
- »ù´¡·þÎñ£ºkey-value´æ´¢¡¢MySQL¸ß¿ÉÓá¢Í¼Æ¬Æ½Ì¨µÈ
ÕâÀïËü²»ÊÇÖ÷½Ç£¬²»×÷Ïêϸ½éÉÜ¡£
ÓÐÊý°Ù¸öWebÓ¦ÓÃÔËÐÐÔÚUAEÉÏ£¬ËùÓеÄÇëÇ󶼻ᾹýUAEµÄ·ÓÉ£¬Ã¿ÌìµÄNginx access log´óСÊÇTB¼¶£¬ÈçºÎʵʱ¼à¿ØÃ¿¸öÒµÎñµÄ·ÃÎÊÇ÷ÊÆ¡¢¹ã¸æÊý¾Ý¡¢Ò³ÃæºÄʱ¡¢·ÃÎÊÖÊÁ¿¡¢×Ô¶¨Ò屨±íºÍÒì³£±¨¾¯£¿
Hadoop¿ÉÒÔÂú×ãͳ¼ÆÐèÇ󣬵«Ãë¼¶µÄʵʱÐÔ²»ÄÜÂú×㣻ÓÃSpark StreamingÓÖÓÐЩ´ó²ÄСÓã¬Í¬Ê±ÎÒÃÇҲûÓÐSparkµÄ¹¤³Ì¾Ñ飻×Ôд·Ö²¼Ê½³ÌÐòµ÷¶È±È½ÏÂé·³²¢ÇÒÒª¿¼ÂÇÀ©Õ¹¡¢ÏûÏ¢Á÷¶¯£»
×îºóÎÒÃǵļ¼ÊõÑ¡ÐͶ¨ÎªStorm£ºÏà¶ÔÇáÁ¿¡¢Áé»î¡¢ÏûÏ¢´«µÝ·½±ã¡¢À©Õ¹Áé»î¡£
ÁíÍ⣬¶øÓÉÓÚUCµÄ¸÷µØ¼¯Èº±È½Ï¶à£¬¿ç¼¯ÈºÈÕÖ¾´«ÊäÒ²»áÊÇÆäÖÐÒ»¸ö±È½Ï´óµÄÎÊÌâ¡£
¼¼Êõ×¼±¸
»ùÊý¼ÆÊý£¨Cardinality Counting£©
ÔÚ´óÊý¾Ý·Ö²¼Ê½¼ÆËãµÄʱºò£¬PV£¨Page View£©¿ÉÒԺܷ½±ãÏà¼ÓºÏ²¢£¬µ«UV£¨Unique Visitor£©²»ÄÜ¡£
·Ö²¼Ê½¼ÆËãµÄÇé¿öÏ£¬¼¸°Ù¸öÒµÎñ¡¢ÊýÊ®ÍòURLͬʱͳ¼ÆUV£¬Èç¹û»¹Òª·Öʱ¶Îͳ¼Æ(ÿ·ÖÖÓ/ÿ5·ÖÖӺϲ¢/ÿСʱºÏ²¢/ÿÌìºÏ²¢)£¬ÄÚ´æµÄÏûºÄÊDz»¿É½ÓÊܵġ£
Õâ¸öʱºò£¬¸ÅÂʵÄÁ¦Á¿¾ÍÌåÏÖÁ˳öÀ´¡£ÎÒÃÇÔÚProbabilistic Data Structures for Web Analytics and Data Mining¿ÉÒÔ¿´µ½£¬¾«È·µÄ¹þÏ£±íͳ¼ÆUVºÍ»ùÊý¼ÆÊýµÄÄÚ´æ±È½Ï£¬²¢²»ÊÇÒ»¸öÊýÁ¿¼¶µÄ¡£»ùÊý¼ÆÊý¿ÉÒÔÈÃÄãʵÏÖUVµÄºÏ²¢£¬ÄÚ´æÏûºÄ¼«Ð¡£¬²¢ÇÒÎó²îÍêÈ«ÔڿɽÓÊÜ·¶Î§ÄÚ¡£
¿ÉÒÔÏÈÁ˽âLogLog Counting£¬Àí½â¾ùÔȹþÏ£·½·¨µÄǰÌáÏ£¬´Ö²Ú¹À¼ÆµÄÀ´Óɼ´¿É£¬ºóÃæµÄ¹«Ê½ÍƵ¼¿ÉÒÔÌø¹ý¡£
¾ßÌåËã·¨ÊÇAdaptive Counting£¬Ê¹ÓõļÆËã¿âÊÇstream-2.7.0.jar¡£
ʵʱÈÕÖ¾´«Êä
ʵʱ¼ÆËã±ØÐëÒÀÀµÓÚÃë¼¶µÄʵʱÈÕÖ¾´«Ê䣬¸½¼ÓµÄºÃ´¦ÊÇ¿ÉÒÔ±ÜÃâ½×¶ÎÐÔ´«ÊäÒýÆðµÄÍøÂçÓµ¶Â¡£
ʵʱÈÕÖ¾´«ÊäÊÇUAEÒÑÓеÄÇáÁ¿¼¶µÄÈÕÖ¾´«Ê乤¾ß£¬³ÉÊìÎȶ¨£¬Ö±½ÓÄÃÀ´ÓÃÁË£¬°üÀ¨¿Í»§¶Ë£¨mca£©ºÍ·þÎñÆ÷¶Ë£¨mcs£©¡£
¿Í»§¶Ë¼àÌý¸÷¸ö¼¯ÈºµÄÈÕÖ¾ÎļþµÄ±ä»¯£¬´«Êäµ½Ö¸¶¨µÄStorm¼¯ÈºµÄ¸÷̨»úÆ÷ÉÏ£¬´æ´¢ÎªÆÕͨÈÕÖ¾Îļþ¡£
ÎÒÃǵ÷ÕûÁË´«Êä²ßÂÔ£¬Ê¹µÃÿ̨Storm»úÆ÷ÉϵÄÈÕÖ¾Îļþ´óС´óÖÂÏàͬ£¬ËùÒÔSpoutÖ»¶ÁÈ¡±¾»úÊý¾Ý¼´¿É¡£
Êý¾ÝÔ´¶ÓÁÐ
ÎÒÃDz¢Ã»ÓÐÓÃStorm³£ÓõĶÓÁУ¬ÈçKafka¡¢MetaQµÈ£¬Ö÷ÒªÊÇÌ«ÖØÁË…
fqueueÊÇÒ»¸öÇáÁ¿µÄmemcachedÐÒé¶ÓÁУ¬°ÑÆÕͨµÄÈÕÖ¾ÎļþתΪmemcachedµÄ·þÎñ£¬ÕâÑùStormµÄSpout¾Í¿ÉÒÔÖ±½ÓÒÔmemcachedÐÒéÖðÌõ¶ÁÈ¡¡£
Õâ¸öÊý¾ÝÔ´±È½Ï¼òµ¥£¬Ëü²»Ö§³ÖÖØÐ·¢É䣨replay£©£¬Ò»Ìõ¼Ç¼±»È¡³öÖ®ºó¾Í²»¸´´æÔÚ£¬Èç¹ûij¸ötuple´¦Àíʧ°Ü»ò³¬Ê±£¬ÔòÊý¾Ý¶ªÊ§¡£
Ëü±È½ÏÇáÁ¿£¬»ùÓÚ±¾µØÎļþ¶ÁÈ¡£¬×öÁËÒ»²ã±¡µÄ»º´æ£¬²¢²»ÊÇÒ»¸ö´¿ÄÚ´æµÄ¶ÓÁУ¬ËüµÄÐÔÄÜÆ¿¾±ÔÚÓÚ´ÅÅÌIO£¬Ã¿ÃëÍÌÍÂÁ¿¸ú´ÅÅ̶ÁÈ¡ËÙ¶ÈÊÇÒ»Öµġ£µ«¶ÔÓÚÎÒÃÇÕâ¸öϵͳÒѾ×ã¹»£¬ºóÐøÓмƻ®¸Ä³É´¿ÄÚ´æ¶ÓÁС£
¼Ü¹¹
ͨ¹ýÉÏÃæµÄ¼¼Êõ´¢±¸£¬ÎÒÃÇ¿ÉÒÔÔÚÓû§·ÃÎʼ¸Ãëºó¾ÍÄÜ»ñÈ¡µ½Óû§µÄÈÕÖ¾¡£

ÕûÌå¼Ü¹¹Ò²±È½Ï¼òµ¥£¬Ö®ËùÒÔÓÐÁ½ÖÖ¼ÆËãbolt£¬ÊÇ»ùÓÚ¼ÆËãµÄ¾ùÔÈ·Ö²¼¿¼ÂÇ¡£ÒµÎñµÄÁ¿Ïà²î¼«´ó£¬Èç¹û½ö°´ÒµÎñIDÈ¥½øÐÐfieldsGrouping£¬¼ÆËã×ÊÔ´Ò²»á²»¾ùºâ¡£
- spout½«Ã¿ÌõÔʼÈÕÖ¾±ê×¼»¯£¬°´ÕÕURL·Ö×飨fieldsGrouping£¬Îª±£³Öÿ̨·þÎñÆ÷¼ÆËãÁ¿µÄ¾ùÔÈ£©£¬ÅÉ·¢µ½¶ÔÓ¦µÄstat_boltÉÏ£»
- stat_boltÊÇÖ÷ÒªµÄ¼ÆËãBolt£¬½«Ã¿¸öÒµÎñµÄURLÊáÀí²¢¼ÆË㣬ÈçPV¡¢UV¡¢×ÜÏìӦʱ¼ä¡¢ºó¶ËÏìӦʱ¼ä¡¢HTTP״̬Âëͳ¼Æ¡¢URLÅÅÐò¡¢Á÷Á¿Í³¼ÆµÈ£»
- merge_bolt½«Ã¿¸öÒµÎñµÄÊý¾ÝºÏ²¢£¬ÈçPVÊý£¬UVÊýµÈ¡£µ±È»£¬ÕâÀïµÄUVºÏ²¢¾ÍÓõ½ÁËÇ°ÃæÌáµ½µÄ»ùÊý¼ÆÊý£»
- ×ÔдÁËÒ»¸ö¼òµ¥µÄCoordinatorе÷À࣬streamId±ê¼ÇΪ”coordinator”£¬×÷ÓãºÊ±¼äе÷£¨ÇзÖbatch£©¡¢¼ì²éÈÎÎñÍê³É¶È¡¢³¬Ê±´¦Àí¡£ÔÀí¸úStorm×Ô´øµÄTransactional TopolgoyÀàËÆ¡£
- ʵÏÖÒ»¸öSchedulerͨ¹ýAPI»ñÈ¡²ÎÊý£¬¶¯Ì¬µ÷ÕûSpout¡¢BoltÔÚ¸÷·þÎñÆ÷µÄ·Ö²¼£¬ÒÔ±ãÁé»î·ÖÅä·þÎñÆ÷×ÊÔ´¡£
- Ö§³Öƽ»¬Éý¼¶Topology£ºµ±Ò»¸öTopologyÉý¼¶µÄʱºò£¬ÐÂTopologyºÍ¾ÉTopology½²Í¬Ê±ÔËÐУ¬Ðµ÷Çл»Ê±¼ä£¬µ±ÐµÄTopology½Ó¹ÜÁËfqueueÖ®ºó£¬¹ýºÓ²ðÇÅ£¬É±ËÀ¾ÉµÄTopology¡£
×¢Òâµã£º
- Storm»úÆ÷¾¡Á¿²¿ÊðÔÚͬһ¸ö»ú¹ñÄÚ£¬²»Ó°Ï켯ȺÄڵĴø¿í£»
- ÎÒÃǵÄNginxÈÕÖ¾Êǰ´Ð¡Ê±Çзֵģ¬Èç¹ûÇзֵÄʱ¼ä²»×¼È·£¬ÔÚ00·ÖµÄʱºò£¬¾Í¿ÉÒÔ¿´µ½Ã÷ÏÔµÄÊý¾Ý²¨¶¯£¬ËùÒÔ£¬¾¡Á¿Ê¹ÓÃNginx moduleÈ¥ÇÐÈÕÖ¾£¬ÓÃcrontab·¢ÐźÅÇлáÓÐÑÓ³Ù¡£ÇÐÈÕÖ¾ÕâÖÖ10Ãë¼¶µÄÑÓ³Ù£¬ÔÚ´ó³ß¶ÈµÄͳ¼ÆÉÏûÓÐÎÊÌ⣬Ãë¼¶µÄͳ¼ÆÊ±²¨¶¯È´ºÜÃ÷ÏÔ£»
- ¶Ñ̫С»áµ¼ÖÂwoker±»Ç¿ÖÆÉ±ËÀ£¬ËùÒÔÒªÅäÖúÃ-Xmx²ÎÊý£»
×Ô¶¨ÒåÏî
- ¾²Ì¬×ÊÔ´£º¾²Ì¬×ÊÔ´¹ýÂËÑ¡Ïͨ¹ýContent-Type»òºó×ºÉ¸Ñ¡ÌØ¶¨µÄ¾²Ì¬×ÊÔ´¡£
- ×ÊÔ´ºÏ²¢£ºURLºÏ²¢£¬±ÈÈçRESTfulµÄ×ÊÔ´£¬ºÏ²¢ºó·½±ãչʾ£»
- ά¶ÈÓëÖ¸±ê£ºÍ¨¹ýANTLR v3×öÓï·¨¡¢´Ê·¨·ÖÎö£¬Íê³É×Ô¶¨Òåά¶ÈºÍÖ¸±ê£¬²¢ÇÒºóÐøµÄ±¨¾¯Ò²Ö§³Ö×Ô¶¨Òå±í´ïʽ¡£
ÆäËû
ÎÒÃÇ»¹ÓÃÆäËû·½Ê½ÊµÏÖÁË£º
- ÒµÎñµÄ½ø³Ì¼¶£¨CPU/MEM/¶Ë¿Ú£©¼à¿Ø
- ÒµÎñÒÀÀµµÄ·þÎñ£¬ÈçMySQL/memcachedµÈµÄ¼à¿Ø
- ·þÎñÆ÷µÄ´ÅÅÌ/ÄÚ´æ/IO/Äں˲ÎÊý/ÓïÑÔ»·¾³/»·¾³±äÁ¿/±àÒë»·¾³µÈ¼à¿Ø
|