±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁËʵʱ¼ÆËãµÄÏà¹ØÖªÊ¶ÒÔ¼°Á½´óʵʱ¼ÆËãÒýÇæFlinkºÍSparkµÄ¸÷×ÔÌØµãµÈ£¬Ï£Íû¶ÔÄúÄÜÓÐËù°ïÖú¡£
±¾ÎÄÀ´×Ôcnblogs£¬ÓÉ»ðÁú¹ûÈí¼þLuca±à¼¡¢ÍƼö¡£ |
|
1. ǰÑÔ
Ŀǰʵʱ¼ÆËãµÄÒµÎñ³¡¾°Ô½À´Ô½¶à£¬ÊµÊ±¼ÆËãÒýÇæ¼¼Êõ¼°Éú̬ҲԽÀ´Ô½³ÉÊì¡£ÒÔ Spark ºÍ Flink
ΪÊ×µÄʵʱ¼ÆËãÒýÇæ£¬³ÉΪʵʱ¼ÆË㳡¾°µÄÖØµã¿¼ÂǶÔÏó¡£ÄÇô£¬½ñÌì¾ÍÀ´ÁÄÒ»ÁÄ»ùÓÚ Kafka µÄʵʱ¼ÆËãÒýÇæÈçºÎÑ¡Ôñ?
Spark or Flink?
2. ΪºÎÐèҪʵʱ¼ÆËã?
¸ù¾Ý IBM µÄͳ¼Æ±¨¸æÏÔʾ£¬¹ýÈ¥Á½ÄêÄÚ£¬µ±½ñÊÀ½çÉÏ 90% µÄÊý¾Ý²úÉúÔ´ÓÚÐÂÉ豸¡¢´«¸ÐÆ÷ÒÔ¼°¼¼ÊõµÄ³öÏÖ£¬Êý¾ÝÔö³¤ÂÊÒ²»áΪ´Ë¼ÓËÙ¡£¶ø´Ó¼¼ÊõÉϽ«£¬ÕâÒâζ×Å´óÊý¾ÝÁìÓò£¬´¦ÀíÕâЩÊý¾Ý½«±äµÃ¸ü¼Ó¸´ÔӺ;ßÓÐÌôÕ½ÐÔ¡£ÀýÈçÒÆ¶¯Ó¦ÓÃ¹ã¸æ¡¢ÆÛÕ©¼ì²â¡¢³ö×â³µÔ¤¶©¡¢»¼Õß¼à¿ØµÈ³¡¾°´¦Àíʱ£¬ÐèÒª¶ÔʵʱÊý¾Ý½øÐÐʵʱ´¦Àí£¬ÒÔ±ã×ö³ö¿ìËÙ¿ÉÐеľö²ß¡£

Ŀǰҵ½çÓпªÔ´²»ÉÙʵʱ¼ÆËãÒýÇæ£¬ÒÔ Apache »ù½ð»áµÄÁ½¿î¿ªÔ´ÊµÊ±¼ÆËãÒýÇæ×îÊÜ»¶Ó£¬ËüÃÇ·Ö±ðÊÇ
Apache Spark ºÍ Apache Flink ¡£½ÓÏÂÀ´£¬ÎÒÃÇÀ´ÁÄÒ»ÁÄËüÃǵÄʹÓó¡¾°¡¢ÓÅÊÆ¡¢¾ÖÏÞÐÔ¡¢ÏàËÆÐÔ¡¢ÒÔ¼°²îÒìÐÔ¡£·½±ã´ó¼ÒÔÚ×ö¼¼ÊõÑ¡ÐÍʱ£¬Ñ¡ÔñÇкÏÏîÄ¿³¡¾°µÄʵʱ¼ÆËãÒýÇæ¡£
2.1 ÈçºÎÀí½âÁ÷ʽÓëʵʱ?

