±à¼ÍƼö: |
±¾ÎÄͨ¹ýÔÀíµÄÊáÀíºÍ¾ßÌåÉÌÒµµÄÆÊÎö£¬Ï£Íû¸ø¶ÁÕßÒ»¸ö×ÜÌåµÄ˼·£¬ÈçºÎ´ÓÎÞµ½ÓÐÉè¼Æ³öÒ»¸öÓÐЧµÄϵͳ£¬Í¬Ê±Âú×ãʵʱºÍÀëÏßÒµÎñµÄÐèÇ󣬰ïÖúÆóÒµ´ÓÊý¾ÝÖд´Ôì¸ü´óµÄ¼ÛÖµ¡£
±¾ÎÄÀ´×Ô´óÊý¾Ý¿ª·ÅʵÑéÊÒ£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
ǰÑÔ
HadoopµÄ³öÏÖÈÃÈËÃdz¢µ½ÁË´óÊý¾Ý¼¼ÊõµÄÌðÍ·£¬ËüµÄÅú´¦ÀíÄÜÁ¦ÒѾ±»¹¤Òµ½ç³ä·ÖÈϿɣ¬µ«ÊÇËüµÄÑÓ³ÙÐÔҲһֱΪ´ó¼ÒËùÚ¸²¡¡£Ëæ×Ÿ÷Ðи÷ÒµµÄ·¢Õ¹£¬Ô½À´Ô½¶àµÄÒµÎñÒªÇó´óÊý¾Ýϵͳ¼È¿ÉÒÔ´¦ÀíÀúÊ·Êý¾Ý£¬ÓÖ¿ÉÒÔ½øÐÐʵʱ¼ÆËã¡£±ÈÈçµçÉÌÍÆ¼öϵͳ£¬µ±ÄãÔÚ¾©¶«ä¯ÀÀÉÌÆ·Ê±£¬¾©¶«»á¸ù¾ÝÄãµÄä¯ÀÀ¡¢¼Ó³µ¡¢Êղء¢É¾³ýµÈÐÐΪ£¬ÊµÊ±ÎªÄãÍÆ¼öÉÌÆ·¡£ÒªÊµÏÖÕâ¸ö¹¦ÄÜ£¬ÍƼöÒýÇæÊ×ÏÈÐèÒª¸ù¾ÝÀúÊ·Êý¾ÝÔ¤ÏÈÀëÏß¼ÆËãÍÆ¼öÄ£ÐÍ£¬È»ºó´ÓÏûÏ¢¶ÓÁÐÖÐʵʱÀÈ¡Óû§ÐÐΪÊý¾Ý£¬½áºÏÁ½Õߣ¬ÊµÊ±Éú³ÉÍÆ¼ö½á¹û¡£
ÔÙ¾ÙÒ»¸öÖǻ۽»Í¨ÏµÍ³µÄÀý×Ó¡£ÔÚÖǻ۽»Í¨ÏµÍ³ÖУ¬ÐèÒª¶ÔδÄê¼ì¡¢Î´±¨·ÏµÈΣÏÕ³µÁ¾½øÐÐʵʱԤ¾¯£¬Õâ¾ÍÒªÇó¸ÃϵͳԤÏȸù¾ÝÀúÊ·Êý¾Ýɾѡ³öδÄê¼ì»ò䱨·ÏµÄ³µÁ¾ÐÅÏ¢¿â£¬È»ºó½«µÀ·ÉÏʵʱ»ñÈ¡µ½µÄ³µÁ¾ÐÅÏ¢Óë³µÁ¾ÐÅÏ¢¿â½øÐжԱȣ¬ÅжÏÓÐûÓÐÎ¥Õ³µÁ¾¡£
Ãæ¶ÔÕâÑù¸´ÔÓµÄÒµÎñÐèÇ󣬿ª·¢ÕßÊ×ÏÈÐèÒªÒ»¸ö±È½ÏºÃµÄ¼Ü¹¹Éè¼ÆË¼Â·£¬Ôڼܹ¹Éè¼ÆÍê³ÉºóÔÙ×öÏàÓ¦µÄ¼¼ÊõÑ¡ÐÍ¡£Ä¿Ç°Òµ½çÓм¸¸öÖªÃûµÄ¼Ü¹¹Éè¼ÆÀ´´¦Àí´ËÀàÐèÇó£¬ÈçLambdaºÍSummingbird£¬µ«ÊÇËüÃÇÔڼܹ¹µÄÉè¼ÆÉÏÓÖÓбȽϴóµÄ²»Í¬¡£¾ÍĿǰ¶øÑÔ£¬SummingbirdºÍLambda¼Ü¹¹¶¼¿¼Âǵ½ÁËʵʱ¼ÆËãºÍÅú´¦ÀíÏà½áºÏµÄÎÊÌ⣬ֻ²»¹ýSummingbirdÖ÷ÕÅÒÔͳһµÄ·½Ê½À´Ö´ÐдúÂ룬ÓйØÁ½ÕßµÄÇø±ð£¬´ó¼Ò¿ÉÒÔ×ÔÐÐÉÏÍøÁ˽âһϣ¬ÕâÀïÎÒÃÇÖ»ÌÖÂÛLambda¼Ü¹¹¡£
±³¾°½éÉÜ
Lambda¼Ü¹¹ÊÇNathan MarzÌá³öµÄÒ»¸öʵʱ´óÊý¾Ý´¦Àí¿ò¼Ü¡£Nathan MarzÊÇÖøÃûµÄʵʱ´óÊý¾Ý´¦Àí¿ò¼ÜStormµÄ×÷Õߣ¬Lambda¼Ü¹¹¾ÍÊÇÆä¸ù¾Ý¶àÄê·Ö²¼Ê½´óÊý¾ÝϵͳµÄ¾Ñé×ܽáÌáÁ¶¶ø³É¡£
Nathan Marz ÔÚBig Data:Principles and best practices
of scalable real-time data systemsÒ»ÊéÖÐÌáµ½Á˺ܶàʵʱ´óÊý¾ÝϵͳµÄ¹Ø¼üÌØÐÔ£¬°üÀ¨ÈÝ´íÐÔ£¬½¡×³ÐÔ£¬µÍÑÓ³Ù£¬¿ÉÀ©Õ¹£¬Í¨ÓÃÐÔ£¬·½±ã²éѯµÈ£¬Lambda¾ÍÊÇÆä¸ù¾ÝÕâÐ©ÌØÐÔÉè¼ÆµÄÒ»¸öʵʱ´óÊý¾Ý¿ò¼Ü¡£ÐèҪעÒâµÄÊÇ£¬Lambda²¢²»ÊÇÒ»¸ö¾ßÓÐʵÌåµÄÈí¼þ²úÆ·£¬¶øÊÇÒ»¸öÖ¸µ¼´óÊý¾Ýϵͳ´î½¨µÄ¼Ü¹¹Ä£ÐÍ£¬Òò´Ë£¬Óû§¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÒª£¬ÔÚLambdaµÄÈý²ãÄ£ÐÍÖУ¬ÈÎÒ⼯³ÉHadoop£¬Kafka£¬Storm£¬Spark£¬HbaseµÈ¸÷Àà´óÊý¾Ý×é¼þ£¬»òÕßÑ¡ÓÃÉÌÓÃÈí¼þÀ´¹¹½¨ÏµÍ³¡£
ÔÀí½²½â
´óÊý¾ÝϵͳµÄÌØÐÔ
ÔÚ½²´óÊý¾ÝϵͳµÄÌØÐÔ֮ǰ£¬ÎÒÃÇÏÈÀ´·ÖÎöÒ»ÏÂÊý¾ÝϵͳµÄ±¾ÖÊ¡£
Nathan MarzÈÏΪ£¬Êý¾ÝϵͳµÄ±¾ÖÊÊÇ¡°²éѯ+Êý¾Ý¡±£¬Óù«Ê½±í´ïÈçÏ£º
Query = Function ( All Data )
Êý¾ÝϵͳÆäʵÊÇÒ»¸öÌṩÁËÊý¾Ý´æ´¢ºÍÊý¾Ý²éѯ¹¦ÄܵÄϵͳ¡£ÔÚÊý¾Ý´æ´¢¹ý³ÌÖУ¬Êý¾Ý¿ÉÄܻᷢÉú¶ªÊ§£¬ÔÚÊý¾Ý²éѯµÄ¹ý³ÌÖУ¬²éѯҲ¿ÉÄܳöÏÖ´íÎó£¬Òò´Ë£¬Êý¾Ýϵͳ±ØÐëÄܹ»Ó¦¶ÔÕâЩÎÊÌ⣬Õâ¾ÍÊÇÎÒÃÇËù˵µÄÊý¾ÝϵͳµÄÈÝ´íÐԺͽ¡×³ÐÔ¡£³ý´ËÖ®Íâ£¬Ëæ×ÅÊý¾ÝµÄ¹æÄ£Ô½À´Ô½´ó£¬²éѯԽÀ´Ô½¸´ÔÓ£¬ÎÒÃÇÏ£ÍûÊý¾ÝϵͳÊÇÒ×ÓÚÀ©Õ¹µÄ£¬²¢ÇÒÊÇ¿Éά»¤µÄ£¬×îºÃ²éѯÈÔÈ»ÊǵÍÑӳٵģ¬ÖÁ´Ë£¬ÎÒÃǾͿÉÒÔÀ´×ܽáһϴóÊý¾ÝϵͳµÄ¹Ø¼üÌØÐÔÁË£¬¾ßÌåÈçÏ£º
a. ÈÝ´íÐԺͽ¡×³ÐÔ£º¶ÔÓÚ·Ö²¼Ê½ÏµÍ³À´Ëµ£¬±£Ö¤ÈËΪ²Ù×÷²»³ö´í£¬³ÌÐòÒ²²»³ö´íÊDz»¿ÉÄܵģ¬Òò´Ë£¬´óÊý¾Ýϵͳ±ØÐë¶ÔÕâÑùµÄ´íÎóÓÐ×ã¹»µÄÊÊÓ¦ÄÜÁ¦¡£
b. µÍÑÓ³Ù£ººÜ¶àÓ¦ÓöÔÓÚ¶ÁºÍд²Ù×÷µÄÑÓʱҪÇó·Ç³£¸ß£¬ÒªÇó¶Ô¸üкͲéѯµÄÏìÓ¦ÊǵÍÑÓʱµÄ¡£
c. ºáÏòÀ©ÈÝ£ºµ±Êý¾ÝÁ¿/¸ºÔØÔö´óʱ£¬ÏµÍ³¿ÉÒÔ²ÉÓÃscale out£¨Í¨¹ýÔö¼Ó»úÆ÷µÄ¸öÊý£©£¬¶ø²»ÊÇscale
up£¨Í¨¹ýÔöÇ¿»úÆ÷µÄÐÔÄÜ£©À´Î¬³ÖÐÔÄÜ¡£
d. ¿ÉÀ©Õ¹£ºµ±ÏµÍ³ÐèÒªÔö¼ÓһЩй¦ÄÜ»òÕßÐÂÌØÐÔʱ£¬Ëù»¨·ÑµÄ´ú¼Û±È½ÏС¡£
e. ·½±ã²éѯ£ºÊý¾ÝϵͳµÄ±¾ÖÊÊÇ¡°²éѯ+Êý¾Ý¡±£¬Òò´Ë£¬Êý¾ÝϵͳӦ¾ß±¸·½±ã¡¢¿ìËÙµÄÊý¾Ý²éѯ¹¦ÄÜ¡£
f. Ò×ÓÚά»¤£ºÏµÍ³ÒªÏë×öµ½Ò×ÓÚά»¤£¬Æä¹Ø¼üÊÇ¿ØÖÆÆä¸´ÔÓÐÔ£¬Ô½ÊǸ´ÔÓµÄϵͳԽÈÝÒ׳ö´í¡¢Ô½ÄÑά»¤¡£
Lambda¼Ü¹¹µÄÈý²ãÄ£ÐÍ
Ç°ÃæÌáµ½£¬Query = Function(All Data)£¬ÄÇô´óÊý¾ÝϵͳµÄ¹Ø¼üÎÊÌâ¾Í±ä³ÉÁË£ºÈçºÎʵʱµØÔÚÈÎÒâ´óÊý¾Ý¼¯ÉϽøÐвéѯ£¿Èç¹ûµ¥´¿µØ¶ÔÈ«ÌåÊý¾Ý¼¯½øÐÐÔÚÏß²éѯ£¬ÄÇô¼ÆËã´ú¼Û»áºÜ´ó£¬ÑÓ³ÙÒ²»áºÜ¸ß£¬±ÈÈçHadoop¡£
LambdaµÄ×ö·¨Êǽ«´óÊý¾Ýϵͳ¼Ü¹¹²ð·Ö³ÉÁËÈý²ã£ºBatch Layer£¬Speed LayerºÍServing
Layer¡£LambdaµÄ·Ö²ã½á¹¹Í¼Èçͼ1Ëùʾ£º

