ʵʱÉÌÎñÖÇÄÜÕâÒ»¹¹ÏëÔçÒÑËã²»µÃʲôÐÂÉúÊÂÎÔçÔÚ2006Äêά»ù°Ù¿ÆÖоͳöÏÖÁ˹ØÓÚÕâÒ»¸ÅÄîµÄÒ³Ãæ£©¡£È»¶ø¾¡¹ÜÈËÃǶàÄêÀ´Ò»Ö±ÔÚ¶Ô´ËÀà·½°¸½øÐÐ̽ÌÖ£¬ÎÒÈ´·¢ÏֺܶàÆóҵʵ¼ÊÉÏÉÐδ¾Í´Ë¹æ»®³öÃ÷È··¢Õ¹Ë¼Â·¡¢ÉõÖÁûÄÜÕæÕýÒâʶµ½ÆäÖÐÔ̺¬µÄ¾Þ´óÐ§Òæ¡£
?
Ϊʲô»áÕâÑù£¿Ò»´óÔÒòÔÚÓÚĿǰÊг¡ÉϵÄʵʱÉÌÎñÖÇÄÜÓë·ÖÎö¹¤¾ßÈÔÈ»·Ç³£ÓÐÏÞ¡£´«Í³Êý¾Ý²Ö¿â»·¾³Õë¶ÔµÄÖ÷ÒªÊÇÅúÁ¿´¦ÀíÁ÷³Ì£¬ÕâÀà·½°¸ÒªÃ´ÑÓ³Ù¼«¸ß¡¢ÒªÃ´³É±¾¾ªÈË¡ª¡ªµ±È»£¬Ò²¿ÉÄܶþÕß¼æ¾ß¡£
?
È»¶øÒѾÓжà¿îÇ¿´ó¶øÇÒÒ×ÓÚʹÓõĿªÔ´Æ½Ì¨¿ªÊ¼ÐËÆð£¬Óû³¹µ×ŤתĿǰµÄ²»Àû¾ÖÃæ¡£ÆäÖÐ×îÖµµÃ¹Ø×¢µÄÁ½´óÏîÄ¿·Ö±ðΪApache StormÓëApache Spark£¬ËüÃǶ¼ÄÜΪ¹ã´óDZÔÚÓû§ÌṩÁ¼ºÃµÄʵʱ´¦ÀíÄÜÁ¦¡£Á½Ì×·½°¸¶¼¹éÊôÓÚApacheÈí¼þ»ù½ð»á£¬¶øÇÒ³ýÁËÔÚ¹¦ÄÜ·½ÃæµÄÒ»²¿·Ö½»¼¯Ö®Íâ¡¢Á½¿î¹¤¾ß»¹¸÷×ÔÓµÓÐ×ŶÀÌØµÄÌØÐÔÓëÊг¡¶¨Î»¡£
?
Storm£ºÊµÊ±´¦ÀíÁìÓòµÄHadoop
?
×÷ΪһÌ×רÃÅÓÃÓÚʼþÁ÷´¦ÀíµÄ·Ö²¼Ê½¼ÆËã¿ò¼Ü£¬StormµÄµ®Éú¿ÉÒÔ×·Ëݵ½µ±³õÓÉBackType¹«Ë¾¿ª·¢µÄÏîÄ¿¡ª¡ªÕâ¼ÒÊг¡ÓªÏúÇ鱨ÆóÒµÓÚ2011Äê±»TwitterËùÊÕ¹º¡£TwitterÐý¼´½«¸ÃÏîĿתΪ¿ªÔ´²¢ÍÆÏòGitHubƽ̨£¬²»¹ýStorm×îÖÕ»¹ÊǼÓÈëÁËApache·õ»¯Æ÷¼Æ»®²¢ÓÚ2014Äê9ÔÂÕýʽ³ÉΪApacheÆìÏµĶ¥¼¶ÏîĿ֮һ¡£
?
StormÓÐʱºòÒ²±»ÈËÃdzÆÎªÊµÊ±´¦ÀíÁìÓòµÄHadoop¡£StormÏîÄ¿µÄ˵Ã÷Îĵµ¿´ÆðÀ´¶ÔÕâÖֳƺôÒ²±íʾÈÏͬ£º¡°Storm´ó´ó¼ò»¯ÁËÃæÏòÅÓ´ó¹æÄ£Êý¾ÝÁ÷µÄ´¦Àí»úÖÆ£¬´Ó¶øÔÚʵʱ´¦ÀíÁìÓò°çÑÝ×ÅHadoopÖ®ÓÚÅúÁ¿´¦ÀíÁìÓòµÄÖØÒª½ÇÉ«¡£¡±
?
ΪÁË´ï³ÉÉÏÊöÄ¿±ê£¬StormÔÚÉè¼ÆË¼Â·Öгä·Ö¿¼Âǵ½´ó¹æÄ£¿ÉÀ©Õ¹ÄÜÁ¦¡¢ÀûÓÃÒ»Ìס°¹ÊÕÏ¿ìËÙ¡¢×Ô¶¯ÖØÆô¡±·½°¸Îª´¦ÀíÌṩÈÝ´íÐÔÖ§³Ö¡¢´Ó¶øÓÐÁ¦µØ±£Ö¤ÁËÿ¸öÔª×é¶¼ÄÜÇÐʵµÃµ½´¦Àí¡£StormÏîĿĬÈÏΪÏûÏ¢²ÉÈ¡¡°ÖÁÉÙÒ»´Î¡±µÄ´¦Àí¸²¸Ç±£ÕÏ£¬µ«Óû§Ò²Äܹ»¸ù¾ÝÐèҪʵÏÖ¡°½öΪһ´Î¡±µÄ´¦Àí·½Ê½¡£
?
StormÏîÄ¿Ö÷ÒªÀûÓÃClojure±àд¶ø³É£¬ÇҼȶ¨Éè¼ÆÄ¿±êÔÚÓÚÖ§³Ö½«¡°Á÷¡±£¨ÀýÈçÊäÈëÁ÷£©Ó롰˨¡±£¨¼´´¦ÀíÓëÊä³öÄ£¿é£©½áºÏÔÚÒ»Æð²¢¹¹³ÉÒ»Ì×ÓÐÏòÎÞ»·Í¼£¨¼ò³ÆDAG£©ÍØÆË½á¹¹¡£StormµÄÍØÆË½á¹¹ÔËÐÐÔÚ¼¯ÈºÖ®ÉÏ£¬¶øStormµ÷¶È³ÌÐòÔò¸ù¾Ý¾ßÌåÍØÆËÅäÖý«´¦ÀíÈÎÎñ·Ö·¢¸ø¼¯Èºµ±Öеĸ÷¸ö¹¤×÷½Úµã¡£
?
´ó¼Ò¿ÉÒÔ½«ÍØÆË½á¹¹´óÖÂÊÓΪMapReduceÔÚHadoopµ±ÖÐËù°çÑݵĽÇÉ«£¬Ö»²»¹ýStormµÄ¹Ø×¢Öصã·ÅÔÚÁËʵʱ¡¢ÒÔÁ÷Ϊ»ù´¡µÄ´¦Àí»úÖÆÉíÉÏ£¬Òò´ËÆäÍØÆË½á¹¹Ä¬ÈÏÓÀÔ¶ÔËÐлòÕß˵ֱµ½ÊÖ¶¯ÖÐÖ¹¡£Ò»µ©ÍØÆËÁ÷³ÌÆô¶¯£¬Ð®´ø×ÅÊý¾ÝµÄÁ÷¾Í»á²»¶ÏÓ¿Èëϵͳ²¢½«Êý¾Ý½»¸¶¸øË¨£¨¶øÊý¾ÝÈÔ½«ÔÚ¸÷˨֮¼äÑÁ÷³Ì¼ÌÐø´«µÝ£©£¬¶øÕâÒ²ÕýÊÇÕû¸ö¼ÆËãÈÎÎñµÄÖ÷ҪʵÏÖ·½Ê½¡£Ëæ×Å´¦ÀíÁ÷³ÌµÄÍÆ½ø£¬Ò»¸ö»òÕß¶à¸ö˨»á°ÑÊý¾ÝдÈëÖÁ
Êý¾Ý¿â»òÕßÎļþϵͳµ±ÖУ¬²¢ÏòÁíÒ»Ì×Íⲿϵͳ·¢³öÏûÏ¢»òÕß½«´¦Àí»ñµÃµÄ¼ÆËã½á¹ûÌṩ¸øÓû§¡£
?
StormÉú̬ϵͳµÄÒ»´óÓÅÊÆÔÚÓÚÆäÓµÓзḻµÄÁ÷ÀàÐÍ×éºÏ£¬×ãÒÔ´ÓÈκÎÀàÐ͵ÄÀ´Ô´´¦»ñÈ¡Êý¾Ý¡£ËäÈ»´ó¼ÒÒ²¿ÉÒÔÕë¶ÔijЩ¾ß±¸¸ß¶ÈÌØÊâÐÔµÄÓ¦ÓóÌÐò±àд¶¨ÖÆ»¯Á÷£¬µ«»ù±¾ÉÏÎÒÃÇ×ÜÄÜ´ÓÅÓ´óµÄÏÖÓÐÔ´ÀàÐÍÖÐÕÒµ½ÊʺÏÐèÒªµÄ·½°¸¡ª¡ª´ÓTwitterÁ÷APIµ½Apache KafkaÔÙµ½JMS broker£¬Ò»Çо¡½Ôº¸ÇÓÚÆäÖС£
?
ÊÊÅäÆ÷µÄ´æÔÚʹÆäÄܹ»ÇáËÉÓëHDFSÎļþϵͳ½øÐм¯³É£¬ÕâÒâζ×ÅStorm¿ÉÒÔÔÚ±ØÒªÊ±ÓëHadoop¼äʵÏÖ»¥²Ù×÷¡£StormµÄÁíÒ»´óÓÅÊÆÔÚÓÚËü¶Ô¶àÓïÑÔ
±à³Ì·½Ê½µÄÖ§³ÖÄÜÁ¦¡£¾¡¹ÜStorm±¾Éí»ùÓÚClojureÇÒÔËÐÐÔÚJVMÖ®ÉÏ£¬ÆäÁ÷Óë˨ÈÔÈ»Äܹ»Í¨¹ý¼¸ºõËùÓÐÓïÑÔ½øÐбàд£¬ÆäÖаüÀ¨ÄÇЩÄܹ»³ä·Ö·¢»ÓÔÚ±ê×¼ÊäÈë/Êä³ö»ù´¡ÉÏʹÓÃJSON¡¢²¢ÓÉ´ËʵÏÖ×é¼þ¼äͨÐÅÐÒéÓÅÊÆµÄ·ÇJVMÓïÑÔ¡£
?
×ÜÌå¶øÑÔ£¬StormÊÇÒ»Ì×¼«¾ß¿ÉÀ©Õ¹ÄÜÁ¦¡¢¿ìËÙ¾ªÈËÇҾ߱¸ÈÝ´íÄÜÁ¦µÄ¿ªÔ´·Ö²¼¼ÆËãϵͳ£¬Æä¸ß¶ÈרעÓÚÁ÷´¦ÀíÁìÓò¡£StormÔÚʼþ´¦ÀíÓëÔöÁ¿¼ÆËã·½Ãæ±íÏÖÍ»³ö£¬Äܹ»ÒÔʵʱ·½Ê½¸ù¾Ý²»¶Ï±ä»¯µÄ²ÎÊý¶ÔÊý¾ÝÁ÷½øÐд¦Àí¡£¾¡¹ÜStormͬʱÌṩÔÓïÒÔʵÏÖͨÓÃÐÔ·Ö²¼RPC²¢ÔÚÀíÂÛÉÏÄܹ»±»ÓÃÓÚÈκηֲ¼Ê½¼ÆËãÈÎÎñµÄ×é³É²¿·Ö£¬µ«Æä×îΪ¸ù±¾µÄÓÅÊÆÈÔÈ»±íÏÖÔÚʼþÁ÷´¦Àí·½Ãæ¡£
?
Spark£ºÊÊÓÃÓÚÒ»Çеķֲ¼Ê½´¦Àí·½°¸
?
×÷ΪÁíÒ»¸öרÃÅÃæÏòʵʱ·Ö²¼Ê½¼ÆËãÈÎÎñµÄÏîÄ¿£¬Spark×î³õÓɼÓÖÝ´óѧ²®¿ËÀû·ÖУµÄAPMLabʵÑéÊÒËù´òÔ죬¶øºóÓÖ¼ÓÈëµ½Apache·õ»¯Æ÷ÏîÄ¿²¢×îÖÕÓÚ2014Äê2Ô³ÉΪÆäÖеĶ¥¼âÏîĿ֮һ¡£ÓëStormÀàËÆ£¬SparkÒ²Ö§³ÖÃæÏòÁ÷µÄ´¦Àí»úÖÆ£¬²»¹ýÕâÊÇÒ»Ì׸ü¾ß·ºÓÃÐԵķֲ¼Ê½¼ÆËãÆ½Ì¨¡£
?
ÓмøÓÚ´Ë£¬ÎÒÃDz»·Á½«SparkÊÓΪHadoopµ±ÖÐÒ»Ì××ãÒÔÈ¡´úMapReduceµÄDZÔÚ±¸Ñ¡·½°¸¡ª¡ª¶þÕßµÄÇø±ðÔÚÓÚ£¬SparkÄܹ»ÔËÐÐÔÚÏÖÓÐHadoop¼¯ÈºÖ®ÉÏ£¬µ«ÐèÒªÒÀÀµÓÚYARN¶ÔÓÚ×ÊÔ´µÄµ÷¶ÈÄÜÁ¦¡£³ýÁËHadoop YARNÖ®Í⣬Spark»¹Äܹ»ÒÔMesosΪ»ù´¡ÊµÏÖͬÑùµÄ×ÊÔ´µ÷¶È»òÕßÀûÓÃ×ÔÉíÄÚÖõ÷¶È³Ì¶È×÷Ϊ¶ÀÁ¢¼¯ÈºÔËÐС£ÖµµÃ×¢ÒâµÄÊÇ£¬Èç¹û²»½«SparkÓëHadoopÅäºÏʹÓã¬ÄÇôÔËÐÐÔÚ¼¯ÈºÖ®ÉÏÊ±Ä³Ð©ÍøÂç/·Ö²¼Ê½Îļþϵͳ£¨°üÀ¨NFS¡¢AFSµÈ£©ÈÔÈ»±ØÒª£¬ÕâÑùÿ¸ö½Úµã²ÅÄܹ»ÇÐʵ·ÃÎʵײãÊý¾Ý¡£
?
SparkÏîÄ¿ÓÉScala±àд¶ø³É£¬¶øÇÒÓëStormÒ»Ñù¶¼Ö§³Ö¶àÓïÑÔ
±à³Ì¡ª¡ª²»¹ýSparkËùÌṩµÄÌØÊâAPIÖ»Ö§³ÖScala¡¢
JavaÒÔ¼°
Python¡£Spark²¢²»¾ß±¸¡°Á÷¡±ÕâÑùµÄÌØÊâ³éÏó»úÖÆ£¬µ«È´ÓµÓÐÄܹ»Óë´æ´¢ÔÚ¶àÖÖ²»Í¬Êý¾ÝÔ´ÄÚµÄÊý¾ÝʵÏÖÐ×÷µÄÊÊÅäÆ÷¡ª¡ª¾ßÌå°üÀ¨HDFSÎļþ¡¢Cassandra¡¢HBaseÒÔ¼°S3¡£
?
SparkÏîÄ¿µÄ×î´óÁÁµãÔÚÓÚÆäÖ§³Ö¶à´¦ÀíģʽÒÔ¼°Ö§³Ö¿â¡£Ã»´í£¬Sparkµ±È»Ö§³ÖÁ÷ģʽ£¬µ«ÕâÖÖÖ§³ÖÄÜÁ¦½öÔ´×Ô¶à¸öSparkÄ£¿éÖ®Ò»£¬ÆäÔ¤ÉèÄ£¿é³ýÁËÁ÷´¦ÀíÖ®Í⻹֧³ÖSQL·ÃÎÊ¡¢Í¼ÐβÙ×÷ÒÔ¼°»úÆ÷ѧϰµÈ¡£
?
Spark»¹ÌṩһÌ×¼«Îª±ãÀûµÄ½»»¥shell£¬ÔÊÐíÓû§ÀûÓÃScala»òÕßPython APIÒÔʵʱ·½Ê½¿ìËÙ½¨Á¢ÆðÔÐͼ°Ì½Ë÷ÐÔÊý¾Ý·ÖÎö»úÖÆ¡£ÔÚʹÓÃÕâÌ×½»»¥shellʱ£¬´ó¼Ò»áºÜ¿ì·¢ÏÖSparkÓëStormÖ®¼äµÄÁíÒ»´ó²îÒìËùÔÚ£ºSparkÃ÷ÏÔ±íÏÖ³öÒ»ÖÖÆ«¡°¹¦ÄÜ¡±µÄÈ¡Ïò£¬ÔÚÕâÀï´ó²¿·ÖAPIʹÓö¼ÊÇÓÉÃæÏòÔʼ²Ù×÷µÄÁ¬ÐøÐÔ·½·¨µ÷ÓÃÀ´ÊµÏֵġª¡ªÕâÓëStorm×ñѵÄģʽÍêÈ«²»Í¬£¬ºóÕ߸üÇãÏòÓÚͨ¹ý´´½¨ÀàÓëʵÏÖ½Ó¿ÚÀ´Íê³É´ËÀàÈÎÎñ¡£ÏȲ»ÂÛÁ½ÖÖ·½°¸ÊëÓÅÊëÁÓ£¬µ¥µ¥ÊÇ·ç¸ñµÄ¾Þ´ó²îÒìÒѾ×ãÒÔ°ïÖú´ó¼Ò¾ö¶¨ÄÄ¿î
ϵͳ¸üÊʺÏ×Ô¼ºµÄÐèÇóÁË¡£
?
ÓëStormÀàËÆ£¬SparkÔÚÉè¼Æµ±ÖÐͬÑù¸ß¶ÈÖØÊÓ´ó¹æÄ£¿ÉÀ©Õ¹ÄÜÁ¦£¬¶øÇÒSparkÍŶÓĿǰÒѾӵÓÐÒ»·Ý´óÐÍÓû§Îĵµ¡¢ÆäÖÐÁгöµÄϵͳ·½°¸¶¼ÔËÐÐ×Űüº¬³ÉǧÉÏÍò¸ö½ÚµãµÄÉú²úÐÔ¼¯Èº¡£³ý´ËÖ®Í⣬Spark»¹ÔÚ×î½üµÄ2014ÄêDaytona GraySort¾ºÈüµ±ÖлñµÃÁËÓÅʤ£¬³ÉΪĿǰ³ÐÔØ100TB¼¶±ðÊý¾Ý¹¤×÷¸ºÔصÄ×î¼ÑÑ¡Ôñ¡£SparkÍŶӻ¹±£ÁôÁ˶à·ÝÎĵµ£¬ÆäÖмǼ×ÅSpark ETLÈçºÎ¸ºÔðÊýPB¼¶±ðÉú²ú¹¤×÷¸ºÔصÄÔËÓª¡£
?
SparkÊÇÒ»Ì׿ìËÙ³öÉ«¡¢¿ÉÀ©Õ¹ÄÜÁ¦¾ªÈËÇÒ¼«¾ßÁé»îÐԵĿªÔ´·Ö²¼Ê½¼ÆËãÆ½Ì¨£¬ÓëHadoopÒÔ¼°MesosÏà¼æÈݲ¢ÇÒÖ§³Ö¶à´¨¼ÆËãģʽ£¬