˵Æðʵʱ¼ÆË㣬¿ÉÄÜ»á˵µ½Á÷ʽ¼ÆË㣬ÄÇôÁ÷ʽºÍʵʱÊÇ·ñÊǵȼ۵ÄÄØ?ÑϸñÒâÒåÉϽ²£¬ËüÃÇûÓбØÈ»µÄÁªÏµ¡£ÊµÊ±¼ÆËã´ú±íµÄÊÇ´¦ÀíÊý¾ÝºÄʱÇé¿ö£¬¶øÁ÷ʽ¼ÆËã´ú±íµÄÊÇ´¦ÀíÊý¾ÝµÄÒ»ÖÖ·½Ê½¡£
2.2 ʲôÊÇÁ÷ʽ´¦Àí?
Ê×ÏÈ£¬ËüÊÇÒ»ÖÖÊý¾Ý´¦ÀíÒýÇæ£¬ÆäÉè¼ÆÊ±¿¼ÂÇÁËÎޱ߽çµÄÊý¾Ý¼¯¡£Æä´Î£¬ËüÓëÅú´¦Àí²»Í¬£¬Åú´¦ÀíµÄ Job
ÓëÊý¾ÝµÄÆðµãºÍÖÕµãÓйØÏµ£¬²¢ÇÒ Job ÔÚ´¦ÀíÍêÓÐÏÞÊý¾Ýºó½áÊø£¬¶øÁ÷ʽ´¦ÀíÓÃÓÚ´¦ÀíÁ¬ÐøÊýÌì¡¢ÊýÔ¡¢ÊýÄê¡¢»òÊÇÓÀ¾ÃʵʱµÄÎÞ½çÊý¾Ý¡£
Á÷´¦ÀíµÄÌØµã£º
ÈÝ´íÐÔ£ºÈç¹û½Úµã³öÏÖ¹ÊÕÏ£¬Á÷ʽ´¦ÀíϵͳӦ¸ÃÄܹ»»Ö¸´£¬²¢ÇÒÓ¦¸Ã´ÓËüÀ뿪µÄλÖÃÔٴοªÊ¼´¦Àí;
״̬¹ÜÀí£ºÔÚÓÐ״̬´¦ÀíÒªÇóµÄÇé¿öÏ£¬Á÷ʽ´¦ÀíϵͳӦ¸ÃÄܹ»ÌṩһЩ»úÖÆÀ´±£´æºÍ¸üÐÂ״̬ÐÅÏ¢;
ÐÔÄÜ£ºÑÓʱӦ¾¡¿ÉÄܵÄС£¬ÍÌÍÂÁ¿Ó¦¾¡¿ÉÄܵĴó;
¸ß¼¶¹¦ÄÜ£ºÊ¼þʱ¼ä´¦Àí£¬´°¿ÚµÈ¹¦ÄÜ£¬ÕâЩ¾ùÊÇÁ÷ʽ´¦ÀíÔÚ´¦Àí¸´ÔÓÐèÇóʱËùÐèÒªµÄ¹¦ÄÜ;
2.3 ʲôʱºòÊʺÏÁ÷ʽ´¦Àí?
Á÷ʽ´¦Àí¿ÉÒÔ·ÖÎöÁ¬ÐøµÄÊý¾ÝÁ÷£¬ÔÚÕâÖÖ·½Ê½ÖУ¬Êý¾Ý±»ÊÓΪÁ¬ÐøÁ÷£¬´¦ÀíÒýÇæÔں̵ܶÄʱ¼äÄÚ ( ¼¸ºÁÃ×µ½¼¸·ÖÖÓ
) ÄÚÈ¡Êý¡¢·ÖÎö¡¢ÒÔ¼°ÏìÓ¦¡£ÏÂÃæÈÃÎÒÃÇÀ´¿´¿´Á÷ʽ´¦ÀíµÄ³¡¾°Ê¹Óó¡¾°£º
Òì³£¼ì²â£ºÁ÷ʽ´¦Àí¿ÉÒÔÓ¦ÓÃÓÚÁ¬ÐøµÄÊý¾ÝÁ÷²¢½üºõʵʱµÄ¼ì²âÒì³£¡£ÀýÈ磬ÔÚ½ðÈÚ½»Ò×Êý¾ÝÖУ¬ÆÛÕ©ÐÔ½»Ò׿ÉÒÔ±»ÊÓΪÒì³££¬Á÷ʽ´¦Àí¿ÉÒÔ¼ì²âµ½ÕâЩ£¬±£»¤ÒøÐкͿͻ§ÃâÊܲÆÎñËðʧ¡£
ÒµÎñÁ÷³Ì¼à¿Ø£ºÒµÎñÁ÷³ÌÉæ¼°Ìض¨ÓòÖеĶà¸öʼþ¡£ÀýÈ磬ÔÚµç×ÓÉÌÎñÒµÎñÖУ¬´Óϵ¥¡¢Ö§¸¶¡¢³ö¿â¡¢ËÍ»õ¡¢ÔÙµ½Óû§Ç©ÊÕµÄËùÓÐʼþ¶¼¿ÉÒÔ±»ÊÓΪһ¸öÒµÎñÁ÷³Ì¡£Á÷´¦Àí¿ÉÓÃÓÚ¼à¿Ø´ËÀàÁ÷³ÌµÄÒì³£Çé¿ö£¬ÀýÈçÔÚʱ¼ä·¶Î§ÄÚΪÍê³É¡¢½»¸¶ÉÌÆ·Ê±³ö´íµÈ¡£
¸æ¾¯£ºÁ÷ʽ´¦Àí¿ÉÓÃÓÚ¸ù¾ÝÖ¸¶¨¹æÔò´¥·¢¸æ¾¯£¬Âú×ãÌØ¶¨Ìõ¼þ£¬¿ÉÒÔʵʱ½«¸æ¾¯·¢Ë͵½²»Í¬µÄÄ¿±ê¡£
3. Spark
Spark ÒѳÉΪÅú´¦ÀíÖÐ Hadoop µÄÕæÕý¼Ì³ÐÕߣ¬Ò²ÊǵÚÒ»¸öÍêÃÀÖ§³Ö Lambda ¼Ü¹¹µÄ¿ò¼Ü¡£Spark
ÊÜ»¶Ó¶È¼«¸ß£¬³ÉÊì²¢Çҹ㷺ʹÓá£Spark Ãâ·ÑÌṩ Spark Streaming£¬ËüʹÓÃ΢Åú´¦Àí½øÐÐÁ÷ʽ´«Êä¡£ÔÚ
Spark2.0 Ö®ºó£¬Ìí¼ÓÁËÐí¶àÓÅÐãµÄ¹¦ÄÜ ( ÀýÈç¶Ô tungsten¡¢watermarks¡¢event
time ´¦ÀíµÄÖ§³Ö ) £¬Í¬Ê±½á¹¹»¯Á÷Ò²¸ü¼Ó³éÏ󣬽ØÖ¹±¾Æª²©¿Í Spark ·¢²¼µÄ¿ÉÓð汾Ϊ 2.4.3£¬¿ÉÒÔÔÚ×îа汾ÖÐÔÚ΢Åú´¦ÀíºÍÁ¬ÐøÁ÷ģʽ֮¼ä½øÐÐÇл»¡£
3.1 ΢Åú´¦Àí & Á¬ÐøÁ÷´¦Àí
½á¹¹»¯Á÷ʽ´«ÊäĬÈϲÉÓÃ΢Åú´¦ÀíÖ´ÐУ¬Spark Á÷ʽ¼ÆËãÒýÇæ»á¶¨Ê±¼ì²éÁ÷Êý¾Ý¡£ÔÚÁ¬ÐøÁ÷´¦ÀíÖУ¬Spark
²»»áÆô¶¯¶¨Ê±ÈÎÎñ£¬¶øÊÇÆô¶¯Ò»×鳤ʱ¼äÔËÐеÄÈÎÎñ£¬ÕâЩÈÎÎñ¿ÉÒÔÁ¬Ðø¶ÁÈ¡¡¢´¦Àí¡¢Ð´ÈëÊý¾Ý¡£