ͼ1 Lambda·Ö²ã½á¹¹Í¼
a. Batch Layer
¼ÈÈ»¶ÔÈ«ÌåÊý¾Ý¼¯½øÐÐÔÚÏß²éѯ£¬¼ÆËã´ú¼Û»áºÜ¸ß£¬ÄÇôÈç¹û¶Ô²éѯÊÂÏȽøÐÐÔ¤¼ÆË㣬Éú³É¶ÔÓ¦µÄViews£¬²¢ÇÒ¶ÔViews½¨Á¢Ë÷Òý£¬ÕâÑù£¬²éѯµÄËÙ¶È»áÌá¸ßºÜ¶à£¬Õâ¾ÍÊÇBatch
LayerËù×öµÄÊ¡£
Batch Layer²ã²ÉÓò»¿É±äÄ£ÐͶÔËùÓÐÊý¾Ý½øÐÐÁË´æ´¢£¬²¢ÇÒ¸ù¾Ý²»Í¬µÄÒµÎñÐèÇ󣬶ÔÊý¾Ý½øÐÐÁ˲»Í¬µÄÔ¤²éѯ£¬Éú³É¶ÔÓ¦µÄBatch
Views£¬ÕâЩBatch ViewsÌṩ¸øÉϲãµÄServing Layer½øÐнøÒ»²½µÄ²éѯ¡£ÁíÍ⣬ÿ¸ôÒ»¶Îʱ¼ä¶¼»á½øÐÐÒ»´ÎÔ¤²éѯ£¬¶ÔBatch
Views½øÐиüУ¬Batch Views¸üÐÂÍê³Éºó£¬»áÁ¢¼´¸üе½Serving LayerÖÐÈ¥¡£
Ô¤²éѯµÄ¹ý³ÌÊÇÒ»¸öÅú´¦ÀíµÄ¹ý³Ì£¬Òò´Ë£¬ÕâÒ»²ã¿ÉÒÔÑ¡ÔñÖîÈçHadoopÕâÑùµÄ×é¼þ¡£Batch Layer²ãµÄ½á¹¹Í¼Èçͼ2Ëùʾ£º

