±à¼ÍƼö: |
±¾ÎÄÖн«ÀûÓÃApache
Spark(Core£¬SQL£¬Streaming)£¬Apache Parquet£¬Twitter
StreamµÈʵʱÁ÷Êý¾Ý¿ìËÙ·ÃÎÊÀúÊ·Êý¾Ý¡£Ï£Íû¶ÔÄúÓÐËù°ïÖú
±¾ÎÄÀ´×ÔÓÚit168£¬ÓÉ»ðÁú¹ûÈí¼þDelores±à¼¡¢ÍƼö¡£ |
|
Apache Hadoop¼òÊ·

¡¡Apache HadoopÓÉ Apache Software Foundation ¹«Ë¾ÓÚ 2005 ÄêÇïÌì×÷ΪLuceneµÄ×ÓÏîÄ¿NutchµÄÒ»²¿·ÖÕýʽÒýÈë¡£ËüÊܵ½×îÏÈÓÉ Google Lab ¿ª·¢µÄ Map/Reduce ºÍ Google File System(GFS) µÄÆô·¢¡£Ëü³ÉΪһ¸ö¶ÀÁ¢ÏîÄ¿µÄʱ¼äÒÑÓÐ10Äê¡£ ĿǰÒѾÓкܶà¿Í»§ÊµÊ©ÁË»ùÓÚHadoopµÄM / R¹ÜµÀ£¬²¢³É¹¦ÔËÐе½ÏÖÔÚ£º OozieµÄ¹¤×÷Á÷ÿÈÕÔËÐд¦Àí150TBÒÔÉϵÄÊý¾Ý²¢Éú³É·ÖÎö±¨¸æ ¡¡BashµÄ¹¤×÷Á÷ÿÈÕÔËÐд¦Àí8TBÒÔÉϵÄÊý¾Ý²¢Éú³É·ÖÎö±¨¸æ
2016ÄêÉÌÒµÏÖʵ·¢ÉúÁ˱仯£¬Ô½¿ì×ö³ö¾ö²ßÍùÍù¼ÛÖµ¾Í»áÔ½´ó¡£ÁíÍ⣬¼¼Êõ±¾ÉíÒ²ÔÚ·¢Õ¹£¬Kafka£¬Storm£¬Trident£¬Samza£¬Spark£¬Flink£¬Parquet£¬Avro£¬ÔÆÌṩÉ̵ȶ¼³ÉΪÁ˹¤³ÌʦÃǵÄÁ÷ÐÐÓï Òò´Ë£¬ÏÖ´ú»ùÓÚHadoopµÄM / R¹ÜµÀ¿ÉÄÜ»áÊÇÏÂͼËùʾµÄÕâÑù£º

ͼÉϵÄM/RͨµÀ¿´ÆðÀ´²»´í£¬µ«ÆäʵËü±¾ÖÊÉÏ»¹ÊÇÒ»¸ö´«Í³µÄÅú´¦Àí£¬ÓÐ×Å´«Í³Åú´¦ÀíµÄȱµã£¬µ±ÐµÄÊý¾ÝÔ´Ô´²»¶ÏµÄ½øÈëϵͳÖÐʱ£¬»¹ÊÇÐèÒª´óÁ¿µÄʱ¼äÀ´´¦Àí¡£
¡¡¡¡Lambda ¼Ü¹¹ Õë¶ÔÉÏÃæµÄÎÊÌ⣬Nathan MarzÌá³öÁËÒ»¸öͨÓᢿÉÀ©Õ¹ºÍÈÝ´íÐÔÇ¿µÄÊý¾Ý´¦Àí¼Ü¹¹¼´Lambda¼Ü¹¹£¬ËüÊÇͨ¹ýÀûÓÃÅú´¦ÀíºÍÁ÷´¦Àí·½·¨À´´¦Àí´óÁ¿Êý¾ÝµÄ¡£Nathan MarzµÄÊé¶Ô´ÓÔ´ÂëµÄ½Ç¶È¶ÔLambda¼Ü¹¹½øÐÐÁËÏ꾡µÄ½éÉÜ¡£ ²ã½á¹¹ ÕâÊÇLambda¼Ü¹¹×ÔÉ϶øÏµIJã½á¹¹£º