΢Åú´¦ÀíÖУ¬Çý¶¯³ÌÐòͨ¹ý½«¼Ç¼ Offset ±£´æµ½Ô¤Ð´ Log À´¼ì²â½ø¶È£¬È»ºó¿ÉÒÔʹÓøà Log
ÖØÐ½øÐвéѯ¡£ÐèҪעÒâµÄÊÇ£¬ÔÚ΢Åú´¦Àí´¦Àí¿ªÊ¼Ö®Ç°£¬ÐèÒªÔÚÏÂÒ»¸ö΢Åú´¦ÀíÖд¦ÀíµÄ·¶Î§ Offset
±£´æµ½ Log ÖУ¬ÒÔ±ã»ñȡȷ¶¨ÐÔµÄÖØÐÂÖ´ÐкͶ˵½¶ËÓïÒå¡£Òò´Ë£¬Ô´¼Ç¼¿ÉÄÜÐèÒªµÈ´ýµ±Ç°µÄ΢Åú´¦Àí´¦ÀíÍê³É£¬È»ºó¼Ç¼Æä
Offset ¡£
Á¬ÐøÁ÷´¦ÀíÖУ¬Í¨¹ýÍêÉÆºÍ¸Ä½øËã·¨À´¼ì²â²éѯ½ø¶È£¬ÌØÊâ±ê¼ÇµÄ¼Ç¼±»Ð´È뵽ÿ¸öÈÎÎñµÄÊäÈëÊý¾ÝÁ÷ÖС£µ±ÈÎÎñÓöµ½±ê¼Çʱ£¬ÈÎÎñ»áÒì²½±¨¸æ´¦ÀíµÄ×îºóÒ»¸ö
Offset £¬Ò»µ©Çý¶¯³ÌÐòÊÕµ½Ð´Èë½ÓÊÕÆ÷µÄËùÓÐÈÎÎñµÄ Offset £¬Ëü¾Í»á½«ËüÃÇдÈëԤд Log
ÖС£ÓÉÓÚ Checkpoint ÍêÈ«Òì²½£¬Òò´ËÈÎÎñ¿ÉÒÔ²»¼ä¶ÏµÄ¼ÌÐø£¬²¢ÌṩһÖµĺÁÃë¼¶ÑÓʱ¡£
3.2 Streaming

