±à¼ÍƼö: |
±¾ÎĽ²ÊöÁ÷ʽ¼ÆËãÆ½Ì¨
£¬ÎªÊ²Ã´ÒªÑ¡ÔñFlink £¬ÊµÊ±Êý¾Ý½ÓÈë £¬Êý¾ÝͨµÀ £¬£¬Flink SQLÉú²úʵ¼ù
£¬Ï£Íû¶ÔÄúÓÐËù°ïÖú
±¾ÎÄÀ´×ÔÓÚdbaplus£¬ÓÉ»ðÁú¹ûÈí¼þDelores±à¼¡¢ÍƼö¡£ |
|
±´¿ÇÕÒ·¿Ä¿Ç°ÓÐ1000¶àÈ˵IJúÆ·¼¼ÊõÍŶӡ£´ÓʵʱÊý¾ÝÓ¦ÓýǶȣ¬¹«Ë¾ÄÚÖ÷ÒªÓ¦ÓõÄʵʱÊý¾Ý£¬Ò»¸öÊÇÏßÉϵÄÈÕÖ¾£¬´ó¸ÅÓÐÁ½Ç§¶à¸öÏßÉϵķþÎñ£¬Ã¿¸ö·þÎñÓÖÊä³öÁ˺ܶàµÄÈÕÖ¾£¬ÈÕÖ¾Êý¾ÝÊÇÁ÷ʽÊý¾ÝÓ¦ÓÃ×î¶àµÄ¡£µÚ¶þ²¿·Ö¾ÍÊÇÂñµã£¬ÔÚ APP¡¢web ¶ËÉϱ¨µÄ¾¼ÍÈË×÷ÒµÇé¿öºÍ C ¶ËÓû§µÄÐÐΪ£¬Õⲿ·Öͨ¹ýǰ¶ËµÄÂñµã¼¼ÊõÉϱ¨¡£µÚÈý²¿·Ö¾ÍÊÇÒµÎñµÄÊý¾Ý£¬ÒµÎñÓà kafka ×öÏûÏ¢¶ÓÁвúÉúµÄʵʱÊý¾Ý¡£
Á÷ʽ¼ÆËãÆ½Ì¨
1¡¢Á÷ʽ¼ÆËãÆ½Ì¨