ͼ2 Batch Layer½á¹¹Í¼
b. Speed Layer
ÈçÉÏÒ»½ÚÖÐÌáµ½£¬Ô¤²éѯµÄ¹ý³ÌÊÇÒ»¸öÅú´¦ÀíµÄ¹ý³Ì£¬¸Ã¹ý³Ì»¨·ÑµÄʱ¼ä»á±È½Ï³¤£¬Ôڸùý³ÌÖУ¬Serving
LayerʹÓõÄÈÔÈ»ÊǾɰ汾µÄBatch Views£¬ÄÇô½ö½öÒÀ¿¿Batch LayerÕâÒ»²ã£¬Ð½øÈëϵͳµÄÊý¾Ý½«ÎÞ·¨²ÎÓë×îºó½á¹ûµÄ¼ÆË㣬Òò´Ë£¬MarzΪLambdaÉè¼ÆÁËSpeed
Layer²ãÀ´´¦ÀíÔöÁ¿µÄʵʱÊý¾Ý¡£
Speed LayerºÍBatch Layer±È½ÏÀàËÆ£¬¶ÔÊý¾Ý¼ÆËãÉú³ÉRealtime Views£¬ÆäÖ÷ÒªµÄÇø±ðÊÇ£º
µÚÒ»£¬Speed Layer´¦ÀíµÄÊý¾ÝÊÇ×î½üµÄÔöÁ¿Êý¾ÝÁ÷£¬Batch Layer´¦ÀíµÄÊÇÈ«ÌåÊý¾Ý¼¯¡£
µÚ¶þ£¬Speed LayerΪÁËЧÂÊ£¬½ÓÊÕµ½ÐÂÊý¾Ýʱ£¬¾Í¸üÐÂRealtime Views£¬²¢ÇÒ²ÉÓõÄÊÇIncremental
Updates£¨ÔöÁ¿¼ÆËãÄ£ÐÍ£©£¬¶øBatch LayerÔòÊǸù¾ÝÈ«ÌåÀëÏßÊý¾Ý¼¯µÃµ½Batch Views£¬²ÉÓõÄÊÇRecomputation
Updates£¨ÖØÐ¼ÆËãÄ£ÐÍ£©¡£
c. Serving Layer
Serving LayerÓÃÓÚÏìÓ¦Óû§µÄ²éѯÇëÇó£¬Ëü½«Batch ViewsºÍRealtime ViewsµÄ½á¹û½øÐÐÁ˺ϲ¢£¬µÃµ½×îºóµÄ½á¹û£¬·µ»Ø¸øÓû§£¬Í¼3¸ø³öÁËLambdaµÄÕûÌå¼Ü¹¹Í¼£º