¶ÔÓÚ Spark Streaming À´Ëµ£¬µ±²»Í¬µÄÊý¾ÝÀ´Ô´ÊäÈë½øÀ´Ê±£¬»ùÓڹ̶¨µÄʱ¼ä¼ä¸ô£¬»áÐγÉһϵÁй̶¨²»±äµÄÊý¾Ý¼¯»òÕßʼþ¼¯
( ÀýÈç Kafka¡¢Flume µÈ ) ¡£ÕâÕýºÃºÍ Spark RDD »ùÓڹ̶¨µÄÊý¾Ý¼¯ÎǺϣ¬´Óÿһ¸öÅú´¦ÀíÀ´¿´£¬¿Õ¼äά¶ÈµÄ
RDD ÒÀÀµ¹ØÏµÒ»Ö£¬²»Í¬µÄÊÇÕâ 4 ¸öÅú´¦ÀíÊäÈëµÄÊý¾Ý¹æÄ£ºÍÊý¾ÝÄÚÈݲ»Í¬£¬ËùÒÔÉú³ÉµÄ RDD ÒÀÀµ¹ØÏµÊµÀý²»Ò»Ñù¡£
3.3 ÓÅÊÆ
ÁоÙÁË Spark ³£¼ûÓÅÊÆ£¬ÈçÏÂËùʾ£º ,sykv.cn
Ö§³Ö Lambda£¬ÇÒÔÚ Spark ÖÐÃâ·ÑʹÓÃ
¸ßÍÌÍÂÁ¿£¬ÊÊÓÃÓÚ²»ÐèÒª×ÓÑÓʱµÄÓÃÀý
ÈÝ´íÐÔ£¬Ä¬ÈÏʹÓÃ΢Åú´¦Àí
¸ß¶È³éÏóµÄ API
ÉçÇø»îÔ¾¶È¸ß
Ö§³Ö Exactly Once
3.4 ÏÞÖÆ
ÁíÍ⣬Spark Ò²ÓÐËü²»×ãµÄµØ·½£¬ÈçÏÂËùʾ£º
²»ÊÇÕæÕýÒâÒåÉϵÄʵʱ¼ÆË㣬²»Äܹ»Âú×ãµÍÑÓʱÐèÇó
ÐèÒªµ÷ÕûµÄ²ÎÊýÌ«¶à£¬ºÜÄÑ×öµ½È«Ãæ
ÔÚÐí¶à¸ß¼¶¹¦ÄÜÖÐÂäºóÓÚ Flink
4. Flink
Flink Ò²ÊÇÀ´×Ô Spark ÀàËÆµÄѧÊõ±³¾°£¬Spark À´×Ô¼ÓÖÝ´óѧ²®¿ËÀû·ÖУ£¬Flink À´×Ô°ØÁÖ´óѧ¡£Ïñ
Spark Ò»Ñù£¬ËüÒ²Ö§³Ö Lambda £¬µ«ÊµÏÖÓë Spark ÍêÈ«Ïà·´¡£Flink ±¾ÖÊÉÏÊÇÒ»¸öÕæÕýµÄʵʱ¼ÆËãÒýÇæ£¬½«Åú´¦Àí×÷ΪÓÐÏÞÊý¾ÝÁ÷µÄÌØÊâÇé¿ö¡£ËäÈ»Á½¸ö¼ÆËã¿ò¼ÜÖеÄ
API ÏàËÆ£¬µ«ËüÃÇÔÚʵÏÖÖÐûÓÐÈκÎÏàËÆÖ®´¦£¬ÔÚ Flink ÖУ¬Map¡¢Filter¡¢Reduce
µÈ¸÷¸öº¯ÊýʵÏÖΪ³¤Ê±¼äÔËÐеÄÔËËã·û ( ÀàËÆÓÚ Storm ÖÐµÄ Bolt ) ¡£
4.1 ʲôÊÇ Apache Flink?