ƽ̨ĿǰÖ÷Òª½¨Éè Spark Streaming¡¢Flink Á½ÖÖÔÚʵʱ¼ÆËãÖбȽϳ£¼ûµÄ¼ÆËãÒýÇæ¡£Æ½Ì¨»¯µÄ±³¾°¾ÍÊÇÔçÆÚÈç¹û¹«Ë¾ÄÚÓÐÒµÎñÏëÓÃÊý¾ÝÁ÷½øÐмÆË㣬¿ÉÄÜÐèÒªÉêÇë¿Í»§¶Ë£¬×Ô¼ºÈ¥´î½¨Ò»¸ö¿Í»§¶Ë£¬È»ºóÏò¼¯ÈºÉÏÌύʵʱ×÷Òµ¡£Õâ¸ö²úÉúµÄÎÊÌâ¾ÍÊÇÈç¹ûÿ¸öÒµÎñ·½¶¼È¥×Ô¼ºÕâÑù×ö³É±¾±È½Ï¸ß£¬Ã¿¸öÒµÎñ¶¼ÐèÒª¹ØÐÄ×Ô¼º×÷ÒµµÄÔËάÎÊÌ⣬»¹ÓÐ¼à¿Ø£¬ÊµÊ±Êý¾Ý×÷ÒµµÄ¼à¿Ø½¨ÉèµÄˮƽҲÊDzβÆë¡£Spark Streaming¡¢Flink ¶ÔÓÚÒµÎñͬѧֱ½Ó¿ª·¢Ò²ÓÐÒ»¶¨µÄѧϰ³É±¾£¬ºÜÄÑÖ±½ÓÓÃÉÏ´óÊý¾ÝµÄÄÜÁ¦×öʵʱ¼ÆËã¡£
ÎÒÃǼÆËãÆ½Ì¨Á÷Êý¾ÝÔ´Ö÷Òª¶¼ÊÇÓà Kafka¡£Kafka Êý¾ÝÖÐÊý¾Ý·ÖΪ¼¸À࣬һ¸öÊÇÊý¾ÝÁ÷£¬Êý¾ÝÁ÷Ö¸µÄÊÇÏßÉϵÄÒµÎñÈÕÖ¾¡¢·ÃÎÊÈÕÖ¾µÈ£¬»áÊÕ¼¯µ½Êý¾ÝÁ÷ƽ̨¡£Binlog ÊÇÏßÉÏ MySQL¡¢TIDB ²úÉúµÄ binlog ×÷ΪʵʱÊý¾ÝÔ´¡£Dig ÊÇÄÚ²¿Ç°¶ËÂñµãÏîÄ¿µÄ´úºÅ¡£
¼ÆËãÆ½Ì¨µ×²ã¼¯ÈºÊ¹Óà YARN ×ö×ÊÔ´µ÷¶È¡£ÔÙÉϲã¾ÍÊÇÎÒÃÇÏÖÔÚÖ÷Òª»ùÓÚÉçÇø°æ Flink¡¢À©Õ¹ÁË¿ªÔ´ Flink µÄ SQL ÄÜÁ¦¡£»¹ÓÐÌṩһЩͨÓõÄʵʱ´¦ÀíÄ£°å¡£Á÷¼ÆËãµÄÊä³öÒª¸²¸ÇÏßÉÏÒµÎñËùÓÐÐèÒªµÄ´æ´¢·ÖÎöÒýÇæ£¬ÀýÈç ES¡¢Kafka¡¢Hbase µÈµÈ¡£
ÔÚÕâЩµ×²ã»ù´¡Ö®ÉÏ£¬Ê×ÏÈÒª×öµÄ¾ÍÊÇʵʱÈÎÎñµÄ¹ÜÀí¹Ü¿Ø£¬°üÀ¨ÈçºÎ°ïÖúƽ̨ÉÏÕâЩËùÓÐ Flink »òÕß Spark ÈÎÎñ£¬½øÐÐ×ÊÔ´µÄµ÷ÓÅ£¬¶ÔʵʱÊý¾ÝÁ÷ÖеÄÊý¾ÝµÄÔªÊý¾Ý»¯¡£ÁíÍ⻹ÓÐÔÚ Web ¶ËÌṩµÄ SQL IDE¡¢ÈÎÎñÔËÐÐ״̬µÄ¼à¿Ø±¨¾¯¡£ÔÚ¼ÆËãÆ½Ì¨Ö®ÉÏÒµÎñ·½×öµÄһЩӦÓãºÖ¸±ê·ÖÎö¡¢ÊµÊ±ÌØÕ÷¡¢°²È«·ç¿Ø¡¢ETL¡¢ÊµÊ±ÍƼöµÈµÈ¡£
2¡¢Ä¿Ç°ÏÖ×´
Ŀǰ YARN ƽ̨´ó¸ÅÓÐÆß°Ù¶à¸ö½Úµã£¬Ò»Ç§¶à¸öʵʱÈÎÎñ£¬Ã¿ÌìµÄÏûÏ¢Á¿Ç§ÒÚ¼¶£¬¸ß·åµ¥¸öÈÎÎñÏûÏ¢Á¿°ÙÍòÌõ/s¡£
3¡¢ÎªÊ²Ã´ÒªÑ¡ÔñFlink

Flink ÌṩÁË Exactly-Once Ò»ÖÂÐÔÓïÒ壬²¢ÇÒ¾ßÓзdz£ÍêÉÆµÄ¶àÖÖ´°¿Ú»úÖÆ£¬ÒýÈëÁË Event Time Óë WaterMark£¬»¹Ìṩ·á¸»×´Ì¬µÄ״̬·ÃÎÊ¡£Flink SQL ½µµÍÁËʵʱ¼ÆËãµÄʹÓÃÃż÷£¬²¢ÇÒ Flink ÉçÇø·Ç³£»îÔ¾¡£
ÎÒÃÇÏ£Íû¸ü¶àʹÓà SQL µÄ·½Ê½¿ª·¢¼ÆËãÈÎÎñ¡£SQL µÄºÃ´¦ÔÚÓÚÎÒÃÇÈç¹ûÓÃд´úÂëµÄ·½Ê½¼ÆËãÐèÒª´Óн¨¹¤³Ì¿ªÊ¼¡¢ÒýһЩÏà¹ØµÄÒÀÀµ¡¢±àÂë¡¢´ò°ü¡¢Ìá½»¡£°ÑÕâ¸öʱä³É SQL µÄ·½Ê½Ö»ÐèÒª SQL Îı¾¡£ÎÒÃÇÓÃÆ½Ì¨µÄ SQL ½âÎöÒýÇæÈ¥¼ÓÔØÃ¿¸öÈÎÎñµÄ SQL Îı¾£¬¾Í¿ÉÒÔÉú³ÉÒ»¸ö SQL ÈÎÎñ¡£
4¡¢ÊµÊ±Êý¾Ý½ÓÈë