ͼ3 Lambda¼Ü¹¹Í¼
¸ÅÀ¨ÆðÀ´£¬Lambda¼Ü¹¹Í¨¹ýBatch LayerºÍSpeed LayerµÄ·Ö²ãÉè¼ÆÀ´ÊµÏÖÔÚÒ»¸öϵͳÄÚͬʱ֧³ÖʵʱºÍÅú´¦ÀíÒµÎñ£¬²¢ÇÒͨ¹ýServing
LayerÔÚÂß¼ÉÏͳһÁËÁ½ÖÖÊý¾ÝÔ´µÄ½Ó¿Ú£¬ÈÃÓ¦ÓÃÄܹ»ÒÔÒ»¸öͳһµÄÊý¾ÝÊÓͼÀ´¿ª·¢ºÍ²¿Ê𣬴Ӷø´ïµ½Êý¾ÝºÍÓ¦ÓõÄÈںϡ£
ÔÚÿ¸öLayerµÄʵ¼ÊÉè¼ÆÖУ¬¿ª·¢ÈËÔ±¿ÉÒÔ¸ù¾Ý×ÔÉíµÄÐèÇóÀ´Ñ¡ÔñºÏÊʵÄ×é¼þ»òÕß²úÆ·À´¹¹½¨ÏàÓ¦µÄϵͳ£¬Ä¿Ç°Óкܶ࿪Դ×é¼þ¿ÉÒÔÓÃÓÚ¹¹½¨´ËÀàϵͳ£¬ÈçStorm/Spark
Streaming/Flink¿ÉÒÔÓÃÀ´¹¹½¨Speed Layer£¬Spark/MapReduce¿ÉÒÔÓÃÓÚ¹¹½¨Batch
Layer£¬HBase/Redis/MongoDB¿ÉÒÔÓÃÓÚ´æ´¢¡£
ÓÉÓÚÒ»Ì×ϵͳÐèҪͬʱ´¦ÀíʵʱҵÎñºÍÅú´¦ÀíÒµÎñ£¬²¢ÇÒÁ½ÅúÒµÎñÖ®¼äÓбȽÏÃ÷È·µÄÊý¾ÝñîºÏ£¬Lambdaϵͳ±¾ÉíµÄ¼¼Êõ¸´ÔӶȷdz£¸ß£¬Ñ¡Ôñ·½°¸µÄʱºòÐèÒª³ä·Ö¿¼ÂÇϵͳ¹¹½¨³É±¾ÒÔ¼°Îȶ¨ÐÔ¡£´Ó±ÊÕßÁ˽âµÄÇé¿ö¿´£¬Ñ¡Ôñ¿ªÔ´¼¼ÊõÀ´¹¹½¨ÀàËÆÏµÍ³£¬Ä¿Ç°¹úÄÚÖ»ÓкÜÉٵijɹ¦ÉÌҵʵ¼ù¡£¶ÔÓÚ¼¼ÊõʵÁ¦²»ÄÇôǿµÄÆóÒµ£¬Ñ¡ÔñÒ»¸ö¿É¿¿µÄÉÌÒµÈí¼þÍùÍùÊǸö¸üºÏÊʵÄÑ¡Ôñ¡£ÐÇ»·¿Æ¼¼ÔÚÕâ·½ÃæÓзdz£²»´íµÄ³É¹¦¾Ñ飬½áºÏ×ÅTranswarp
Data HubµÄ¼¼ÊõÓÅÊÆ£¬ÎÒÃǰïÖú¿Í»§ÔÚÖǻ۽»Í¨ÏµÍ³ÁìÓòÍê³ÉÁ˷dz£´ó¹æÄ£µÄʵ¼ÊÒµÎñ²¿Êð¡£ÏÂÎÄÎÒÃǽ«ÒÔijһ¸öÏîÄ¿À´×ö¾ßÌåµÄ°¸Àý·ÖÎö£¬À´ÃèÊöÈçºÎʹÓÃTDHÀ´Íê³ÉÒ»¸öÓÃÓÚ´ó¹æÄ£Éú²úÒµÎñµÄLambdaϵͳ¡£
°¸Àý·ÖÎö
±¾°¸ÀýΪijʡµÄÖǻ۽»Í¨ÏµÍ³¡£
ϵͳ¸÷²ã×é¼þµÄÑ¡ÐÍ
¸ù¾ÝÉÏÃæµÄ½éÉÜ£¬Lambda¼Ü¹¹°üÀ¨Èý²ã£¬ÆäÖÐBatch Layer¸ºÔðÊý¾Ý¼¯µÄ´æ´¢ºÍÅú´¦ÀíµÄÖ´ÐУ¬Êý¾Ý´æ´¢ÎÒÃÇÑ¡ÔñHyperbase¡£HyperbaseÖ§³Ö¿ìËٸ߲¢·¢µÄ²éѯ£¬¿ÉÒÔ·½±ãÓû§×öһЩ¾«È·Àà²éѯ£¨Èç¸ù¾Ý³µÅƺżìË÷µÈ£©¡£ÓÉÓÚ´ËÏîÄ¿»¹ÓÐһЩͳ¼ÆÀàµÄÒµÎñÐèÇó£¬ÎÒÃÇÑ¡Ôñ½«²¿·ÖÊý¾ÝÔÚHDFSÉϱ£ÁôÒ»·ÝÓÃ×÷ºóÆÚµÄ·ÖÎöÖ®Óã¬InceptorµÄÇ¿´óµÄÊý¾Ý·ÖÎöÄÜÁ¦¿ÉÒÔ°ïÖúÓû§ÔÚÈÎÒâά¶ÈÉÏ×ö¸´ÔÓµÄÊý¾Ý·ÖÎö¹¤×÷¡£
Speed LayerÖ÷Òª¸ºÔð¶ÔÊý¾ÝµÄʵʱ´¦Àí£¬¿ÉÒÔʹÓÃTranswarp Stream¡£´ËÍ⣬KafkaÑ¡ÔñʹÓÃTranswarp
Kafka 0.9°æ±¾£¬ÓÉÓÚÔö¼ÓÁËKafka¶ÓÁÐÄÚµÄkerberos°²È«ÈÏÖ¤¹¦ÄÜ£¬ÏûÏ¢¶ÓÁÐÖеÄÊý¾Ý¸ü°²È«¡£
HDFSºÍHyperbaseµÄÊý¾Ýͨ¹ýSQLÒÔ¼°JDBC½Ó¿Ú¿ª·Å¸øÓû§£¬ÆóÒµ¿ÉÒÔ¿ª·¢Serving
LayerÖÐ×ÔÉíÐèÒªµÄÒµÎñ¡£ÓÉÓÚÕâЩӦÓóÌÐòÊǾßÌåµÄÆóÒµÄÚ²¿ÒµÎñ£¬´Ë´¦²»×öÌÖÂÛ¡£
ϵͳ¸÷²ã»úÆ÷¹æ»®
ÓÐÁËÉÏÃæµÄ×é¼þÑ¡ÐÍ£¬ÏÂÃæÎÒÃÇ¿ÉÒÔ½øÐлúÆ÷¹æ»®¡£Ö÷Òª¿¼ÂǵÄÊÇÒÔϼ¸¸ö·½Ã棺
´æ´¢ÄÜÁ¦
¾ÍijµØÊжøÑÔ£¬Ã¿ÌìÔ¼ÓÐ1000wµÄ¹ý³µ¼Ç¼²úÉú£¬¸ß·åʱÆÚÿÃëÄÜÔ¼ÓÐ1wÌõ¹ý³µ¼Ç¼²úÉú£¬Ã¿Ìõ¹ý³µ¼Ç¼¶ÔÓ¦µÄ½á¹¹»¯Êý¾ÝÔ¼ÓÐ30¸ö×ֶΣ¬´óСΪ200Byte£»Ã¿Ì컹ÓÐ50wÕÅ×óÓÒ´óСԼΪ500KBµÄͼƬÊý¾Ý£¬°´Õչ滮Êý¾ÝÐèÒª´æ´¢µÄÖÜÆÚΪ2Ä꣬Òò´Ë¶Ô¼¯ÈºÈÝÁ¿ÒªÇóÈçÏ£º
½á¹¹»¯Êý¾Ý´æ´¢Èý·Ý¡¢Í¼Æ¬Êý¾Ý´æ´¢Á½·Ý£¬2ÄêµÄÊý¾Ý×ÜÁ¿Ô¼Îª£º
(1000w * 200B *3 + 50 w * 500KB * 2) * 365 * 2 = 344TB
ÿ̨»úÆ÷ÓÐ8¸öÓ²ÅÌ£¬Ã¿¸öÓ²ÅÌÈÝÁ¿Îª3TB£¬ÔòÐèÒªÊý¾Ý½ÚµãÊýΪ£º
344TB / (3TB*8) = 15̨
ÁíÍ⣬Hadoop·Ö²¼Ê½´æ´¢¼¯ÈºÐèÒª2̨¹ÜÀí½Úµã¡£
ʵʱ¼ÆËãµÄÐèÇó
ĿǰÐèÒª½øÐÐʵʱ´¦ÀíµÄÒµÎñ°üÀ¨£º
a. ʵʱ¼ì²âÒµÎñ£ºÓâÆÚδÄê¼ì¡¢ºÚÃûµ¥¡¢ÓâÆÚ䱨·Ï¡¢Á賿2µãµ½5µãÉÏ·ÐÐÊ»µÄ¿ÍÔ˳µÁ¾¡¢³µÖ÷¼Ýʻ֤ÎÞЧ³µÁ¾µÈ¡£
b. ʵʱ·ÖÎöÒµÎñ£º°üÀ¨Á÷Á¿Í³¼Æ¡¢ÂÃÐÐʱ¼ä·ÖÎö¡¢Ì×ÅÆ³µ¼ì²â¡¢Çø¼ä²âËٵȡ£
ÆäÖÐʵʱ¼ì²âÒµÎñÒÔ¼°Ì×ÅÆ³µ¼ì²âµÈÒªÇóÔÚÃë¼¶±ð·´À¡½á¹ûÒÔ¶ÔÎ¥·¨ÐÐΪ½øÐÐʵʱÀ¹½Ø£»·ÖÎöÒµÎñÒªÇóÔÚ·ÖÖÓ¼¶±ð¸üнá¹û¡£
°´ÕÕÿÃë1wÌõ¹ý³µ¼Ç¼¼ÆË㣬×ܹ²ÓÐ20+¸öÁ÷´¦ÀíÒµÎñ£¨±È¶ÔºÍ¸´ÔÓ·ÖÎö£©Í¬Ê±ÔËÐУ¬Ô¤¹ÀÐèҪʵʱ´¦Àí¼¯Èº»úÆ÷6̨¡£
ÁíÍ⣬ËùÓеĹý³µ¼Ç¼¶¼»áÔ¤Ïȱ»½ÓÈëKafka·Ö²¼Ê½ÏûÏ¢´¦Àí¼¯Èº£¬Ã¿Ìõ¼Ç¼дÈë3·Ý£¬±£´æ7Ì죬Ԥ¹ÀÐèÒªKafka¼¯Èº»úÆ÷4̨¡£
Åú´¦Àí·ÖÎöÒªÇó
³ýÁËʵʱ´¦ÀíÒµÎñÖ®Í⣬»¹ÐèÒª¶ÔÀúÊ·Êý¾Ý½øÐÐͳ¼Æ·ÖÎö£¬¶ÔÓÚʱ¼ä¿ç¶ÈÔÚÒ»¸öÔÂÄÚµÄͳ¼Æ·ÖÎöÐèÒªÔÚÃë¼¶·µ»Ø½á¹û£»¶ÔÓÚʱ¼ä¿ç¶ÈÔÚÈý¸öÔÂÒÔÉϵĸ´ÔÓͳ¼Æ·ÖÎöÐèÒªÔÚ·ÖÖÓ¼¶±ð·µ»Ø½á¹û¡£
ÒÀ¾ÝÉÏÊöµÄÒªÇó·ÖÎö£¬¸ø³ö»úÆ÷ÊýÄ¿ºÍÅäÖòο¼Í¼ÈçÏ£º