Flink ÊÇÒ»¸ö¿ªÔ´µÄʵʱ¼ÆËãÒýÇæ£¬ÊÇʵʱ¼ÆËãÁìÓòµÄÁìµ¼Õß¡£ËüÓµÓгöÉ«µÄͼ¼ÆËãºÍ»úÆ÷ѧϰ¹¦ÄÜ£¬Æäµ×²ãÖ§³Ö
On YARN ģʽ£¬ÇÒÌṩÁ˱¾µØ & ·Ö²¼Ê½Ä£Ê½£¬ÒÔ¼° Docker & Kubernetes
µÈÈÝÆ÷²¿Êð¡£
4.2 ÈçºÎʹÓà Flink ½â¾öÎÊÌâ?
ÔÚµÍÑÓʱ³¡¾°£¬ÐèҪʵʱÊý¾Ý£¬ÒÔ±ãÄܹ»¸ü¿ìµÄ¼ì²âºÍ½â¾ö¹Ø¼üʼþ¡£ÀýÈ磬ÔÚʹÓà Flink ֮ǰ£¬¼ÆËãµÄ»ù±¾ÒµÎñÖ¸±ê£¬ÊµÏÖµÄÑÓʱʱ¼äԼΪ
3 µ½ 4 Сʱ£¬ÕâÒâζ×Å£¬Èç¹û¹¤³ÌʦÔÚÔçÉÏ 10 µã×óÓÒ¼ì²âµ½ÒµÎñÖ¸±ê±ä»¯Òì³££¬Ö»ÄÜÔÚÏÂÎç 14
µã×óÓÒ¿ªÊ¼ÅŲ顣Èç¹ûÄܹ»Á¢Âí½â¾ö£¬ÔòÖ»ÄÜÔÚÏÂÎç 18 ×óÓÒʱÀ´ÑéÖ¤½â¾ö·½°¸£¬ÕâÑùʵÏÖÆðÀ´Ð§Âʲ»ÊǺܸߡ£
¼ÙÈçÄãµÄÒµÎñÊý¾ÝÊÇ»ùÓÚʱ¼äÐòÁеģ¬ÄÇôÎÒÃÇÐèҪʹÓÃʼþʱ¼äÀ´´¦ÀíÔÚʱ¼ä´°¿ÚÄÚ¶ÔÒµÎñÖ¸±ê½øÐзÖ×顣ͬʱ£¬Flink
Ò²¿ÉÒÔºÜÇáËɵÄÓë´æ´¢ÔÚ Kafka ºÍ HDFS ÖеÄÒµÎñÊý¾Ý½øÐм¯³É¡£ÁíÍ⣬Flink ¾ßÓÐÁ¼ºÃµÄ·Ç¹¦ÄÜÌØÐÔ£¬±ãÓÚÔÚÉú²úÖÐÔËÐУ¬Ò×ÓÚÓ벻ͬµÄ¼à¿Øºó¶Ë¼¯³É
( ÀýÈç Graphite¡¢Prometheus µÈ ) £¬ÒÔ¼°ÌṩÁ¼ºÃµÄ UI ½çÃæ¡£´ËÍ⣬Flink
¹¤×÷µÄ¿ìËÙ¿ª·¢ÖÜÆÚÒÔ¼°¼òµ¥µÄÖ´ÐÐÄ£ÐÍʹµÃѧϰÇúÏ߯½ÎÈ£¬¿ª·¢Ð§Âʸߡ£
4.3 ʲôÊÇ´°¿ÚºÍʼþʱ¼ä?
Flink Ïà±È½Ï Spark Streaming ²»½öÌṩÁ˸üµÍµÄÑÓʱ£¬¶øÇÒ Flink »¹¶Ô´°¿ÚºÍʼþʱ¼äÌṩÁ˸üºÃµÄÖ§³Ö¡£
4.3.1 ´°¿Ú
ÏÖʵ³¡¾°ÖУ¬´ó²¿·ÖµÄÊý¾ÝÀ´Ô´¶¼ÊÇÎÞ½çµÄ£¬ºÜ¶àÇé¿öÏ£¬ÎÒÃÇ»á¶Ô¹Ì¶¨Ê±¼ä¼ä¸ôµÄÊý¾Ý½øÐÐͳ¼Æ£¬±ÈÈçÿ¸ô
10 Ãëͳ¼ÆÒ»Ï¼¯Èº·þÎñµÄ QPS £¬´Ëʱ£¬´°¿Ú»úÖÆÄܹ»ºÜºÃµÄ°ïÖúÎÒÃÇʵÏÖÕâÀàÐèÇó¡£