×îÖÕµÄÊý¾ÝÁ÷ƽ̨ÊÇ Kafka ¼¯Èº¡£·þÎñÆ÷ÉϵÄÈÕÖ¾Õⲿ·ÖÊý¾ÝÊÇÔõôµ½´ï Kafka ¼¯ÈºµÄÄØ£¿ÎÒÃÇÊÇͨ¹ýÒ»¸ö˽ÓÐÔÆÆ½Ì¨¡£ÒµÎñ·½¿ÉÒÔÔÚ˽ÓÐÔÆÉÏÌṩÏîÄ¿ÃûÓëÎļþ·¾¶£¬Ìá½»×Ô¼ºµÄ²É¼¯ÉêÇ룬ÓÉÔËάÈËÔ±ÉóºËÖ®ºó£¬×Ô¶¯Ï·¢ÅäÖÃͨ¹ý rsyslog ½«ÊµÊ±µÄÈÕÖ¾Éϱ¨µ½ topic ÉÏ£¬×îÖÕµ½Êý¾ÝÁ÷ƽ̨¡£

1£©ÔªÊý¾Ý»¯
¶ÔÓÚÊý¾ÝÁ÷ƽ̨ÖеÄʵʱÊý¾Ý¡£ÎÒÃÇ»áÓÐÒ»¸ö³õÆÚµÄ´¦Àí£¬¶Ô±ê×¼µÄÊý¾Ý¸ñʽ±ÈÈç Json Êý¾Ý¡¢Tab ·Ö¸ô£¬¿ÉÒÔÔ¤ÏȽâÎöʵʱÊý¾ÝÉú³ÉËüµÄ Schema£¬Èç¹ûºóÆÚ½øÐÐʵʱ¼ÆËãÓõ½ SQL£¬¿ÉÒÔ¸ù¾ÝÎÒÃǽâÎöµÄÔªÊý¾Ý°ïÖúÓû§×Ô¶¯µÄÉú³É DDL¡£½ÚÊ¡Á˺ܶàÈÎÎñ¿ª·¢¹ý³ÌÖз±ËöµÄ½¨±í²Ù×÷¡£
2£©ÊµÊ±Ôƶ˿ØÖÆÌ¨
ÊµÊ±ÔÆ¶Ë¿ØÖÆÌ¨ÆäʵÊÇ»ùÓÚ Kafka ×öµÄʵʱ¿ØÖÆÌ¨Ïû·Ñ¡£Í¨³£ÐèÒªÔ¤ÀÀ Kafka ÖеÄÊý¾Ý¶¼ÊÇÈ¥¿Í»§¶ËÊäÈëÃüÁÔÚʵ¼ÊÊý¾ÝÁ÷µÄʹÓùý³ÌÖУ¬ÓкܶàÓû§ÓÐÔ¤ÀÀÊý¾ÝµÄÐèÇó£¬ÎªÁËͳһ¹ÜÀí¿Í»§¶ËÎÒÃǰÑËüÇ¨ÒÆµ½ÁË web ¶Ë£¬¿ÉÒÔͨ¹ý web ¶ËʵʱÏû·Ñ kafka µÄÊý¾Ý£¬»¹¿ÉÒÔ×öһЩÀàËÆ grep µÄ¼òµ¥¹ýÂË¡£
5¡¢Êý¾ÝͨµÀ

ʵʱ¼ÆËãµÄÄÜÁ¦Æäʵ¿ÉÒÔ°ÑËü×ܽá³ÉÒ»¸öÊý¾ÝͨµÀµÄÄÜÁ¦¡£ÊµÊ±¼ÆËã¿ÉÄܲ»»áÍêÈ«Âú×ãÎÒÃǵÄʵʱ·ÖÎöµÄÐèÇ󣬱ÈÈçͨ³£µÄÐèÇó¶¼ÊÇÒ»¸ö¶àά·ÖÎö¡¢¼´Ï¯²éѯµÄÐèÇó¡£×îÖÕÎÒÃǵķ½°¸ÊÇͨ¹ý Flink Õâ¸öÒýÇæÈ¥°ïÎÒÃÇ×öÕâ¸öÊý¾Ý´¦ÀíÓëÔ¤¼ÆË㣬×îÖÕ¶¼»áÂäµ½Ò»¸ö¶ÔÓ¦´æ´¢·ÖÎöÒýÇæ¡£
´æ´¢·ÖÎöÒýÇæ¸ù¾ÝÒµÎñÐèÇóȥѡÔñºÏÊʵĶÔÓ¦Êä³ö¡£°üÀ¨ÊµÊ± OLAP ÒýÇæ druid.io¡¢ËÑË÷Óë·ÖÎöÒýÇæ Elastic Search¡¢Ê±ÐòÊý¾Ý¿â M3db µÈµÈ¡£
6¡¢ÈÎÎñ¿ª·¢