ËùÓÐÊý¾Ý½øÈëϵͳºó¶¼·ÖÅɵ½Åú´¦Àí²ãºÍËÙ¶È²ã½øÐд¦Àí¡£Åú´¦Àí²ã¹ÜÀíÖ÷Êý¾Ý¼¯(Ò»¸ö²»¿É±äµÄ£¬Ö»¿ÉÔö¼ÓµÄÔʼÊý¾Ý¼¯)£¬²¢Ô¤ÏȼÆËãÅú´¦ÀíÊÓͼ¡£ ·þÎñ²ã¶ÔÅúÊÓͼ½øÐÐË÷Òý£¬ÒÔ±ã¿ÉÒÔ½øÐеÍÑÓ³ÙµÄÁÙʱ²éѯ¡£ ËٶȲã½ö´¦Àí×î½üµÄÊý¾Ý¡£ËùÓеIJéѯ½á¹û¶¼±ØÐëºÏ²¢Åú´¦ÀíÊÓͼºÍʵʱÊÓͼµÄ²éѯ½á¹û¡£ ¡¡Òªµã Ðí¶à¹¤³ÌʦÈÏΪLambda¼Ü¹¹¾ÍÖ»°üº¬²ã½á¹¹ºÍ¶¨ÒåÊý¾ÝÁ÷³Ì£¬µ«ÊÇNathan MarzµÄÊéÖÐΪÎÒÃǽéÉÜÁËÆäËü¼¸¸ö±È½ÏÖØÒªµÄµã£º ·Ö²¼Ê½Ë¼Ïë ±ÜÃâÔöÁ¿½á¹¹ Êý¾ÝµÄ²»±äÐÔ ´´½¨ÖØÐ¼ÆËãËã·¨ Êý¾ÝµÄÏà¹ØÐÔ