1. Çé¿öÒ»£º¼ÙÉèÊý¾ÝÔ´·Ö±ðÔÚʱ¼ä 14 Ã룬µÚ 14 ÃëºÍµÚ 16 Ãë²úÉúÏûÏ¢ÀàÐÍ K µÄÏûÏ¢
( ´°¿Ú´óСΪ 10 Ãë ) ¡£ÕâЩÏûÏ¢½«ÂäÈë´°¿ÚÖУ¬ÈçÉÏͼËùʾ£¬ÔÚµÚ 14 Ãë²úÉúµÄǰÁ½¸öÏûÏ¢½«ÂäÈë´°¿Ú
1 ( 5 Ãë~15 Ãë ) ºÍ´°¿Ú 2 ( 10 Ãë~20 Ãë ) £¬µÚ 16 Ãë²úÉúµÄµÚÈý¸öÏûÏ¢½«ÂäÈë´°¿Ú
2 ( 10 Ãë~20 Ãë ) ºÍ´°¿Ú 3 ( 15 Ãë~25 Ãë ) ¡£Ã¿¸ö´°¿Ú·¢³öµÄ×îÖÕ¼ÆÊý·Ö±ðΪ
( F , 2 )¡¢( F , 3 )¡¢( F , 1 )£¬ÕâÊÇÒ»ÖÖÀíÏëµÄ״̬¡£
2. Çé¿ö¶þ£º¼ÙÉèÆäÖÐÒ»ÌõÏûÏ¢ ( µÚ 14 ÃëÉú²úµÄ ) ÓÉÓÚÍøÂçÔÒòµ½´ïʱÑÓʱÁË 5 Ãë (
µÚ 19 Ãëµ½´ï ) £¬ÄÇô´ËʱÏûÏ¢ÔÚ´°¿ÚµÄ·Ö²¼ÈçºÎÄØ?ÑÓʱµÄÏûÏ¢ÂäÈëµ½´°¿Ú 2 ºÍ´°¿Ú 3£¬ÒòΪµÚ
19 ÃëÔÚ 10 Ãë~20 ÃëºÍ 15 Ãë~25 ÃëÕâÁ½¸ö´°¿Ú¡£¶ÔÓÚ´°¿Ú 2 À´Ëµ£¬¼ÆËãûÓÐʲôÎÊÌâ
( ÒòΪÏûÏ¢Ó¦¸ÃÂäÈë¸Ã´°¿Ú ) £¬µ«ÊÇËüÓ°ÏìÁË´°¿Ú 1 ºÍ´°¿Ú 3 µÄ½á¹û¡£