ÒµÎñ·½»òÊý¾Ý¿ª·¢ÈçºÎÔÚÆ½Ì¨ÉÏ¿ª·¢ÈÎÎñ£¿ÓÐÁ½²¿·Ö£¬Ò»¸öÊÇͨ³£µÄд´úÂë´ò³É jar °üÌá½»µ½Æ½Ì¨ÉÏ£¬Æ½Ì¨°ïËü¹ÜÀíÈÎÎñµÄÁ÷³Ì¡£»¹ÓоÍÊÇÖ÷Òª×öµÄ SQL µÄ±à¼»·¾³£¬°üÀ¨Ç°±ß˵µ½µÄÔªÊý¾Ý»¯ÔÚÕâÀï¿ÉÒÔÌåÏÖ³öÀ´¡£ÎÒÃǰÑij¸ö topic ÀïµÄÊý¾ÝÔªÊý¾Ý»¯Ö®ºó£¬Õâ¸ö DDL Óï¾ä¿ÉÒÔ×Ô¶¯Éú³É£¬°üÀ¨½« UDF ¹ØÁªÉÏÈÎÎñ¡£
7¡¢ÈÎÎñ¹Ü¿Ø

¶ÔÓÚÒ»¸öÈÎÎñÁ÷³ÌµÄ¹ÜÀíÖ÷Òª°üÀ¨ÉÏͼµÄÕâЩÄÜÁ¦£¬ÎÒÃÇÖ÷ÒªÖ§³Ö Spark2.3¡¢Flink1.8 Óë Flink1.9¡£ÐµÄÈÎÎñÓÅÏÈÓà Flink ½â¾ö£¬Æ½Ì¨Í¬Ê±Ö§³Ö Flink µÄ per job¡¢session Á½ÖÖģʽ¡£session ģʽÓÃÓÚСÈÎÎñºÏ²¢ÒÔºÏÀíÀûÓü¯Èº×ÊÔ´£¬Óû§¿ÉÒÔÔÚÆ½Ì¨Íê³ÉʵʱÈÎÎñµÄËùÓÐÏà¹Ø²Ù×÷¡£
8¡¢Flink SQLÉú²úʵ¼ù

SQL À©Õ¹£º
ÔÚ Flink1.9 ֮ǰÉçÇø°æ¶Ô SQL µÄ DDL ûÓÐÖ§³Ö£¬ÁíÍâʵ¼ÊʹÓÃʱ£¬¶Ôά±í¹ØÁª¡¢ÊäÈëÊä³öÔ´»áÓÐһЩ¶¨ÖÆÐèÇó¡£ËùÒÔÎÒÃÇ»ùÓÚ Apache Calcite À©Õ¹ÁË Flink SQL µÄÄÜÁ¦£¬¶¨ÒåÁË DDL¡¢ÊµÏÖÁËÁ÷Óë¶àÖÖÊý¾ÝԴά±íµÄ¹ØÁª¡¢UDF ×¢²áµÈÐèÇóµÄÑз¢¡£
¹ØÓÚά±íµÄ¹ØÁª£¬ÎÒÃÇʹÓà TiDB ×÷ΪÏßÉÏ MySQL µÄ´Ó¿â£¬Í¨¹ý¹ØÁª TiDB ʵÏÖÓëÏßÉÏÒµÎñÊý¾Ý¿âµÄʵʱ¹ØÁª¡£¶ÔÓÚ Hbase µÄ¹ØÁªÍ¨¹ý Async IO È¥Òì²½¶ÁÈ¡ hbase µÄÊý¾Ý£¬²¢Óà LRU ²ßÂÔÈ¥¼ÓÔØÎ¬±íÊý¾Ý£¬²¢Ö§³ÖÁË redis µÄʵʱ²éѯ¡£
9¡¢FlinkÈÎÎñ¼à¿ØºÍµ÷ÓÅ

Flink ÈÎÎñÔÚ¼¯ÈºÖÐÔËÐлá²úÉú¸÷ÖÖÖ¸±ê£¬°üÀ¨»úÆ÷ϵͳָ±ê£ºHostname¡¢CPU¡¢Memory¡¢Network¡¢IO£¬»¹ÓÐÈÎÎñÔËÐÐ×é¼þÖ¸±ê£ºJobManager¡¢TaskManager¡¢Job¡¢Task¡¢OperaterµÈÏà¹ØÖ¸±ê¡£ÕâЩ metrics ĬÈÏ»áÔÚ Flink UI ÖÐչʾ³öÀ´¡£³ý´ËÖ®Íâ Flink ÔÉú»¹Ö§³ÖÁ˼¸ÖÖÖ÷Á÷µÄµÚÈý·½Éϱ¨·½Ê½£ºJMXReporter¡¢InfluxdbReporter µÈµÈ¿ÉÒÔÖ±½ÓÅäÖÃʹÓá£ÁíÍ⻹֧³Ö×Ô¶¨Òå Report¡£
ÔÚ Flink µÄ metrics »ù´¡ÉÏ£¬ÎÒÃÇ»¹¸ù¾ÝÒµÎñ³¡¾°×Ô¶¨ÒåÁËÊý¾Ý´¦Àíʵ¼ÊÑÓ³Ùʱ¼ä¡¢Êý¾Ý½âÎöʧ°ÜÁ¿¡¢Íⲿ·þÎñµ÷ÓúÄʱµÈÖ¸±ê¡£ËùÓеÄÖ¸±êͨ¹ý×Ô¶¨ÒåµÄ Reporter Éϱ¨µ½ Kafka£¬ÔÙͨ¹ýÒ»¸öʵʱµÄ ETL£¬°ÑÖ¸±ê½á¹¹»¯ºóÊä³öµ½ ES ºÍ Druid À°´ÈÎÎñµÄά¶ÈÔÚ Grafana ÖзÖÀàչʾ£¬²¢ÌṩÃ÷ϸµÄÊý¾Ý²éѯ¡£¸ù¾ÝÕⲿ·Ö metrics Êý¾Ý£¬ÎÒÃÇÒ²»á¶¨ÒåһЩ¹æÔòÈ¥¼à¿ØÈÎÎñµÄ¸÷ÖÖÒ쳣״̬£¬×öһЩ¶¨ÖÆ»¯µÄ±¨¾¯¡£

