ááá±á¬áá»ááºááẠááá·áºá¡á¬áž á¡áá»áááºááŸáá·áºáááŒá±ážáá® á¡áá»áá¯ážáá»áá¯ážáá±á¬ ááŒá áºáááºáá»á¬ážááᯠá¡á¬ááá¶áá»ááºááŸááá±á¬ áá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááᯠá á¯á ááºážááá¯ááºá á±áá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá Storm ááẠáá±áá¬á á®ážááŒá±á¬ááºážáá»á¬ážááᯠá¡áá»áááºááŸáá·áºáááŒá±ážáá® ááœá²ááŒááºážá áááºááŒá¬áááºá á ááºáááºáá°ááŒááºážáá¯ááºáááºážáá±á¬ááºáá¬áá»á¬ážááᯠáá¯ááºáá±á¬ááºáááºá á ááºáááºáááŒááºááœááºáá»ááºááŒááºážááᯠá á¯á ááºážááŒááºážá RPCá ETL á áááºááá¯á·ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá á áá áºááẠá¡á á¯á¡áá±ážááŒá¯áá¯ááºááŒááºážá á¡ááŸá¬ážá¡ááœááºážáá¶ááá¯ááºáá±á¬ ááœá²á·á ááºážááŸá¯áá¯á¶á á¶áá»á¬ážáááºáá®ážááŒááºážá á¡á¬ááá¶áá»ááºááŸááá±á¬ áá±áá¬áá¯ááºáá±á¬ááºááŒááºážáá¯ááºááᯠáá¶á·ááá¯ážáá±ážááŒá®áž ááŒáá·áºáá¬ážáá±á¬á áœááºážáá±á¬ááºáááºááŸáááŒá®áž á¡á á¯á¡áá±ážáá áºáá¯ááœáẠáá áºá áá¹ááá·áºáá»áŸáẠáá±á¬ááºážááá¯áá»ááºáá±á«ááºáž áá áºáááºážáá»á±á¬áºááᯠáá¯ááºáá±á¬ááºááẠáá¯á¶áá±á¬ááºáá«áááºá
á¡áá»áá¯ážáá»áá¯ážáá±á¬ áááºážá á®áá¯ááºáá±á¬ááºááŒááºážá áá áºáá»á¬ážááŸáá·áº áá±áá¬áá±á·á áºáááºážááá¬áá»á¬ážááŒáá·áº áá±á«ááºážá ááºááŸá¯ááᯠáá¶á·ááá¯ážáá¬ážáááºá Storm áááá¯áá¬ááœáẠááœááºáá»ááºááŸá¯á¡ááá·áºáá»á¬ážááŒá¬ážááœáẠááá¯ááºážááŒá¬ážááá¯ááºá áœááºážááŸááá±á¬ ááááºáááᯠááŸá¯ááºááœá±ážáá±á¬ áááá¯áááºáá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áᬠá¡áááºáááŒáẠááœááºážáá¶áá¬ážáá±á¬ áá±áá¬á á®ážááŒá±á¬ááºážáá»á¬ážááᯠáááºáá¶ááŒááºážááŸáá·áº á á®áá¶áá±á¬ááºááœááºááŒááºážááá¯á· áá«áááºáá«áááºá áá°ááá°áá±á¬ááºááᯠáá®ááœááºáá²á·ááá·áº áá¯áá¹ááá®ááŒá áºáá±á¬ BackType ááᯠTwitter á០áááºáá°ááŒá®ážáá±á¬áẠá¡ááá¯áá«ááá±á¬áá»ááºááᯠApache á¡ááá¯ááºážá¡ááá¯ááºážáᶠááœáŸá²ááŒá±á¬ááºážáá±ážá¡ááºáá²á·áááºá áááºááœá±á·ááœááºá microblogs áá»á¬ážááŸá á¡ááŒá áºá¡áá»ááºáá»á¬ážá áá±á¬ááºááŒááºáááºááŸá¯ááᯠááœá²ááŒááºážá áááºááŒá¬ááẠBackType ááœáẠStorm ááᯠá¡áá¯á¶ážááŒá¯áá¬ážááẠ(á¥ááá¬á á¡ááŒá¬ážáá«áááºáá°áá»á¬ážá០Twitter áá±á«áºááŸá ááŒááºáááá·áºááºáá»á¬áž ááá¯á·ááá¯áẠááŒá±ááŒá¬áá»ááºáá»á¬ážááᯠááŒááºáááºáá¯ááºááœáŸáá·áºáá¯á¶á¡á¬áž ááŒááºáááºáá¯ááºááœáŸáá·áºáá¯á¶ááᯠááŸáá¯ááºážááŸááºá¡áá²ááŒááºááŒááºážááŒá áºááẠ)
Storm á áá¯ááºáá±á¬ááºááá¯ááºá áœááºážááẠHadoop ááááºáá±á¬ááºážááŸáá·áº ááŸáá¯ááºážááŸááºáá¬ážááŒá®áž á¡ááá ááœá¬ááŒá¬ážáá»ááºááŸá¬ áá±áá¬ááᯠááá¯áá±á«ááºááœáẠááááºážáááºážááá¬ážáá±á¬áºáááºáž ááŒááºáá០áá»áá¯áá»ááááŒá®áž á¡áá»áááºááŸáá·áºáááŒá±ážáá® áá¯ááºáá±á¬ááºáá±ááŒááºáž ááŒá áºáááºá Storm ááœáẠBuilt-in ááá¯ááŸá±á¬ááºááŸá¯á¡ááœáŸá¬ááá«áááºáááŒáá·áº ááœá²ááŒááºážá áááºááŒá¬áá±ážááŒááºážáá»ááºááẠáááºáá¬ááá·áºáá±áá¬ááá¯ááá»ááºááá»ááºáž á áááºá¡áá¯á¶ážááŒá¯ááẠ( Hadoop ááẠá¡áá»áááºá¡ááá·áºá¡áááºááŸááá±á¬ MapReduce á¡áá¯ááºáá»á¬ážááá¯á¡áá¯á¶ážááŒá¯áá±áá»áááºááœáẠStorm ááẠ"topologies" ááᯠá ááºáááºáááŒááºáá¯ááºáá±á¬ááºáá±ááá·áº á áááºáá°ážááá¯á¡áá¯á¶ážááŒá¯áááº)á ááá¯ááºááœááºáá°á áá¯ááºáá±á¬ááºááŸá¯ááᯠáá¬áá¬á¡áá»á¬ážá¡ááŒá¬ážááœáẠááŒáá·áºáá±ááá¯ááºááẠ- Storm ááẠááá°áá®áá±á¬ á¡á á¯á¡áá±ážáá»á¬ážáá±á«áºááŸá thread áá»á¬ážááŸáá·áº á¡ááá¯á¡áá»á±á¬áẠá¡ááŒáá¯ááºáá¯ááºáá±á¬ááºáááºá
á
áá
áºááẠáá°áá Clojure ááŒáá·áº áá±ážáá¬ážáá²á·ááŒá®áž JVM virtual machine á¡ááœááºážááœáẠá¡áá¯ááºáá¯ááºáá«áááºá Apache Foundation ááẠApache Storm 2.0 áá¯ááºáá±ááŸá¯ááœáẠá¡ááá¯ááŒá¯áá¬ážááá·áºááááºáá»á¬ážááᯠJava ááœááºáá±ážáá¬ážáá¬ážáá±á¬ kernel á¡áá
áºáá
áºáá¯ááá¯á· Storm ááŒá±á¬ááºážááœáŸá±á·ááẠá¡á
áá»áá¯ážáá¯ááºáá±á¬ááºáá²á·áááºá ááááºáá±á¬ááºážá á¡ááŒá±áá¶á¡á
áááºá¡ááá¯ááºážá¡á¬ážáá¯á¶ážááᯠJava ááœáẠááŒááºáááºáá±ážáá¬ážáá¬ážáááºá Clojure ááœáẠá
á¬áá±ážáááááá¬áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠáááºáááºááááºážááááºážáá¬ážáá±á¬áºáááºáž ááá¯á¡áá« áá±á«ááºážá
ááºááŸá¯áá¯á¶á
á¶ááŒáá·áº áááºážááŸááºážáá¬ážáááºá Storm 2.0.0 ááẠJava 8 ááá¯á¡ááºáá«áááºá Multi-threaded processing model ááᯠáá¯á¶ážá ááŒááºááẠáá®ááá¯ááºážáá¯ááºáá¬ážááŒá®áž ááœáá·áºááŒá¯áá±ážáá«áááºá
áá¬ážááŸááºážá¡áá áºááœáẠáá¯ááºáá±á¬ááºáá»ááºááá¯ááºáᬠáááá¯ááááºážáááºážáá¯á¶á ᶠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á ááá¯ááºááœááºáá°áá»á¬ážááᯠáááºááŸááºááẠááœáá·áºááŒá¯ááá·áº ááá¯ááºááá·áºáá¬ážáá±á¬ Stream API á¡áá áºááá¯áááºáž áá±ážáá«áááºá API á¡áá áºááᯠá á¶á¡ááŒá±áᶠAPI áááááºááœáẠá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ážááŒá®áž áááºážááá¯á·ááá¯ááºáá±á¬ááºááŸá¯ááᯠááá¯áá±á¬ááºážá¡á±á¬ááºáá¯ááºáá±á¬ááºááẠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬ááºáá±á«ááºážá ááºááŸá¯ááᯠáá¶á·ááá¯ážáá±ážáá«áááºá áááºážááá¯ážáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá¡ááœáẠWindowing API ááẠbackend ááœáẠá¡ááŒá±á¡áá±ááᯠááááºážáááºážááŒááºážááŸáá·áº ááŒááºáááºááá°ááŒááºážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ áááºáá±á¬ááºážáá±ážáá¬ážáááºá
á¡ááá·áºá¡áááºáááŸá áá¯á¶ážááŒááºáá»ááºáá»á¬ážáá»ááá·áºá¡áá« á¡ááá¯á¡áááºážá¡ááŒá
áºáá»á¬ážááᯠááá·áºááœááºážá
ááºážá
á¬ážááẠáá¶á·ááá¯ážááŸá¯
ááœááºáááºááŸáá·áº GPU áááºáááºáá»á¬ážáá²á·ááá¯á· CPU ááŸáá·áº áááºááá¯áá®á ááááºáá±á¬ááºážááŸáá·áº áá±á«ááºážá
ááºážááŸá¯áá±áá»á¬á
á±ááẠááá¯ážáááºááŸá¯á¡áá»á¬ážá¡ááŒá¬ážááᯠááŒá¯áá¯ááºáá¬ážáá«áááºá
áá¯ááºááá¯ááºážá¡ááœáẠá¡áá¯á¶ážáá»á§áááá¬áá»á¬áž-
- áá±áá¬á¡áá áºáá»á¬áž ááá¯á·ááá¯áẠáá±áá¬áá±á·á áºá¡ááºááááºáá»á¬ážááᯠá¡áá»áááºááŸáá·áºáááŒá±ážáá® áá¯ááºáá±á¬ááºáá±ááŒááºážá
- á ááºáááºáááŒáẠááœááºáá»ááºááŒááºáž- Storm ááẠá ááºáááºáááŒáẠáá±ážááŒááºážááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºááá¯ááºááŒá®áž á ááºáááºáááŒáẠá á®ážááŒá±á¬ááºážáá»á¬ážááᯠáá¯ááºáá±á¬ááºááá¯ááºááŒá®ážá áá¯ááºáá±á¬ááºááŒááºážááááºáá»á¬ážááᯠáá¯á¶ážá áœá²áá°áᶠá¡áá»áááºááŸáá·áºáááŒá±ážáá® áá±ážááá¯á·ááá¯ááºáá«áááºá
- Distributed Remote Procedure Call (RPC)- á¡áááºážá¡ááŒá áº-áá»á¬ážáá±á¬ áá±ážááŒááºážááŸá¯áá»á¬ážááᯠááŒáá¯ááºáá°áá¯ááºáá±á¬ááºááŸá¯ááᯠáá¶á·ááá¯ážáááºá¡ááœáẠáá¯ááºááá¯ááºážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá Storm ááŸá á¡áá¯áẠ(âtopologyâ) ááẠá á®áá¶áá±á¬ááºááœááºáááºááá¯á¡ááºááá·áº áááºáá±á·áá»áºáá»á¬áž áá±á¬ááºááŸááá¬ááŒááºážááᯠá á±á¬áá·áºáá»áŸá±á¬áºáá±áá±á¬ node áá»á¬ážáá±á«áºááœáẠááŒáá·áºáá±ááá·áº áá¯ááºáá±á¬ááºáá»ááºáá áºáá¯ááŒá áºáááºá áááºáá±á·áá»áºááᯠáááºáá¶áááŸáááŒá®ážáá±á¬ááºá áá¯ááºáá±á¬ááºáá»ááºááẠáááºážááᯠáá±áááá¯ááºáᬠá¡ááŒá±á¬ááºážá¡áá¬ááœáẠáá¯ááºáá±á¬ááºááŒá®áž ááááºááᯠááŒááºáá±ážáááºá ááŒáá·áºáá±áá¬ážáá±á¬ RPC ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážáááá°áá¬ááŸá¬ ááŸá¬ááœá±ááŸá¯áá±ážááœááºážáá»á¬ážááᯠá¡ááŒáá¯ááºáá¯ááºáá±á¬ááºááŒááºáž ááá¯á·ááá¯áẠá¡á á¯á¡áá±ážááŒá®ážáá áºáá¯ááœáẠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºáááºááŒá áºáááºá
áá¯ááºááá¯ááºážá¡ááºá¹áá«áááºáá»á¬áž
- á¡áá»áááºááŸáá·áºáá áºááŒá±ážáá® áá±áá¬áá¯ááºáá±á¬ááºááŒááºážááᯠá¡ááœááºááá¯ážááŸááºážááœááºáá°áá±á¬ áááá¯ááááºážáááºážáá¯á¶á á¶á
- áááºááá·áºáááá¯ááááºážáááºážáá¬áá¬á áá¬ážáá»á¬ážá¡ááœááºáááá¯áá¶á·ááá¯ážááŸá¯á áá±á¬áºáá»á°ážáá»á¬ážááᯠJavaá Ruby ááŸáá·áº Python á¡ááœááºáááŸáááá¯ááºáááºá á¡ááŒá¬ážáá¬áá¬á áá¬ážáá»á¬ážá¡ááœáẠááá¯ááºáá»á±á¬áá®ááœá±ááŒá áºá á±ááẠáá¯ááºááá¯ááºáž 100 ááá·áºááá¯á¡ááºáá±á¬ á¡ááœááºááá¯ážááŸááºážáá±á¬ áááºááœááºááŸá¯áááá¯ááá¯áá±á¬ááŒá±á¬áá·áº ááœááºáá°áááºá
- á¡ááŸá¬ážáá¶ááá¯ááºáááº- áá±áá¬áá¯ááºáá±á¬ááºááŒááºážá¡áá¯ááºááᯠáá¯ááºáá±á¬ááºáááºá áááºááẠáá¯ááºááŒáá·áº jar ááá¯ááºááᯠáá¯ááºáá¯ááºááẠááá¯á¡ááºáááºá Storm ááẠဠjar ááá¯ááºááᯠá¡á á¯ááá¯ááºá¡á ááºážáá»á¬ážááŒá¬ážááœáẠááœááºáááºá áœá¬ ááŒáá·áºáá±áá±ážáááºááŒá áºááŒá®áž áááºážááŸáá·áºáááºá ááºáá±áá±á¬ ááá¯ááºááœááºáá°áá»á¬ážááᯠáá»áááºáááºáᬠá á±á¬áá·áºááŒáá·áºááŸá¯ááᯠá á¯á ááºážáá±ážáááºááŒá áºáááºá á¡áá¯ááºááŒá®ážáá±á¬á¡áá«á node áá»á¬ážá¡á¬ážáá¯á¶ážááœáẠáá¯ááºááᯠá¡ááá¯á¡áá»á±á¬ááºááááºáá¬ážáá«áááºá
- á¡áá»á¬ážááá¯áẠáá¯ááºááá¯ááºááŸá¯á ááœááºáá»ááºááŸá¯á¡á¬ážáá¯á¶ážááᯠparallel mode ááœááºáá¯ááºáá±á¬ááºáááºá load ááá¯ážáá¬áááºááŸáá·áºá¡áá»áŸá node á¡áá áºáá»á¬ážááᯠcluster ááá¯á·ááá¯ážááŸááºážá áœá¬áá»áááºáááºáááºáá¯á¶áá±á¬ááºáá«áááºá
- áá¯á¶ááŒááºá áááºáá»áááŸá¯á Storm ááẠáááºáá¬áá±á¬ áááºáá±á·áá»áºááá¯ááºážááᯠá¡áááºážáá¯á¶áž áá áºááŒááẠá¡ááŒáá·áºá¡á áá¯ááºáá±á¬ááºááŒá±á¬ááºáž áá±áá»á¬á á±áááºá ááá¯ááºááœááºáá°á¡á¬ážáá¯á¶ážááᯠááŒááºááœá¬ážááá·áºá¡áá« á¡ááŸá¬ážá¡ááœááºážáá»á¬ážáááŸáááŸáᬠáááºáá±á·áá»áºááᯠáá áºááŒáááºáááºážáá¯ááºáá±á¬ááºáááºááŒá áºááŒá®áž ááŒá¿áá¬áá»á¬ážáá±á«áºáá±á«ááºáá«áá áá¡á±á¬ááºááŒááºáá±á¬ áá¯ááºáá±á¬ááºááŒááºážáá»á¬ážááᯠáááºáá«ááá²áá² ááŒá¯áá¯ááºáá«áááºá
- á¡ááŸáááºá Storm ááá¯ááºááᯠá
áááºáá²ááœáẠááŒáá·áºáá¬ážáá±á¬ á
áœááºážáá±á¬ááºáááºááŒáá·áº áá±ážáá¬ážáá¬ážááŒá®áž áá»ááºááŒááºáá±á¬ á¡ááŒáá¯ááºá¡ááá¯áẠá
á¬ááá¯áá±ážááá¯á·ááŒááºážá¡ááœáẠá
áá
áºááᯠá¡áá¯á¶ážááŒá¯áá«áááºá
ZeroMQ .
source: opennet.ru