4.3.2 ʼþʱ¼ä
ÏÖÔÚÎÒÃdz¢ÊÔʹÓÃʼþʱ¼äÀ´½â¾öÇé¿ö¶þµÄÑÓʱÎÊÌâ¡£ÒªÆôÓÃʼþʱ¼ä´¦Àí£¬ÐèÒªÒ»¸öʱ¼ä´ÁÌáÈ¡Æ÷£¬´ÓÏûÏ¢ÖÐÌáȡʼþʱ¼äÐÅÏ¢¡£Á÷ʽ¼ÆËã°´ÕÕÊý¾ÝµÄʼþʱ¼äÀ´½«Êý¾Ý·ÖÅäµ½¶ÔÓ¦µÄ´°¿Ú£¬¶ø²»Êǰ´ÕÕ´¦ÀíÊý¾ÝµÄʱ¼ä£¬´¦Àí½á¹ûÈçÏÂͼ¡£

ÒýÈëʼþʱ¼äºóµÄ½á¹û¿´ÆðÀ´¸üºÃÁË£¬´°¿Ú 2 ºÍ´°¿Ú 3 ·¢³öÁËÕýÈ·µÄ½á¹û£¬µ«ÊÇ´°¿Ú 1 ÈÔÈ»ÊÇ´íÎóµÄ¡£Flink
ûÓн«ÑÓ³ÙµÄÏûÏ¢·ÖÅ䏸´°¿Ú 3£¬ÒòΪËüÏÖÔÚ¼ì²éµÄÊÇÏûÏ¢µÄʼþʱ¼äÁË£¬²¢ÇÒÀí½âËü²»ÔÚ´°¿ÚÖС£µ«ÊÇΪʲôûÓн«ÏûÏ¢·ÖÅ䏸´°¿Ú
1 ÄØ?ÔÒòÔÚÓÚÑÓ³ÙµÄÏûÏ¢µ½´ïϵͳʱ ( µÚ 19 Ãë ) £¬´°¿Ú 1 µÄÆÀ¹ÀÒѾÍê³ÉÁË ( 15
Ãë ) ¡£
4.3.3 ˮӡ
ΪÁË´ïµ½½â¾öÇé¿ö¶þµÄÎÊÌ⣬´ïµ½Çé¿öÒ»µÄÔ¤ÆÚ½á¹û¡£ÒýÈëˮӡ»úÖÆ£¬Ë®Ó¡»úÖÆ¿ÉÒÔ¿´×÷ÊÇÒ»ÖÖ¸æËß Flink
Ò»¸öÏûÏ¢ÑÓ³Ù¶àÉٵķ½Ê½¡£ÏÖÔÚ½«Ë®Ó¡ÉèÖÃΪµ±Ç°Ê±¼ä¸º 5 Ã룬¸æËß Flink Ï£ÍûÏûÏ¢×î¶àÓÐ 5 ÃëµÄÑÓ³Ù£¬ÕâÊÇÒòΪÿ¸ö´°¿ÚÔÚˮӡͨ¹ýʱ±»ÆÀ¹À¡£ÓÉÓÚÉèÖõÄˮӡʱ¼äΪµ±Ç°Ê±¼ä¸º
5 Ã룬ËùÒÔ´°¿Ú 1 ( 5 Ãë~15 Ãë ) ½«ÔÚµÚ 20 Ãëʱ±»ÆÀ¹À£¬ÒÔ´ËÀàÍÆ£¬´°¿Ú 2 ( 10
Ãë~20 Ãë ) ½«ÔÚµÚ 25 Ãëʱ½øÐÐÆÀ¹À¡£ÓÅ»¯ºóµÄ½á¹ûÈçÏ£º