Õâ¸öÊÇÊÕ¼¯ÉÏÀ´Ò»Ð©Ö¸±êµÄ¼à¿Ø£¬°üÀ¨ÈÎÎñµÄÊäÈëÊä³öËÙÂÊ£¬Ëã×Ó£¬JVM£¬ÈÎÎñÔËÐÐʱµÄÆäËüÖ¸±ê¡£

·ÖÎö Flink ÈÎÎñµÄÑÓ³Ù£¬Çãб£¬»òÕßʧ°ÜµÄÔÒòºÜ¶à¶¼ÊÇÒÀ¿¿ÕâЩָ±ê£¬±ÈÈç¸ù¾Ý JVM µÄ metrics Çé¿ö¶Ô¶ÑÄÚ´æ×ö³öµ÷Õû¡£
10¡¢Ó¦Óó¡¾°-ÒµÎñBIÖ¸±êʵʱ·ÖÎö

ÉÏͼÊÇÁ÷¼ÆËãÔÚÒµÎñÖ¸±êʵʱ·ÖÎöÉϵÄÓ¦Óó¡¾°¡£ËüÊÇ»ùÓÚÒµÎñÊý¾Ý¿â binlog µÄʵʱ·ÖÎö£¬ÕâЩҵÎñ binlog Äܹ»·´Ó³³öÒµÎñʵʱ±ä»¯Çé¿ö¡£ÈçÉÏͼÊÇÆäÖпÍÔ´µÄ²¿·ÖÒµÎñÖ¸±ê£¬Í¨¹ýÁ÷¼ÆËã¶Ô binlog ÖжÔÓ¦ÒµÎñ±íµÄ DML ²Ù×÷µÄÌáÈ¡ÒÔ¼°·ÖÎö¡£¿ÉÒÔÊµÊ±ÕÆÎÕÒµÎñ BI Ö¸±êµÄ±ä»¯Ç÷ÊÆ¡£
ʵʱ·ÖÎö¼à¿ØÆ½Ì¨-FAST
ʵʱ¼ÆËã³ýÁËÂú×ãÒµÎñµÄÐèÇ󣬻¹ÓÐÒ»¸ö·Ç³£Í¨ÓõÄÐèÇó¾ÍÊÇ¼à¿Ø¡£ÎÒÃÇÄÚ²¿µÄƽ̨½Ð×ö FAST ÌìÑÛÆ½Ì¨¡£
1¡¢ÊµÊ±·ÖÎö¼à¿ØÆ½Ì¨¼Ü¹¹

