±à¼ÍƼö: |
ÎÄÕÂÖ÷Òª½éÉÜÁËʵʱ´¦ÀíºÍÕë¶ÔʱÐòÊý¾ÝÓÅ»¯´æ´¢µÄOpenTSDB×é³ÉµÄ¹¤ÒµÊý¾Ýƽ̨µÄÏêϸ·½°¸¡£
±¾ÎÄÀ´×ÔÓÚ΢ÐŹ«ÖÚºÅIluvatarCoreX£¬ÓÉ»ðÁú¹ûÈí¼þ΢΢±à¼¡¢ÍƼö¡£ |
|
×î½ü£¬Ê±¼äÐòÁÐÊý¾Ý¿âµÄ¸ÅÄîÔ½À´Ô½»ð£¬ËüÊÇÒ»ÖÖÃæÏò´øÓÐʱ¼äÐòÁÐÐÅÏ¢Êý¾ÝµÄÓÅ»¯´æ´¢·½°¸¡£½ðÈÚ¹ÉÆ±¡¢IoT¡¢»¥ÁªÍø¡¢ITϵͳÔËάµÈÐÐÒµÁìÓòµÄº£Á¿Êý¾Ý²úÉúʱ¾Í´øÓÐʱ¼äÐòÁÐÌØÕ÷£¬Òò´ËËüÃǷdz£ÊʺÏ×÷ΪʱÐòÊý¾Ý¿âµÄÓ¦Óó¡¾°¡£
ÔÚÕë¶ÔIoTÐÐÒµ¿Í»§Éè¼ÆÊý¾Ý´æ´¢·½°¸µÄÐèÇóÏ£¬ÓÉÓÚ¹¤ÒµÊý¾ÝµÄÌØÊâÐÔ£¬ÎÒÃÇÇãÏò¹Ø×¢Ñ¹Ëõ±È¡¢ÊµÊ±¶Áд¡¢À©Õ¹Õâ3¸öƽ̨ÄÜÁ¦¡£
¡¤×·Çó¸ßѹËõ±È
ÖÇÄÜÖÆÔìÁìÓòµÄ¹¤ÒµÊý¾ÝÖУ¬´ó²¿·Ö³¡¾°ÊÇ´¦Àí´«¸ÐÆ÷µÄʵʱÊý¾Ý£¬Êý¾ÝÒÔÃëÉõÖÁºÁÃëµÄƵ¶Èʵʱ²úÉú¡£Ò»¸ö´«¸ÐÆ÷ÿÃëµÄÊý¾Ý°´ÕÕ1ByteµÄ²úÉú£¬Ã¿Ì¨ÓÐ1000¸ö´óÐÍÉ豸£¬Ã¿Ãë¾ÍÊÇ1K×óÓÒµÄÊý¾ÝÁ¿£¬Èç¹ûÓÐ1000̨£¬ÄÇôÿÃë¾ÍÊÇ1M£¬Ò»ÌìµÄÊý¾ÝÁ¿¾Í½Ó½ü100G¡£Òò´Ë£¬Êý¾ÝÅòÕÍ´øÀ´µÄ´æ´¢Ñ¹Á¦£¬ÊÇIoTÐÅÏ¢»¯ºÍÊý×Ö»¯·¢Õ¹µÄÖ÷Ҫʹµã¡£
¡¤ÊµÊ±¶ÁдЧÂÊ
¹¤ÒµÊý¾Ý±¾Éí´øÓÐʵʱÐÔµÄÌØµã£¬Í¬Ê±ÒµÎñÒ²ÊÇÆ«ÊµÊ±µÄ£¬±ÈÈç¹ÊÕÏÔ¤²â¡¢É豸½¡¿µ×´¿ö¼à¿ØµÈ£¬ÒÀÀµÊý¾ÝµÄʱЧÐÔ¡£ÊµÊ±¶ÁдÊÇÂú×ãÒµÎñµÄ»ù´¡¡£
¡¤Æ½Ì¨µÄÀ©Õ¹ÄÜÁ¦
É豸µÄ¸üл»´úÒÔ¼°ÒµÎñ·¶Î§µÄÀ©´ó£¬ÒµÎñÊý¾ÝÁ¿¿ÉÄÜÔÚ¶ÌÆÚÄÚ¾ÍÓÐÊý±¶µÄÔö³¤£¬¶Ô´æ´¢ºÍ¼ÆËãµÄÀ©Õ¹ÐèÇóÒ²ÊǸÕÐԵģ¬ËùÒÔÎñ±Ø³ä·Ö¿¼ÂÇϵͳµÄÀ©Õ¹ÐÔ¡£
³öÓÚÒÔÉÏ¿¼ÂÇ£¬Ê±ÐòÊý¾Ý¿âÓÉÓÚÆä¶Ôʱ¼äÐòÁÐÊý¾ÝµÄѹËõ¡¢¶Ô¸ß²¢·¢¶ÁдµÄÖ§³Ö£¬³ÉΪÎÒÃÇÔÚ¹¤ÒµÊý¾Ý´æ´¢ÁìÓòµÄÊ×Ñ¡·½°¸¡£
1.Êý¾Ý¿âµÄÑ¡ÐÍ
´ÓÊý¾Ý¿âÑ¡Ðͱ¾Éí£¬ÎÒÃÇÔÚOpenTSDB¡¢InfluxDB¡¢PostgreSQL 3ÕßÖ®¼ä×öÁ˱Ƚϡ£