ÈçǰËùÊö£¬Èκβéѯ½á¹û¶¼±ØÐëͨ¹ýºÏ²¢À´×ÔÅú´¦ÀíÊÓͼºÍʵʱÊÓͼµÄ½á¹û£¬Òò´ËÕâЩÊÓͼ±ØÐëÊǿɺϲ¢µÄ¡£ÔÚÕâÀïҪעÒâµÄÒ»µãÊÇ£¬ÊµÊ±ÊÓͼÊÇǰһ¸öʵʱÊÓͼºÍÐÂÊý¾ÝÔöÁ¿µÄº¯Êý£¬Òò´ËÕâÀïʹÓÃÔöÁ¿Ëã·¨£¬Åú´¦ÀíÊÓͼÊÇËùÓÐÊý¾ÝµÄº¯Êý£¬Òò´ËÓ¦¸ÃʹÓÃÖØÐ¼ÆËãËã·¨¡£ ¡¡È¨ºâ ¡¡ÊÀ¼äÍòÎï¶¼ÊÇÔÚ²»¶ÏÍ×кÍȨºâÖз¢Õ¹µÄ£¬Lambda½á¹¹Ò²²»ÀýÍ⡣ͨ³££¬ÎÒÃÇÐèÒª½â¾ö¼¸¸öÖ÷ÒªµÄȨºâ£º ¡¡ÍêÈ«ÖØÐ¼ÆËã vs.²¿·ÖÖØÐ¼ÆËã ÔÚÓÐЩÇé¿öÏ£¬¿ÉÒÔʹÓÃBloom¹ýÂËÆ÷À´±ÜÃâÍêÈ«ÖØÐ¼ÆËã ÖØ¼ÆËãËã·¨ vs. ÔöÁ¿Ëã·¨ ÔöÁ¿Ëã·¨ÆäʵºÜ¾ßÎüÒýÁ¦£¬µ«ÊÇÓÐʱ¸ù¾ÝÖ¸ÄÏ£¬ÎÒÃDZØÐëʹÓÃÖØ¼ÆËãËã·¨£¬¼´±ãËüºÜÄѵõ½ÏàͬµÄ½á¹û ¡¡¼Ó·¨Ëã·¨ vs. ½üËÆËã·¨ ¡¡ËäÈ»Lambda¼Ü¹¹Äܹ»Óë¼Ó·¨Ëã·¨ºÜºÃµØÐͬ¹¤×÷£¬µ«ÊÇÔÚÓÐЩÇé¿öϸüÊʺÏʹÓýüËÆËã·¨£¬ÀýÈçʹÓÃHyperLogLog´¦Àícount-distinctÎÊÌâ¡£ ʵÏÖ ¡¡ÊµÏÖLambda¼Ü¹¹µÄ·½·¨Óкܶ࣬ÒòΪÿ¸ö²ãµÄµ×²ã½â¾ö·½°¸ÊǶÀÁ¢µÄ¡£Ã¿¸ö²ãÐèÒªµ×²ãʵÏÖµÄÌØ¶¨¹¦ÄÜ£¬ÓÐÖúÓÚ×ö³ö¸üºÃµÄÑ¡Ôñ²¢±ÜÃâ¹ý¶È¾ö²ß£º ¡¡ÅúÁ¿²ã£ºÒ»´ÎдÈ룬ÅúÁ¿¶ÁÈ¡¶à´Î ·þÎñ²ã£ºÖ§³ÖËæ»ú¶ÁÈ¡µ«²»Ö§³ÖËæ»úдÈë; ÅúÁ¿¼ÆËãºÍÅúÁ¿Ð´Èë ËÙ¶È²ã£ºËæ»ú¶Áд; ÔöÁ¿¼ÆËã ÀýÈ磬ÆäÖÐÒ»¸öʵÏÖ(ʹÓÃKafka£¬Apache Hadoop£¬Voldemort£¬Twitter Storm£¬Cassandra)¿ÉÄÜÈçÏÂËùʾ£º
 Apache Spark ¡¡Apache Spark±»ÊÓΪÔÚËùÓÐLambda¼Ü¹¹²ãÉϽøÐд¦ÀíµÄ¼¯³É½â¾ö·½°¸¡£ ÆäÖÐSpark Core°üº¬Á˸߼¶APIºÍÖ§³Ö³£¹æÖ´ÐÐͼµÄÓÅ»¯ÒýÇæ£¬SparkSQLÓÃÓÚSQLºÍ½á¹¹»¯Êý¾Ý´¦Àí£¬Spark StreamingÖ§³ÖʵʱÊý¾ÝÁ÷µÄ¿ÉÀ©Õ¹£¬¸ßÍÌÍÂÁ¿£¬ÈÝ´íÁ÷´¦Àí¡£ µ±È»£¬Ê¹ÓÃSpark½øÐÐÅú´¦ÀíµÄ¼Û¸ñ¿ÉÄܱȽϸߣ¬¶øÇÒÒ²²»ÊÇËùÓеij¡¾°ºÍÊý¾Ý¶¼Êʺϡ£µ«ÊÇ£¬×ÜÌåÀ´ËµApache SparkÊǶÔLambda¼Ü¹¹µÄºÏÀíʵÏÖ¡£ ¡¡Ê¾ÀýÓ¦Óà ¡¡ÎÒÃÇ´´½¨Ò»¸öʾÀýÓ¦ÓóÌÐòÀ´ÑÝʾLambda¼Ü¹¹¡£Õâ¸öʾÀýµÄÖ÷ҪĿµÄͳ¼Æ´Óij¸öʱ¿Ìµ½ÏÖÔڴ˿̵Ä#morningatlohika tweets¹þÏ£±êÇ©¡£ ¡¡Åú´¦ÀíÊÓͼ ¡¡ÎªÁ˼òµ¥Æð¼û£¬¼ÙÉèÎÒÃǵÄÖ÷Êý¾Ý¼¯°üº¬×Ôʱ¼ä¿ªÊ¼ÒÔÀ´µÄËùÓÐtweets¡£ ´ËÍ⣬ÎÒÃÇʵÏÖÁËÒ»¸öÅú´¦Àí£¬´´½¨ÁËÎÒÃǵÄÒµÎñÄ¿±êËùÐèµÄÅú´¦ÀíÊÓͼ£¬Òò´ËÎÒÃÇÓÐÒ»¸öÔ¤¼ÆËãµÄÅú´¦ÀíÊÓͼ£¬ÆäÖаüº¬Óë#morningatlohikaÒ»ÆðʹÓõÄËùÓÐÖ÷Ìâ±ê¼ÇµÄͳ¼ÆÐÅÏ¢£º

ÒòΪÊý×Ö·½±ã¼ÇÒ䣬ËùÒÔÎÒʹÓöÔÓ¦±êÇ©µÄÓ¢Îĵ¥´ÊµÄ×ÖĸÊýÄ¿×÷Ϊ±àºÅ¡£ ¡¡ÊµÊ±ÊÓͼ µ±Ó¦ÓóÌÐòÆô¶¯²¢ÔËÐÐʱ£¬ÓÐÈË·¢³öÁËÈçϵÄtweet:

ÔÚÕâÖÖÇé¿öÏ£¬ÕýÈ·µÄʵʱÊÓͼӦ°üº¬ÒÔϱêÇ©¼°Æäͳ¼ÆÐÅÏ¢(ÔÚÎÒÃǵÄʾÀýÖÐΪ1£¬ÒòΪÏàÓ¦µÄhash±êǩֻʹÓÃÁËÒ»´Î)

²éѯ ¡¡µ±ÖÕ¶ËÓû§²éѯhash±êÇ©µÄͳ¼Æ½á¹ûʱ£¬ÎÒÃÇÖ»ÐèÒª½«ÅúÁ¿ÊÓͼÓëʵʱÊÓͼºÏ²¢ÆðÀ´¡£ ËùÒÔÊä³öÓ¦¸ÃÈçÏÂËùʾ£º

¡¡³¡¾° ¡¡¡¡Ê¾Àý³¡¾°µÄ¼ò»¯²½ÖèÈçÏ£º ¡¡¡¡Í¨¹ýApache Spark´´½¨Åú´¦ÀíÊÓͼ(.parquet) ¡¡ÔÚApache SparkÖлº´æÅú´¦ÀíÊÓͼ ¡¡Á÷Ó¦ÓóÌÐòÁ¬½Óµ½Twitter ¡¡ÊµÊ±¼à¿Ø#morningatlohika tweets ¡¡¹¹½¨ÔöÁ¿ÊµÊ±ÊÓͼ ¡¡²éѯ£¬¼´ºÏ²¢Åú´¦ÀíÊÓͼºÍʵʱÊÓͼ
¡¡¡¡¼¼Êõϸ½Ú ¡¡¡¡Ô´´úÂë»ùÓÚApache Spark 1.6.x£¬(ÔÚÒýÈë½á¹¹»¯Á÷֮ǰ)¡£ Spark Streaming¼Ü¹¹ÊÇ´¿Î¢ÐÍÅú´¦Àí¼Ü¹¹£º

¡¡ËùÒÔ´¦ÀíÁ÷Ó¦ÓóÌÐòʱ£¬ÎÒʹÓÃDStreamÁ¬½ÓʹÓÃTwitterUtilsµÄTwitter£º

ÔÚÿ¸ö΢Åú´Î(ʹÓÿÉÅäÖõÄÅú´¦Àí¼ä¸ô)£¬¶ÔеÄtweetsÖÐhashtagsµÄͳ¼ÆÐÅÏ¢µÄ¼ÆË㣬²¢Ê¹ÓÃupdateStateByKey()״̬ת»»º¯Êý¸üÐÂʵʱÊÓͼµÄ״̬¡£ ΪÁ˼òµ¥Æð¼û£¬Ê¹ÓÃÁÙʱ±í½«ÊµÊ±ÊÓͼ´æ´¢ÔÚ´æ´¢Æ÷ÖС£ ²éѯ·þÎñ·´Ó³Åú´¦ÀíºÍʵʱÊÓͼµÄºÏ²¢£º

Êä³ö ¡¡ÎÄÕ¿ªÍ·Ìáµ½µÄ»ùÓÚHadoopµÄM/R¹ÜµÀʹÓÃApache SparkÀ´ÓÅ»¯£º

¡¡ºó¼Ç£º ¡¡ÕýÈç֮ǰÌáµ½µÄLambda ArchitectureÓÐÆäÓŵãºÍȱµã£¬ËùÒÔÖ§³ÖÕߺͷ´¶ÔÕß¶¼ÓС£ ÓÐЩÈË˵Åú´¦ÀíÊÓͼºÍʵʱÊÓͼÓкܶàÖØ¸´µÄÂß¼£¬ÒòΪ×îÖÕËûÃÇÐèÒª´Ó²éѯ½Ç¶È´´½¨¿ÉºÏ²¢µÄÊÓͼ¡£ ËùÒÔËûÃÇ´´½¨ÁËÒ»¸öKappa¼Ü¹¹£¬²¢³ÆÆäΪLambda¼Ü¹¹µÄ¼ò»¯°æ¡£ Kappa¼Ü¹¹ÏµÍ³ÊÇɾ³ýÁËÅú´¦Àíϵͳ£¬È¡¶ø´úÖ®µÄÊÇͨ¹ýÁ÷ϵͳ¿ìËÙÌṩÊý¾Ý£º

¡¡µ«¼´Ê¹ÔÚÕâÖÖÇé¿öÏ£¬Kappa ArchitectureÖÐÒ²¿ÉÒÔÓ¦ÓÃApache Spark£¬ÀýÈçÁ÷´¦Àíϵͳ£º

|