×îºóµ÷ÕûÒýÈëˮӡ»úÖÆºó£¬µÃµ½ÕýÈ·µÄ½á¹û£¬Õâ 3 ¸ö´°¿Ú¾ù°´ÕÕÔ¤ÆÚµÄ·½Ê½·¢³ö¼ÆÊý£¬¼´ ( F , 2
) ¡¢( F , 3 ) ¡¢( F , 1 ) ¡£
5. ×ܽá ( Spark vs Flink ) ,sykv.cn

Á˽âÁË Spark ºÍ Flink ¸÷×ÔµÄÌØµãºó£¬ÖªµÀÁË Spark Streaming ͨ¹ýСÅúÁ¿µÄ·½Ê½±£Ö¤ÁËÍÌ͵ÄÇé¿öÏ£¬Í¬Ê±ÌṩÁË
Exactly Once ÓïÒ壬µ«ÊDz»ÊÇÑϸñÒâÒåÉϵÄʵʱ£¬¶øÇÒÓÉÓÚ΢Åú´¦ÀíµÄ·½Ê½£¬¶Ô´°¿ÚºÍʼþʱ¼äµÄÖ§³Ö±È½ÏÓÐÏÞ¡£Flink
²ÉÓ÷ֲ¼Ê½¿ìÕյķ½Ê½ÊµÏÖÁËÒ»¸ö¸ßÍÌÍ¡¢µÍÑÓʱ£¬²¢ÇÒÖ§³Ö Exactly Once µÄʵʱ¼ÆËãÒýÇæ£¬Í¬Ê±
Flink µÄʵʱ¼ÆËãÒýÇæÒ²ÄܸüºÃÖ§³Ö´°¿ÚºÍʼþʱ¼ä¡£
ͨ¹ý¶Ô Spark ºÍ Flink ÌØµãµÄÕÆÎÕ£¬ÔÙ½áºÏʵ¼ÊµÄÏîÄ¿ÐèÇó¡¢ÒµÎñ³¡¾°¡¢ÒÔ¼°¼¼Êõ´¢±¸£¬À´Ñ¡È¡×îÊʺϵļÆËãÒýÇæ¡£
|