Õâ¸ö¼à¿Ø·ÖÎöƽ̨Ö÷ÒªÊÇ·ÖÎöÈÕÖ¾¡£ÈÕÖ¾µÄÖÖÀà°üÀ¨ÒµÎñµÄ log¡¢Nginx µÄ access log£¬»¹ÓÐһЩ DB µÄÈÕÖ¾¡¢Öмä¼þÈÕÖ¾¡¢ÍøÂçÉ豸µÈÈÕÖ¾¡£ÕâЩÈÕ־ͨ³£Í¨¹ý rsyslog ²É¼¯µ½ kafka Àͨ¹ý Spark Streaming/Flink ʵʱÏû·Ñ¡£ÇåÏ´¼ÆËãºó½á¹¹»¯µÄÊý¾Ý¡£»áÂäµ½ÈÕÖ¾µÄµÄ´æ´¢ºÍ·ÖÎöÒýÇæ£¬ÔÚÕâÒ»²½Ò²»áÓà gobblin °Ñ kafka ÀïµÄÊý¾ÝÀëÏߵı¸·Ýµ½ hdfs¡£
Ò»ÊÇÒòΪºÜ¶àÇé¿öÏÂʵʱ²»Äܱ£Ö¤Êý¾ÝµÄ׼ȷÐÔ¡£ÐèÒªÀëÏßУ׼µÄʱºòÐèÒªÒ»·Ý kafka ÖеÄÔʼÊý¾Ý¡£¶þÊÇ¿ÉÒÔÂú×ãÈÕÖ¾³¤ÆÚ´æ´¢ºóÐøÓÃÓÚÉ󼯡£ÔÚ·þÎñ²ãÎÒÃÇÌṩÁËһЩ»ù´¡·þÎñ£¬°üÀ¨ËùÓÐÒýÇæ¶ÔÍâÌṩµÄ API£¬²éѯ£¬¼ÆË㣬·ÖÎö£¬¼à¿Ø±¨¾¯¡£ÒÀÍÐÕâЩÇåÏ´Ö®ºóµÄÊý¾Ý£¬Í¨¹ýÕâЩÈÕÖ¾ÕÒ³öËûÃÇÖ®¼äµÄ¹ØÁª¹ØÏµ£¬¿ÉÒÔÓÃÀ´Êµ¼ù AIOps¡£
ÔÚÓ¦Ó÷½Ã棬¿ÉÒÔ¿´µ½ÊµÊ±¼ÆËãÓëÈÕÖ¾½áºÏ¾ßÌåÄܰïÎÒÃÇ×öÄÄЩÊ¡£ÓÐÈÕÖ¾µÄ¼ìË÷£¬ÈÕÖ¾¾ÛÀà¡£±ÈÈçÈÕÖ¾Ò»·ÖÖÓ±¨ÁËÒ»ÍòÌõ Error£¬Èç¹û RD È¥ÅŲéÎÊÌâ²»¿ÉÄÜ¿´ÍêÕâÒ»ÍòÌõÔÙÕÒµ½ÎÊÌ⣬ËùÒÔÐèҪһЩÎı¾¾ÛÀà¡£°üÀ¨ÈÕÖ¾Ïà¹ØµÄ·ÖÎö¡£
2¡¢ÈÕÖ¾¼ÆËã

ÔÚÈÕÖ¾µÄ½âÎöºÍ¼ÆËã·½ÃæÎÒÃÇÌṩÁË¿ÉÊÓ»¯µÄÅäÖÃÒ³Ãæ¡£¿ÉÒÔͨ¹ýÕýÔò¡¢·Ö¸ô·û¡¢json µÄ½âÎöÌáÈ¡×ֶΣ¬ÓÉÓû§È¥½âÎö×Ô¼ºµÄÈÕÖ¾¡£ÕâÒ»²¿·Ö¼ÆËãÒýÇæ¶ÔÓû§ÊÇÆÁ±ÎµÄ£¬ÒòΪ¶ÔÓû§À´Ëµ£¬Ö»ÒªÅäÖùæÔò¼´¿É£¬Í¨¹ýÅäÖÃÉú³Éʵʱ¼ÆËãÈÎÎñ¡£
¶ÔÓڹ淶»¯ÈÕÖ¾ÕâЩ¿ÉÒÔ×Ô¶¯½âÎö£¬Èç¹ûÊÇÈÎÒâµÄ·Ç½á¹¹»¯ÈÕÖ¾¾ÍÐèÒª×Ô¼ºÅäÖùæÔò£¬È»ºóÓà Spark Streaming »òÕßÊÇ Flink È¥×ö ETL£¬°üÀ¨¾ÛºÏ£¬join ÕâЩ²Ù×÷¡£ÀëÏߵIJ¿·Ö»áÿ¸öСʱ°ÑÔʼÊý¾ÝÀÒ»·Ýµ½ HDFS À䱸£¬ÔÚ hive ÖÐÓÃÕâЩ¹æÔò½øÐÐÀëÏßµÄ ETL¡£
3¡¢Êý¾Ý´æ´¢-ES´æ´¢¼¯Èº¼Ü¹¹