ͼ4 ijÖÇÄܽ»Í¨ÏµÍ³µÄÅäÖÃÇé¿ö
ϵͳ¼Ü¹¹
¸ÃÖǻ۽»Í¨ÏµÍ³µÄ¼Ü¹¹Í¼Èçͼ5Ëùʾ£º

ͼ5 ÖÇÄܽ»Í¨µÄÕûÌå¼Ü¹¹Í¼
ǰ¶Ë¿¨¿Ú»áʵʱ²É¼¯¹ýÍù³µÁ¾ÐÅÏ¢£¬²É¼¯µ½µÄ³µÁ¾ÐÅÏ¢Ê×Ïȱ»½ÓÈëKafka·Ö²¼Ê½ÏûÏ¢×ÜÏß¡£Kafka·Ö²¼Ê½ÏûÏ¢×ÜÏߣ¬»á¶ÔÕâЩÊý¾Ý½øÐйéÀà·Ö¼ð£¬·Ö·¢¸ø²»Í¬µÄ·þÎñ¼¯Èº£¬±ÈÈçʵʱÈë¿â·þÎñ¼¯Èº¡¢Î´Äê¼ì³µ¼à¿Ø·þÎñ¼¯ÈºµÈ¡£
¼ÙÉèÓв¿·ÖÊý¾Ý±»ËÍÈëµ½ÁËδÄê¼ì³µ¼à¿Ø·þÎñ¼¯ÈºÖУ¬¸Ã¼¯ÈºÐèÒª½«´ý¼ì²é³µÁ¾Óë³µÁ¾Êý¾Ý¿â½øÐÐÊý¾Ý±È¶Ô¡£ÎªÁ˼õÉÙÊý¾Ý±È¶Ôʱ¼ä£¬¸ÃϵͳԤÏȸù¾ÝÀúÊ·Êý¾ÝÉú³ÉÁËδÄê¼ì³µÁ¾Êý¾Ý¿â£¬ÓÉBatch
Layer²ãµÄÅú´¦ÀíÒýÇæÍê³É¡£´ý¼ì²é³µÁ¾Ö»ÐèÓëδÄê¼ì³µÁ¾Êý¾Ý¿â½øÐÐÔÚÏ߱ȶԼ´¿É£¬Èç¹û·¢ÏÖÎ¥Õ³µÁ¾£¬Ôò½øÐбê¼ÇÏÔʾ£¬²¢½øÐÐÔ¤¾¯¡£
ϵͳ֧³ÖµÄÒµÎñ
1. ʵʱ¼à¿ØÔ¤¾¯ÈÎÎñ
ʵʱ¼à¿ØÔ¤¾¯ÒµÎñÖ÷ÒªÓÉSpeed Layer²ãµÄTranswarp Stream¸ºÔ𣬰´ÕÕ¼¼Êõ¿ÉÒÔ·ÖΪÒÔÏÂÈýÀࣺ
a. ETL¹¦ÄÜ
½«ÊµÊ±²É¼¯µÄ¹ý³µÊý¾Ý£¬°´ÕÕÒ»¶¨µÄÇåϴת»¯¹æÔò½øÐд¦Àí£¬×ª»¯³É¹æ·¶µÄ¼Ç¼ºóдÈëºó¶Ë´æ´¢HyperbaseºÍ
Holodesk¡£ÆäÖÐHyperbaseΪ³Ö¾Ã»¯µÄÁÐʽ´æ´¢£¬±£´æËùÓеÄÀúÊ·¹ý³µÊý¾Ý£»HolodeskΪÁÙʱ´æ´¢£¬Ìṩ¸ßËٵķÖÎöÄÜÁ¦£¬¿ÉÒÔ±£´æÒ»ÖÜÒÔÄÚµÄ¶ÌÆÚÊý¾Ý¡£
b. ʵʱ¼ì²âÒµÎñ
×î¼òµ¥µÄ¼ì²â¹æÔò¿ÉÒÔÖ±½Ó¸ù¾Ý¹ý³µ¼Ç¼Åжϣ¬ÀýÈçÁ賿2µãµ½5µãÐÐÊ»µÄ³µÁ¾£»Æä´ÎÊǺÍһЩ»ù´¡±í½øÐбȶԵÄÒµÎñ£¬ÀýÈçºÚÃûµ¥³µÁ¾/δÄê¼ì³µÁ¾¼ì²â£¬ÐèÒªÊÂÏȽøÐÐÔ¤²éѯ£¬Éú³É²¢±£´æÏàÓ¦µÄºÚÃûµ¥³µÁ¾±í/δÄê¼ì³µÁ¾±í¡£
c. ʵʱ·ÖÎöÒµÎñ
ʵʱͳ¼ÆÒµÎñÈçÁ÷Á¿Í³¼Æ£¬Í¨³£»ùÓÚ´°¿Ú¼¼ÊõʵÏÖ¡£ÀýÈçÐèҪͳ¼Æ·ÖÖÓÁ÷Á¿¡¢Ð¡Ê±Á÷Á¿£¬¿ÉÒÔÉ趨һ¸ö³¤¶ÈΪ1·ÖÖӵĹö¶¯´°¿Ú£¬Í³¼ÆÃ¿·ÖÖÓµÄÁ÷Á¿£¬²¢»ùÓÚ·ÖÖÓÁ÷Á¿¶ÔСʱÁ÷Á¿½øÐиüС£
2. Êý¾Ýͳ¼Æ·ÖÎöÒµÎñ
a. »ùÓÚÈ«Á¿ÀúÊ·Êý¾ÝµÄͳ¼Æ·ÖÎö
ͨ¹ýInceptor×é¼þÄܹ»¶Ô´æ´¢ÔÚHyperbaseÖеÄÊý¾ÝʹÓÃSQLÓï¾ä½øÐÐͳ¼Æ·ÖÎö£¬±ÈÈçͳ¼ÆÒ»ÌìµÄ³µÁ÷Á¿£¬Ò»¸öÔµÄÅöײ´ÎÊýµÈ¡£HyperbaseµÄRowkey¾ßÓÐÈ¥ÖØµÄ¹¦ÄÜ£¬¿ÉÒÔ°ïÖúÓû§µÃµ½¾«×¼µÄͳ¼Æ½á¹û¡£
b. »ùÓÚÁÙʱÊý¾ÝµÄ½»»¥Ê½·ÖÎö
³ýÁËһЩ¹Ì¶¨µÄͳ¼Æ±¨±íÖ®Í⣬»¹ÐèÒª´¦ÀíһЩͻ·¢µÄÁÙʱÐÔͳ¼ÆÒµÎñ¡£ÀýÈç°éËæ³µ·ÖÎö£¬¾ÍÊÇͳ¼Æ³öÒ»¶Îʱ¼äÄÚºÍij¸ö³µÒ»Í¬ÐÐÊ»µÄ³µÁ¾£¬ÕâÔÚ·¸×ï·ÖÎöÖÐÓкܴóµÄ×÷Óá£TDHÖеÄHolodesk×é¼þÄܹ»ºÜºÃ´¦ÀíÕⲿ·ÖÒµÎñÐèÇ󣬴´½¨HolodeskÉϵÄÒ»ÕÅÓд°¿ÚÏÞÖÆµÄ±í£¨ÀýÈç´°¿Ú³¤¶ÈΪ1ÖÜ£¬³¬¹ý1ÖܵÄÊý¾Ý½«±»É¾³ý£©£¬Í¨¹ýTranswarp
Stream½«Êý¾ÝʵʱдÈëHolodesk£¬Ç°¶Ëͨ¹ýInceptorµÄSQLʵÏÖ½»»¥Ê½·ÖÎö¡£
½áÓï
Lambda¼Ü¹¹ÊÇ´óÊý¾ÝÖÐÒ»¸ö·Ç³£ÖØÒªµÄÉè¼Æ£¬µ«ÊÇÓÉÓÚÔÀíµÄ³éÏóºÍϵͳµÄ¸´ÔÓÐÔ£¬´óÊý¾Ý´ÓÒµÈËÔ±ÒªÉè¼Æ³öÒ»¸öÓÐÉú²úÖÊÁ¿µÄLambdaϵͳÊǷdz£ÓÐÌôÕ½ÐԵġ£
|