¿¼Âǵ½OpenTSDBµÄµ×²ãÀ©Õ¹ÄÜÁ¦£¬ÎÒÃÇ×îÖÕÑ¡ÔñÁËOpenTSDB¡£
2.¹ØÓÚOpenTSDB
OpenTSDBÊÇÒ»¸öjavaÓïÑÔ¿ª·¢µÄ¿ªÔ´Ê±ÐòÊý¾Ý¿â£¬µ×²ã´æ´¢ÒÀÀµHBase¡£
ÈçOpenTSDB¹ÙÍø½éÉÜ£¬ÓÐ3¸öÖ÷ÒªµÄÌØÐÔ¡£
¡¤´øÓÐʱ¼äÐÅÏ¢µÄ´æ´¢
¡¤¿ÉÀ©Õ¹µÄ´æ´¢ºÍ²¢·¢Ð´ÄÜÁ¦
¡¤ÌṩHTTP½Ó¿ÚºÍ¿ÉÊÓ»¯×é¼þ
OpenTSDBÌṩREST API×÷ΪÊý¾ÝдÈëµÄ½Ó¿Ú£¬ÊÇÒ»¸ö½éÓÚHBaseÁÐʽ´æ´¢ºÍÒµÎñÊý¾ÝÖ®¼äµÄ´æ´¢Öмä¼þ¡£Í¬Ê±£¬OpenTSDBÒ²ÊÇÒ»¸öÓÅÐãµÄHBase¿Í»§¶Ë£¬¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄѹËõ²ßÂÔ°ÑʱÐòÊý¾Ý³Ö¾Ã»¯µ½HBase¡£OpenTSDBµÄÓ¦Óüܹ¹ÈçÏ£º

ͼ1£º OpenTSDBµÄ¼Ü¹¹
¶ÔOpenTSDBÀ´Ëµ¾ÍÊÇ3²ã¼Ü¹¹£º
1¡¢Êý¾ÝÔ´£ºÀ´×ÔÓÚ»úÆ÷¡¢webÒ³ÃæµÈ£¬ÊÇÊý¾Ý²É¼¯µÄ¹ý³Ì
2¡¢TSD½ø³Ì£ºOpenTSDBÆô¶¯ºóµÄÊØ»¤½ø³Ì¡£Í¨¹ýREST API½Ó¿Ú»òÕßCLI½Ó¿Ú£¬OpenTSDBµÄTSD½ø³ÌÏìÓ¦·¢¸øOpenTSDBµÄÊý¾ÝÇëÇó¡£È»ºóTSD½ø³Ìͨ¹ýHBaseµÄREST
API½Ó¿ÚÏòHBaseдÈëÊý¾Ý»òÕß¶ÁÈ¡Êý¾Ý
3¡¢HBase£ºHBaseÏìÓ¦TSD·¢ÆðµÄÇëÇó¡£
ÊÂʵÉÏ£¬OpenTSDBÄÚ²¿·â×°ÁËÒ»¸öHBase¿Í»§¶Ëasynchbase¡£asynchbaseÖ§³ÖÒì²½ÇëÇó£¬OpenTSDBµÃÒÔά»¤Ò»¸örpc
queue£¬ÅúÁ¿µÄ°Ñpoint·¢Ë͸øHBase£¬asynchbase±£Ö¤ÁËOpenTSDB¸ß²¢·¢ÊµÊ±Ð´ÈëÊý¾ÝµÄÐèÇó¡£
ÒÔ1СʱµÄÊý¾ÝΪÀý£¬ÔÚʵ¼Ê´æ´¢ÉÏ£¬OpenTSDB°Ñ1СʱµÄÊý¾ÝÕûºÏ³É1¸ökey-value¶Ô£¬´æµ½HBaseÖС£ÎÒÃǶ¼ÖªµÀHBaseʹÓõĹؼü¾ÍÊÇRowkeyµÄÉè¼Æ£¬HBase×Ô¼º°ïÓû§Éè¼ÆºÃRowkeyÒÔ¼°´æ´¢±í¡£
OpenTSDBÉú³ÉµÄrowkey
[salt]<metric_uid><timestamp><tagk1><tagv1>[...<tagkN><tagvN>]