ʵʱ¼ÆËãµÄÁ÷³Ì×îÖÕ°ÑÈÕÖ¾µÄÃ÷ϸÊý¾Ý´æ´¢µ½ ES ¼¯Èº£¬×î³õÎÒÃǵļ¸Ì× ES ¼¯Èº´æ´¢ÊÇÈ« nvme SSD µÄ¡£Ëæ×ŽÓÈëµÄ·þÎñÔ½À´Ô½¶à£¬ÈÕÖ¾Á¿Ô½À´Ô½´ó¡£ÐèÒªÒ»¸öÂú×ãÈÕÖ¾´æ´¢Ê±¼äºÜ³¤µ«³É±¾²»»áÃ÷ÏÔÔö¼ÓµÄ¼Ü¹¹¡£¾ßÌåµÄʵÏÖÊÇͨ¹ý¶Ô ES ½Úµã»®·ÖΪ warm Óë hot ÀäÈÈÁ½Öֽڵ㡣
ÒòΪ¼ìË÷³¡¾°ÖУ¬Ò»°ã×î½üÒ»Á½ÌìµÄÈÕÖ¾ÊDzéѯƵÂʱȽϸߵģ¬ËùÒÔ¹ÒÔØ´óÈÝÁ¿µÄ HDD ½ÚµãÊʺϴ洢ÀúÊ·Êý¾Ý¼´²éѯƵÂʽϵÍÇÒûÓÐʵʱдÈëµÄË÷Òý¡£ÔÚÁ賿ҵÎñµÍ·åÆÚ°ÑÀäÊý¾Ýͨ¹ý±êǩתµ½Ö»¶ÁµÄÀäÊý¾Ý½Úµã¡£¶ÔÓÚ²éѯ¼¸¸öÔÂ֮ǰµÄÊý¾ÝÐèÇó£¬ÕâʱÐèҪ֮ǰÀ䱸µÄÄÇ·Ý HDFS ÉϵÄÊý¾Ý£¬Í¨¹ý hadoop-es ½«Ëû¼ÓÔØµ½ ES£¬»ùÓÚ ES ¼¯ÈºÉÏÖеÄÊý¾Ý¡£ÎÒÃÇÒ²ÌṩÁ˼ìË÷ api ·þÎñ¡¢ÏÂÔØ·þÎñ£¬±ÈÈçÌṩ¸ø QA ͨ¹ý½Å±¾ÀÈ¡ÈÕÖ¾½øÐа汾±È¶ÔµÄ diff ²âÊÔ¡£
4¡¢Êý¾Ý´æ´¢-Druid.io¼¯Èº¼Ü¹¹

ʵʱ·ÖÎöÕâ·½ÃæÏÖÔÚÓõÄÊÇÖ÷ÒªÊÇ Druid.io¡£Druid ÊÇÒ»¸öʵʱ OLAP µÄÒýÇæ¡£ÊµÊ±µÄ½«ÎÒÃÇʵʱ¼ÆËãµÄ½á¹û¾ Kafka£¬Óà Tranquility ½«Êý¾ÝдÈë Druid µÄ datasource¡£µ«ÒòΪ Druid Ò»°ãÎÒÃÇ»áÉèÖÃÒ»¸öʱ¼ä´°¿Ú£¬Èç¹ûÓÐÉϲãʵʱ¼ÆËãÈÎÎñÑÓ³Ù£¬Êý¾Ý¾Í¿ÉÄܻᶪʧ£¬Òò´ËÐèÒªÀëÏßУ׼À´±£ÕÏÊý¾Ý׼ȷÐÔ¡£Ò»°ãÓà MapReduce ½« hive ÖÐÀëÏ߽ṹ»¯µÄÊý¾ÝÖØÐÂË÷Òýµ½ Druid ¶ÔÓ¦µÄ datasource£¬¸²¸ÇʵʱдÈëµÄÊý¾Ý¡£Druid ÔÚ´æ´¢ÉÏÒ²·ÖΪÈÈÊý¾ÝµÄ½ÚµãºÍÀäÊý¾ÝµÄ½Úµã£¬hdfs ×÷Ϊ deep store¡£
5¡¢Òì³£¼ì²â

¼à¿Ø±¨¾¯¡¢Òì³£¼ì²âÊÇʵʱ¼ÆËãµÄÖ÷ÒªÓ¦Óõ㣬ÎÒÃÇ×ÔÑеı¨¾¯·þÎñ¿ÉÒÔ¼ì²â¶àÖÖʵʱÊý¾ÝÀ´Ô´¡£¸²¸ÇÃ÷ϸÀàºÍÖ¸±êÀàµÄÒì³£¼ì²â£¬Ö§³ÖÃ÷ϸ¼ì²â¡¢Ö¸±ê¾ÛºÏ¡¢Í¬»·±È¡¢Á÷Á¿¶¶¶¯µÈµÈÒ쳣ʼþ¡£¿ÉÒÔ¸ù¾ÝÒµÎñÐèÇóÁé»îÅäÖùæÔò¡¢¶©Ôı¨¾¯¡£Flink CEP µÄÄÜÁ¦ÎÒÃÇÒ²ÔÚ¼à¿Ø³¡¾°ÒýÈë½øÀ´Ó¦ÓÃÔÚÅÀ³æ¼ì²â¡£ÊµÊ±¼ì²âµ½µÄÒ쳣ʼþ»áͨ¹ý¸÷ÖÖÇþµÀ֪ͨ¶©ÔÄÕߣºµç»°¡¢Æóҵ΢ÐÅ¡¢¶ÌÐÅ¡¢Óʼþ¡¢callback µÈ¡£
6¡¢Ó¦Óð¸Àý