ͼ2£ºOpenTSDBÔÚHBaseÖеĴ洢½á¹¹
ͬһ¸ömetricÖÐtagÖµÏàͬµÄÊý¾ÝÒÔ1СʱΪÁ£¶ÈʹÓÃÒ»¸ö¹²Í¬µÄrowkey£¬3600¸öÃë¼¶µÄÊý¾ÝÔòºÏ²¢µ½Ò»ÆðÊÇ×÷Ϊ1¸övalue£¬OpenTSDBµÄѹËõЧ¹û×îÖ÷ÒªÒòΪÕâ¸ö¹ý³Ì¡£
¾ßÌåµÄ´æ´¢ÑùÀýÈçÏ£º

3.»ùÓÚOpenTSDBµÄʵʱ´æ´¢¼Ü¹¹
ÔÚÎÒÃǵÄÃæÏò¹¤ÒµÊý¾ÝµÄ½â¾ö·½°¸ÖУ¬OpenTSDB¸ß²¢·¢Ð´µÄÄÜÁ¦Âú×ãÁËʵʱÁ÷´¦Àí¼Ü¹¹¶Ôµ×²ã´æ´¢µÄʵʱдҪÇó¡£ÈçÏÂͼչʾµÄÕûÌå¼¼Êõ¿ò¼ÜÖУ¬°üÀ¨ÁËÈÕÖ¾²É¼¯¡¢ÈÕÖ¾´¦Àí¡¢Êý¾Ý´æ´¢ÒÔ¼°Êý¾Ýµ¼³öÓëչʾµÈÄ£¿é¡£
Êý¾ÝµÄ²É¼¯Óë·Ö·¢£ºÒµÎñÈí¼þ²úÉúµÄÈÕ־ͨ¹ýApache flume+KafkaÊÕ¼¯ºÍ·Ö·¢
Êý¾ÝÁ÷´¦Àí£ºSparkStreamingʵʱµÄ´ÓKafkaÖлñÈ¡Êý¾ÝºÍ¼ÆËã
Êý¾Ý´æ´¢£ºOpenTSDB+HBase+HDFSÔÚÏìÓ¦10W+ÒÔÉϵIJ¢·¢Ð´µÄͬʱ£¬ÀíÂÛÉÏÄÜÎÞÏÞµÄÀ©Õ¹
Êý¾ÝÓ¦ÓãºÔ¤²â¡¢¼à²âÓë·ÖÎö

ͼ3£º»ùÓÚOpenTSDBµÄʵʱ¹¤ÒµÊý¾Ýƽ̨
³ýÁËÓÃOpenTSDBÀ´±£´æ¹¤ÒµÊ±ÐòÊý¾ÝÍ⣬¹ØÏµÐÍÊý¾Ý¿â×÷ΪҵÎñÊý¾ÝºÍϵͳÔËÐÐÊý¾ÝµÄ³Ö¾Ã»¯´æ´¢¡£½«À´×÷ΪÀ©Õ¹£¬Ò²¿ÉÒÔʹÓ÷ֲ¼Ê½µÄ¹ØÏµÐÍ´æ´¢£¬×é³ÉÈںϵĴ洢·½°¸¡£
4.¼Ü¹¹Ïêϸ
4.1 FlumeÊý¾ÝÊÕ¼¯
Flume+Kafka¶¼ÊǸßÍÌ͵ÄÊý¾ÝͨµÀ£¬µ¥¸öFlume ´úÀíµÄÊÕ¼¯ÄÜÁ¦ÄÜ´ïµ½10MB/s£¬6¸ö½ÚµãµÄKafkaÍÌÍÂÄÜ´ïµ½100MB/sÒÔÉÏ¡£

ͼ4£ºApache Flume+Kafak
²»¹ÜÊÇ·Ö²¼Ê½µÄ¶àFlume ´úÀí»¹ÊǶà²ã´ÎµÄFlume ´úÀí½á¹¹£¬¶¼ÄܳÖÐøÀ©Õ¹Êý¾ÝÊÕ¼¯ÄÜÁ¦¡£
4.2 OpenTSDBµÄ²¢·¢´¦ÀíÄÜÁ¦
KafkaºÍSpark¶¼¾ß±¸·Ö²¼Ê½µÄÀ©Õ¹ÄÜÁ¦£¬OpenTSDBËäȻûÓи߿ÉÓúͼ¯Èº·½°¸£¬µ«ÊÇÒòΪÿ¸ö½ø³Ì¶¼¿ÉÒÔ×÷Ϊ¶ÀÁ¢µÄ¹¤×÷½Úµã£¬ËùÒÔ¿ÉÒÔÔÚ¸÷¸öSpark
WorkerËùÊôµÄ¼¯ÈºÆô¶¯¶àOpenTSDBʵÀý£¬´ïµ½¸ºÔؾùºâµÄЧ¹û¡£

ͼ5£ºOpenTSDBµÄ¶à½Úµã
4.3 HBaseµÄRegionServer
ÓÉÓÚRegionServer¼°ÆäÖеÄregion¿ÉÒÔ·ÖɢдÇëÇó£¬ËùÒÔHBaseÄܹ»¸ß²¢·¢Ð´¡£ÒòΪÓÐÄڴ滺´æ»úÖÆ£¬ÔÚÈÈÊý¾Ý±»flushµ½HDFSÖÐʱ»á²úÉú½Ï¸ßµÄIOÇëÇó£¬ËùÒÔºÏÀí¿ØÖÆflushµÄ½Ú×àÊÇά³ÖHBaseÐÔÄÜÎȶ¨ÐԵĹؼü¡£

ͼ6£ºOpenTSDBµÄµ×²ã´æ´¢·þÎñ
4.4 OpenTSDBµÄÊý¾Ý²éѯ
×÷Ϊһ¸öÁÐʽ´æ´¢µÄNoSQLÊý¾Ý¿â£¬OpenTSDBʹÓÃHBase×÷Ϊ´æ´¢·½°¸£¬ÄÜÂú×ãдµÄͬʱ£¬Ãæ¶ÔÀàËÆ¿í±íµÄ²éѯ³¡¾°£¬ÐèÒª°Ñ¸÷¸öÁÐÊý¾ÝºÏ²¢³É±í£¬Òò´ËÒ²´øÀ´ÁËһЩ¼ÆËãÏûºÄ¡£

ͼ7 OpenTSDBÖд洢Êý¾ÝµÄµ¼³ö
ÎÒÃÇÔÚʵ¼ÊÓ¦ÓÃÖУ¬Ã»ÓÐʵÏÖJOIN£¬¶øÊÇÈ¡ÇÉÓÚÓÐÐòµÄʱ¼äÌØÕ÷£¬Ê¹ÓÃappendµÄ·½Ê½°Ñ¶àÁÐÊý¾ÝÆ´½Ó³ÉÒ»¸ö¶àÁÐµÄ±í¡£
5£®µ÷ÓÅÓëÐÔÄÜ
ÎÒÃÇʹÓÃ6¸ö½Úµã¼¯Èº£¬¾¹ý¸÷Ïîµ÷Óź󣬸÷¸ö×é¼þµÄÐÔÄÜÊý¾ÝÈçÏ£º

6.×ܽá
±¾ÎÄÖнéÉܵÄÓÉʵʱ´¦ÀíºÍÕë¶ÔʱÐòÊý¾ÝÓÅ»¯´æ´¢µÄOpenTSDB×é³ÉµÄ¹¤ÒµÊý¾Ýƽ̨·½°¸£¬Ö§³Ö¸ß²¢·¢Ð´ºÍÎÞÏ޵ĺáÏòÀ©Õ¹¡£¹¤ÒµÊý¾ÝʹÓÃʱÐòÊý¾Ý×÷ΪͳһµÄÊý¾Ý´æ´¢±ê×¼£¬¾ß±¸Í¨ÓÃÐÔ¡£·½°¸Öл¹ÓÐ×ÅÐÔÄÜÌáÉýµÄ¿Õ¼ä£»ÔÚÊý¾Ýƽ̨»ù´¡ÉÏ£¬Ôö¼Ó¸ü¶àµÄʵʱµÄÊý¾Ý·þÎñ£¬²¢ÇÒÌṩ¸ßЧµÄÊý¾Ý²éѯ×é¼þ£¬ÊÇÎÒÃÇÒÔºóµÄŬÁ¦·½Ïò¡£
|