Õâ¸öÀý×ÓÊÇ FAST ÌìÑÛÆ½Ì¨ÔÚÒµÎñÈÕ־ʵʱ¼à¿Ø³¡¾°µÄÒ»¸öʵ¼Ê°¸Àý£¬×ó±ßÊÇÒµÎñ·½ÔÚÆóҵ΢ÐÅÀï¿ÉÒÔʵʱÊÕµ½×Ô¼º¸ºÔðµÄÏîÄ¿ÏßÉϵĴíÎóÈÕÖ¾µÄÍÆËÍ£¬ÓÒ±ßÊÇʵʱ¼ÆËãµÄ½á¹û´æµ½Ê±ÐòÊý¾Ý¿âÖУ¬Óû§¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÒµÎñ³¡¾°ÔÚ Grafana ÖÐÅä¸÷ÖÖ Dashboard¡£±ÈÈçʵʱµÄÁ÷Á¿¡¢½Ó¿ÚµÄÆ¿¾±£¬°üÀ¨Ò»Ð© QPS£¬Òì³£¿´°åµÄչʾ¡£Õû¸ö¹ý³Ì¿ÉÒÔÓÉÆ½Ì¨Óû§×ÔÖúÍê³É¡£

Õâ¸öÊÇÎÒÃÇÈ«Íø·þÎñÎȶ¨ÐÔ·ÖÎöÄÜÁ¦£¬Í¼ÖÐÊÇijһ¸öÏßÉÏÓòÃûµÄ·ÖÎö±¨¸æµÄÒ»²¿·Ö¡£Êý¾ÝÀ´Ô´Êǹ«Ë¾µÄ7²ã¸ºÔؾùºâµÄ·ÃÎÊÈÕÖ¾¡£¿ÉÒÔÓÃËüÀ´×öÕû¸ö¹«Ë¾ÏÂËùÓзþÎñÎȶ¨ÐԵķÖÎö¡£Õ¹Ê¾Õý³£Á÷Á¿¡¢Òì³£Á÷Á¿¡¢SLA Öµ¡¢ÇëÇó·¾¶ÏìӦʱ¼äÇ÷ÊÆ¡¢QPS Ç÷ÊÆµÈ¡£¿ÉÒÔÓÉÕâÀàÊý¾Ý²úÉúʵʱ QPS ÅÅÃû£¬ÊµÊ±Îȶ¨ÐÔºìºÚ°ñµÈÓ¦Óá£Í¨¹ýʵʱ+ÀëÏߵĽáºÏ¡£¿ÉÒÔÖ§³ÖÈÎÒâʱ¼ä·¶Î§µÄ·þÎñÎȶ¨ÐÔ·ÖÎö¡£
ºóÐø¹æ»®
1£©ÍêÉÆ SQL ½âÎöÒýÇæ¡£³ÖÐø·á¸» SQL ½âÎöÄÜÁ¦£¬½¨Éè SQL µ÷ÊÔÄÜÁ¦¡¢ÌáÉý¿ª·¢Ð§ÂÊ£¬½µµÍÁ÷¼ÆËãµÄʹÓÃÃż÷¡£
2£©¶¯Ì¬µÄ×ÊÔ´¹ÜÀí¡£Ä¿Ç°ÔÚ×ÊÔ´·ÖÅ䳡¾°£¬ÓÐЩÈÎÎñ²»ÐèÒªÄÇô¶à×ÊÔ´»òÕßÓÅ»¯´úÂë¿ÉÒÔÌáÉýµÄ¼ÆËãЧÂÊ£¬µ«ÊÇÓû§»á°Ñ×ÊÔ´·ÖÅäµÄºÜ¶à¡£Òò´ËÐèÒªÎÒÃÇÔÚÕâ¸öƽ̨Äܼà²âÈÎÎñµÄ×ÊԴʵ¼ÊÀûÓÃÂÊ£¬½øÐж¯Ì¬µÄ×ÊÔ´µ÷Õû£¬ºÏÀíÀûÓÃ×ÊÔ´¡£
3£©ÊµÊ±ÈÎÎñÎÊÌâÕï¶Ï¡£Ï£Íûͨ¹ýÊÕ¼¯ºÍ·ÖÎöʵʱ¼ÆËãÈÎÎñÖÐÀúÊ·³£¼ûµÄ´íÎ󣬺óÐøÔÚÈÎÎñ³öÏÖÎÊÌâ»ò±¨´íʱ£¬Æ½Ì¨Äܹ»¸ø³ö½¨Òé½â¾ö·½°¸¡£
4£©ÖÇÄÜ¼à¿Ø¡£Ï£ÍûÄÜÓÃʵʱ¼ÆËã+»úÆ÷ѧϰ£¬ÔÚÁ÷Á¿Ô¤²â¡¢Òì³£¼ì²â¡¢¸ùÒò·ÖÎöµÈ AIOps ³¡¾°·õ»¯³ö¸ü¶àÄÜÁ¦¡£
|