Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓƵ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Kylin ÔÚ±´¿ÇµÄÐÔÄÜÌôÕ½ºÍ HBase ÓÅ»¯Êµ¼ù
 
×÷Õߣº·ëÁÁ
 
  1399  次浏览      22
2021-1-15 
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁËKylin ÔÚ±´¿ÇµÄʹÓÃÇé¿ö½éÉÜÒÔ¼°Kylin HBase ÓÅ»¯Á½´ó·½Ãæ¡£
±¾ÎÄÀ´×Ô¹«ÖںŠapachekylin£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

Kylin ÔÚ±´¿ÇµÄʹÓÃÇé¿ö½éÉÜ

Kylin ´Ó 2017 Ä꿪ʼ×÷Ϊ±´¿Ç¹«Ë¾¼¶ OLAP ÒýÇæ¶ÔÍâÌṩ·þÎñ£¬ Ä¿Ç°ÓÐ 100 ¶ą̀ Kylin ʵÀý£»ÓÐ 800 ¶à¸ö Cube£»ÓÐ 300 ¶à T µÄµ¥¸±±¾´æ´¢£»ÔÚ±´¿Ç Kylin ÓÐÁ½Ì× HBase ¼¯Èº£¬30 ¶à¸ö½Úµã£¬Kylin ÿÌìµÄ²éѯÁ¿×î¸ß 2000+Íò ¡£

ÎÒÃǸºÔð Kylin ͬÊÂÕÅÈçËÉÔÚ 2018 Äê Kylin Meetup ÉÏ·ÖÏí¹ýKylinÔÚ±´¿ÇµÄʵ¼ù£¬µ±Ê±Ã¿Ìì×î¸ßÇëÇóÁ¿ÊÇ 100 ¶àÍò£¬Á½ÄêµÄʱ¼äÀïÇëÇóÁ¿Ôö¼ÓÁË 19 ±¶£»ÎÒÃǶÔÓû§µÄ²éѯÏìӦʱ¼ä³ÐŵÊÇ 3 ÃëÄڵIJéѯռ±ÈÒª´ïµ½ 99.7%£¬ÎÒÃÇ×î¸ßÊÇ´ïµ½ÁË 99.8%¡£ÔÚÿÌì 2000+W ²éѯÁ¿µÄÇé¿öÏ£¬Kylin Óöµ½ºÜ¶àµÄÌôÕ½£¬½ÓÏÂÀ´ÎÒ½«Îª´ó¼Ò½éÉÜÒ»ÏÂÎÒÃÇÓöµ½µÄһЩÎÊÌ⣬ϣÍûÄܸøÉçÇøµÄÅóÓÑÌṩһЩ²Î¿¼¡£

Kylin HBase ÓÅ»¯

±í/Region ²»¿É·ÃÎÊ

1£©ÏÖÏó£º

Á賿¹¹½¨ Cube Æڼ䣬»á³öÏÖÖØÒª±íµÄij¸ö region ²»¿É·ÃÎʵ¼Ö¹¹½¨Ê§°ÜµÄÇé¿ö£¬ÓÒÉϽǵÄͼÊÇ HBase µÄ meta ±í²»¿É·ÃÎʵÄÈÕÖ¾£»°×Ìì²éѯʱҲÓв¿·Ö²éѯÒòΪÊý¾Ý±íij¸ö Region ²»¿É·ÃÎʵ¼Ö²éѯ³¬Ê±µÄÇé¿ö£¬ÓÒϽǵÄͼÊDzéѯÊý¾Ý±í Region ³¬Ê±µÄÈÕÖ¾£»ÁíÍâÒ»¸öÏÖÏóÊÇÀ쵀 Kylin ¼¯Èº Region ÊýÁ¿´ïµ½ 16W+£¬Æ½¾ùÿ̨»úÆ÷ÉÏ 1W+¸ö Region£¬Õâµ¼Ö Kylin HBase ¼¯Èº½¨±íºÍɾ±í¶¼·Ç³£Âý£¬Á賿¹¹½¨»á³öÏÖ½¨±í¿¨×¡µÄÏÖÏó£¬Í¬Ê±ÇåÀí³ÌÐòɾ³ýÒ»ÕűíÐèÒªÈýËÄ·ÖÖÓµÄʱ¼ä£¬Ãæ¶ÔÕâÑùµÄÇé¿ö£¬ÎÒÃÇ×öÁËһЩ¸Ä½ø¡£

2£©½â¾ö·½°¸£º

ɾ³ýÎÞÓñí¼õÉÙ Region¡£ ͨ¹ý¸Õ²ÅµÄ½éÉÜ HBase ¼¯ÈºÆ½¾ùÿ̨»úÆ÷ÉÏ 1W+¸ö Region£¬Õâ¶ÔÓÚ HBase À´ËµÊDz»Ì«ºÏÀíµÄ£¬ÁíÍâÓÉÓÚɾ³ýÒ»ÕűíÐèÒªÈýËÄ·ÖÖÓµÄʱ¼ä£¬ÇåÀí³ÌÐòÒ²Ö´ÐеÄÒì³£»ºÂý£¬×îºóÎÒÃDz»µÃ²»Ê¹ÓÃÁËһЩ·Ç³£¹æÊÖ¶Îɾ³ýÁË 10W+¸ö Region¡£

Ëõ¶ÌÇåÀíÖÜÆÚ£¬ ´Ó֮ǰµÄÒ»ÖÜÇåÀíÒ»´Î HBase ±íµ½Ã¿ÌìÇåÀíÒ»´Î£¬³ý´ËÖ®Íâ Kylin »áÿÖܺϲ¢Ò»´Î Cube À´¼õÉÙ HBase ±íÊýÁ¿´Ó¶ø¼õÉÙ Region ÊýÁ¿£¬×îÖÕ 16W+µÄ Region ɾµ½Á˲»µ½ 6 Íò£¬ÖÁ´ËÎÒÃǽâ¾öÁËÒ»²¿·ÖÎÊÌ⣬»¹»á´æÔÚ¹¹½¨Ê±Öصã±íµÄ Region ²»¿É·ÃÎʵÄÇé¿ö¡£

½« HBase ´Ó 1.2.6 Éýµ½ 1.4.9£¬ Ö÷ÒªÊÇÏëÒªÀûÓà RSGroup µÄÄÜÁ¦À´×öÖصã±íºÍÊý¾Ý±íµÄ¼ÆËã¸ôÀ룻

¹Ø±Õ HBase ×Ô¶¯ Balance µÄ¹¦ÄÜ£¬ ½öÔÚÒ¹¼äÒµÎñµÍ·åÆÚ¿ªÆô¼¸¸öСʱ£»

ʹÓà HBase ×Ô´øµÄ Canary ¶¨Æڵļì²â Region µÄ¿ÉÄÜÐÔ£¬ Èç¹û·¢ÏÖijЩ Region ²»¿ÉÓÃÂíÉÏ·¢Ë͸澯

ʹÓà RSGroup µ¥¶À¸ôÀëÖصã±íÀ´ÆÁ±ÎÁ˼ÆËã´øÀ´¸ÉÈÅ£¬ ÕâЩÖصã±í°üÀ¨ HBase Meta ±í¡¢Acl ±í¡¢Namespace ±í¡¢Kylin_metadata ±í¡£

¾­¹ýÁËÕâһϵÁеĸĽøÖ®ºó±í/Region ²»¿É·ÃÎʵÄÎÊÌâ»ù±¾ÉϽâ¾öÁË£¬ÏÖÔÚ»ù±¾ÉÏûÓÐÔÙ³öÏÖ Region ²»¿É·ÃÎʵÄÇé¿ö¡£½â¾öÕâ¸öÎÊÌâÎÒÃÇ»¨·ÑÁ˺ܳ¤Ê±¼ä£¬¾­ÀúÁËÉý¼¶ÖØÆôºÍɾÁË´óÁ¿µÄ±íºó£¬ÎÒÃÇÓöµ½ÁËÁíÍâÒ»¸öÎÊÌâ¡£

RS Êý¾Ý±¾µØÐÔÌáÉý

1£©ÏÖÏó

Kylin HBase ¼¯ÈºµÄ RegionServer Êý¾Ý±¾µØÐԷdz£µÍ£¬Ö»ÓÐ 20%²»ÄܺܺõÄÀûÓà HDFS ¶Ì·¶Á£¬ÕâÑù¶Ô²éѯÏìӦʱ¼ä²úÉúÁËÒ»¶¨Ó°Ïì £¬ÎÒÃÇÈýÃëÄڵIJéѯռ±È³öÏÖÁËϽµ¡£Á˽â HBase µÄÅóÓѶ¼ÖªµÀÈç¹û RS µÄÊý¾Ý±¾µØÐԽϵͣ¬ÓÐÒ»ÖÖ½â¾ö·½°¸¾ÍÊÇ×ö Compact °ÑÊý¾ÝÀ­µ½ RegionServer ¶ÔÓ¦µÄ Datanode ÉÏ£¬¿¼Âǵ½´ó¹æÄ£µÄ×ö Compact »á¶Ô²éѯÔì³ÉºÜ´óÓ°Ï죬ÎÒÃÇûÓÐÕâô×ö£¬¸ú Kylin µÄͬѧ¹µÍ¨ºó·¢ÏÖ¾ø´ó¶àÊýµÄ Cube ÿÌì»áʹÓÃ×îй¹½¨µÄ±í£¬²é¾É±íµÄ¿ÉÄÜϵ²»ÊÇÌرð´ó£¬ËùÒÔÌáÉýÿÌìн¨±íµÄÊý¾Ý±¾µØÐԾͿÉÒÔÁË£¬ ¾ßÌåÎÒÃÇÊÇÕâÑù×öµÄ¡£

2£©½â¾ö·½°¸

ÎÒÃÇ·¢ÏÖ Kylin Óõ½µÄÊÇ HFileOutputFormat3 ¸ú HBase µÄ HFileOutputFormat2 ÊÇÓÐһЩ²î±ðµÄ£¬ÎÒÃÇÔÚ HFileOutputFormat3 ÀïÃæ¼ÓÈëÁË HBASE¡ª12596 µÄÌØÐÔ£¬Õâ¸öÌØÐÔÖ÷ÒªÊÇÉú³É HFile µÄʱºò»áдһ·ÝÊý¾ÝµÄ¸±±¾µ½ Region ËùÔÚµÄ RegionServer ¶ÔÓ¦µÄ Datanode ÉÏ¡£ÏÂÃæÊÇһЩ´úÂëϸ½Ú£¬³ÌÐò»áÏÈÈ¡µ½Õâ¸ö Region ËùÔڵĻúÆ÷£¬È»ºóÔÙ»ñÈ¡ Writer ʱ£¬°ÑÕą̂½ÚµãµÄÐÅÏ¢´«µÝ¹ýÈ¥£¬×îºóдÊý¾ÝµÄʱºò»áдһ¸ö¸±±¾µ½Õâ¸ö Region ¶ÔÓ¦µÄ Datanode ÉÏ£¬ ÕâÑùÖð½¥ÎÒÃǵÄÊý¾ÝÎȶ¨ÐÔ¾ÍÌáÉÏÀ´ÁË£¬ÏÖÔÚ¿´ÁËһϻù±¾ÉÏÔÚ 80%¶à×óÓÒ¡£

RegionServer IO Æ¿¾±

1£©ÏÖÏó

ÎÒÃÇ·¢ÏÖÔÚ¹¹½¨Ôç¸ß·åʱ£¬HBase ÏìӦʱ¼äµÄ P99 »áËæÖ®Éý¸ßµÄ£¬Í¨¹ý¼à¿Ø·¢ÏÖÊÇÓÉÓÚ RegionServer »úÆ÷µÄ IO Wait Æ«¸ßµ¼Öµġ£

»¹ÓÐÒ»ÖÖ³¡¾°ÊÇÓû§¹¹½¨Ê±¼ä·¶Î§Ñ¡Ôñ¹ý´ó£¬µ¼ÖÂÍø¿¨±»´òÂú£¬Ö®Ç°ÓиöÓû§¹¹½¨ÁËÒ»ÄêµÄÊý¾Ý£¬»¹Óй¹½¨ÈýËĸöÔÂÊý¾Ý£¬ÕâÁ½ÖÖÇé¿ö¶¼»áÔì³É RegionServer »úÆ÷ IO ³öÏÖÆ¿¾±µ¼Ö Kylin ²éѯ³¬Ê±¡£

ÉÏͼÊÇ Cube Êý¾Ý¹¹½¨Á÷³Ì£¬Ê×ÏÈ HBase ¼¯ÈººÍ¹«Ë¾´óµÄ Hadoop ¼¯ÈºÊǶÀÁ¢µÄÁ½Ì× HDFS ¼¯Èº£¬Ã¿Ìì¹¹½¨ÊÇ´Ó´ó¼¯ÈºµÄ HDFS È¥¶ÁÈ¡ Hive µÄÊý¾Ý£¬¹¹½¨ÈÎÎñÖ±½ÓÊä³ö HFile µ½ HBase µÄ HDFS ¼¯Èº£¬×îºóÖ´ÐÐ Bulkload ²Ù×÷¡£ÓÉÓÚ HBase HDFS ¼¯Èº»úÆ÷½ÏÉÙ£¬¹¹½¨ÈÎÎñдÊý¾Ý¹ý¿ìµ¼Ö DataNode/RegionServer »úÆ÷ IO Wait Éý¸ß£¬Ôõô½â¾öÕâ¸öÎÊÌâÄØ£¿

2£©½â¾ö·½°¸

ÎÒÃÇÏëÓà HBase ±È½Ï³£Óõķ½Ê½¾ÍÊÇ DistCp À´½â¾öÕâ¸öÎÊÌ⣬×óϽÇÕâÕÅͼÊÇÎÒÃǵĸĽø·½°¸£¬¾ÍÊÇÎÒÃÇÉèÖù¹½¨ÈÎÎñµÄÊä³ö·¾¶µ½ Hadoop µÄ´ó¼¯Èº£¬¶ø²»Êǵ½ HBase µÄ HDFSB ¼°Èº£¬ÔÙͨ¹ý DistCp ÏÞÁ÷µÄ¿½±´ HFile µ½ HBase µÄ HDFS ¼¯Èº£¬×îºó×ö Bulkload ²Ù×÷¡£Ö®Ç°Ìáµ½ÎÒÃÇÓÐ 800 ¶à¸ö Cube£¬²¢²»ÊÇËùÓÐµÄ Cube ¶¼ÐèÒª×ßÕâÌ×Á÷³Ì£¬ ÒòΪÏÞÁ÷¿½±´µÄ»°¿Ï¶¨»áÓ°ÏìÊý¾ÝµÄ²ú³öʱ¼ä£¬ÎÒÃÇÉè¼ÆÁËÕë¶Ô Project »òÕßÊÇ Cube ÉèÖÿªÆôÕâ¸ö¹¦ÄÜ£¬ ÎÒÃÇͨ³£»á¶ÔÊý¾ÝÁ¿±È½Ï´óµÄ Cube ¿ªÆô DistCp ÏÞÁ÷¿½±´£¬ÆäËû Cube »¹ÊÇʹÓÃ֮ǰµÄÊý¾ÝÁ÷³Ì¡£

ÖмäÕâ¸öͼÊÇÒ»¸ö¹¹½¨ÈÎÎñµÄ½Øͼ£¬µÚÒ»²½ÊÇÉú³É HFile£¬µÚ¶þ²½ÊÇ DistCp£¬×îºóÔÙ Bulkload£¬Õâ¸ö¹¦ÄÜÎÒÃÇÐÂÔöÁËһЩÅäÖÃÏ±ÈÈç˵µÚÒ»¸öÊÇ·ñ¿ªÆô DictCp£¬µÚ¶þ¸öÊÇÿ¸ö Map ´ø¿íÊǶàÉÙ£¬ÔÙÓоÍÊÇ×î´óÓжàÉÙ Map¡£Í¨¹ýÕâ¸ö¹¦ÄÜÎÒÃÇ»ù±¾ÉϽâ¾öÁ˹¹½¨¸ß·å IOWait »á±ä¸ßµÄÇé¿ö¡£

Âý²éѯÖÎÀí¨C³¬Ê±¶¨Î»Á´Â·ÓÅ»¯

1£©ÏÖÏó

Âý²éѯÖÎÀíÓöµ½µÄµÚÒ»¸öÎÊÌâ¾ÍÊdz¬Ê±¶¨Î»Á´Â·Ìر𳤡£ÎÒÃÇÊÕµ½ Kylin ±¨¾¯Ê±Ê×ÏÈ»áÏëÖªµÀ£º

ÊÇÄĸöCube³¬Ê±ÁË£¿

Cube¶ÔÓ¦µÄHBase±íÊÇÄĸö£¿

ÊÇRegion²»¿ÉÓû¹ÊDzéѯ·½Ê½±äÁË£¿

֮ǰÌáµ½ÓÐÒ»¶Îʱ¼ä¾­³£³öÏÖ Region ²»¿ÉÓõÄÇé¿ö£¬Ò»µ©³öÏÖ³¬Ê±ÎÒÃDzéѯÁ´Â·ÊÇʲôÑùµÄÄØ£¿ ¿ÉÄÜÎÒÃÇÏÈÈ¥¿´ HBase ÈÕÖ¾Àï¿´ÓÐûÓÐ Deadline has passed µÄ¾¯¸æÈÕÖ¾£¬ÓÐÕâÖÖ±¨¾¯µÄ»°ÎÒÃÇ»áÄõ½ËüµÄ QueryID£¬È»ºóÈ¥ ES »òÕßÊÇ Mysql ÀïÃæÈ¥²éѯÕâ¸ö QureyID ¶ÔÓ¦µÄ Cube ÐÅÏ¢ºÍ SQL£¬ÖªµÀÕâЩÐÅÏ¢Ö®ºó£¬»¹ÐèҪȥµ½³¬Ê±µÄ Kylin ½ÚµãÉÏÈ¥²éѯÈÕÖ¾£¬´ÓÈÕÖ¾ÀïÃæ²ÅÄÜÕÒµ½ÊDzéѯÄĸö HBase ±íµÄÄĸö Region ³¬Ê±£¬È»ºóÔÙÈ¥ÅжÏÊDz»ÊÇ Region ²»¿ÉÓÃÁË£¬»òÕßÊDzéѯ·½Ê½¸Ä±ä¡£ Õâ¸öÁ´Â··Ç³£³¤£¬Ã¿´Î¶¼ÐèÒª HBase ºÍ Kylin µÄͬѧһ¿é¶ùÀ´²é¡£

2£©½â¾ö·½°¸

Õë¶ÔÕâ¸öÍ´µã¸øÎÒÃÇ×öÁËÈçϸĽø£ºÎÒÃÇÖ±½Ó°Ñ Cube ÐÅÏ¢ºÍ Region µÄÐÅÏ¢´òÔÚ HBase µÄÈÕÖ¾Àï¡£ ÖмäÕâ¸öºÚÉ«µÄ²¿·Ö¾ÍÊÇ HBase µÄÈÕÖ¾£¬ÎÒÃÇ¿ÉÒÔ¿´µ½Õâ¸ö²éѯÒѾ­ÖÕÖ¹ÁË£¬Cube µÄÃû×ÖÊÇʲô£¬Region µÄÃû×ÖÊÇʲô£¬ÏÂÃæµÄ°×É«²¿·ÖÊÇͨ¹ýÌìÑÛϵͳÅäÖõı¨¾¯ÐÅÏ¢£¬Õâ¸ö±¨¾¯ÊÇÖ±½Ó±¨µ½Æóҵ΢Ðŵģ¬ÎÒÃÇÄÜÂíÉÏÖªµÀÕâ¸ö Deadline Éæ¼°µÄ Cube ºÍ Region£¬ÄÜÂíÉÏ×öÒ»¸ö¼ì²âÊÇÕâ¸ö±í²»¿ÉÓÃÁË»¹ÊDzéѯ·½Ê½¸Ä±äÁË£¬´ó´ó½ÚÊ¡Á˶¨Î»ÎÊÌâµÄʱ¼ä¡£

Õâ¸öÊÇΪÁ˽â¾ö³¬Ê±Á´Â·¹ý³¤ÎÒÃÇ¶Ô Kylin ×öµÄһЩ´úÂë¸Ä¶¯£¬Ê×ÏÈÎÒÃÇÔÚ Protobuf ÎļþÖмÓÁËÒ»¸ö segmentName ×ֶΣ¬È»ºóÔÚЭ´¦ÀíÆ÷ÀàÖлñÈ¡ÁË Region Ãû×Ö£¬ÔÚЭ´¦ÀíÆ÷µ÷Óà checkDeadLine ·½·¨¼ì²éʱ´«Èë segmentName ºÍ regionName£¬×îºóÈÕÖ¾»á´òÓ¡³öÀ´ segment Ãû³ÆºÍ Region µÄÐÅÏ¢¡£ Õâ¸ö¹¦ÄÜÒѾ­·´À¡¸øÉçÇøÁË£¬¼û¡£

Âý²éѯÖÎÀí-¶ÓÁжѻý¶¨Î»

1£©ÏÖÏó

ÓÐÒ»ÌìÎÒÃÇ·¢ÏÖ Kylin HBase RegionServer ¶ÓÁжѻý·Ç³£ÑÏÖØ£¬RegionServer µÄ P99 µÄÏìӦʱ¼äÒѾ­´ïµ½ÁË 10 ¶à·ÖÖӵļ¶±ð£¬´ó¼Ò¿´ÓÒÉϽÇÊÇ HBase ¹ØÓÚ¶ÓÁеļà¿ØÇé¿ö£¬Ò»Ð©»úÆ÷µÄ¶Ñ»ýÒѽ«½ü 3W¡£ÎÒÃǵ±Ê±·Ç³£ÒÉ»ó£¬ÒòΪ Kylin ºÍ HBase Ö®¼ä RPC µÄ³¬Ê±Ê±¼äÊÇ 10 Ã룬ÔÚ 10 ÃëÖ®ºó Kylin ºÍ HBase µÄÁ¬½Ó¶¼ÒѾ­¶Ï¿ªÁË£¬HBase µ½µ×´¦Àíʲô²éѯ£¬ÓÒϽÇÊÇ HBase RegionServer UI Ò³ÃæµÄ½Øͼ£¬ÔÚÕâ¸ö½ØͼÀïÎÒÃÇ·¢ÏÖһЩ²éѯÆäʵÒѾ­Ö´ÐÐÁË¿ì°ë¸öСʱÁË£¬Õâ°ë¸öСʱÊÇÔÚÖ´ÐÐʲôÄØ£¿

2£©½â¾ö·½°¸

ÎÒÃǵ±Ê±µÄ½â¾ö·½°¸ÊÇÈ¥ÈÎÎñ¶Ñ»ýµÄÓжÓÁÐÍÆ»ýµÄ RegionServer ÉÏÈ¥¿´ÈÕÖ¾£¬Í¨¹ý²éѯ¿ªÊ¼Ê±¼ä½áÊøʱ¼ä×ö²îÖµ£¬ÕÒ³ö²éѯʱ¼ä×µÄ Top10 µÄ²éѯ£¬Í¨¹ý QureyID Æ¥Åä³ö Cube ºÍ¾ßÌåµÄ SQL£¬×îÖÕÎÒÃÇ·¢ÏÖÒ»°ãÕâÖÖ²éѯʱ¼äÌر𳤶¼ÊÇÒòΪ²éѯ·½Ê½µÄ±ä»¯ÓëÔ­À´ Cube ÉèÖÃµÄ Rowkey ²»Ïà·ûµ¼ÖÂÁËÈ«±íɨÃè¡£×îÖյķ½°¸Æäʵ²é³öÀ´Ö®ºó Kylin µÄͬѧ»áÈ¥µ÷Õû Cube µÄ Rowkey ÉèÖã¬È»ºóÖØй¹½¨¡£

ÕâÖÖÀëÏߵĶ¨Î»µÄ·½Ê½Æäʵ²»ÊÇÌرðºÃ£¬Ò»¿ªÊ¼ÎÒÃÇÏë»ùÓÚÈÕÖ¾×öʵʱ±¨¾¯£¬ÕâÑùÄÜ°ïÖúÎÒÃǸü¿ìµÄ·¢ÏֺͶ¨Î»ÎÊÌ⣬µ«ÊǺóÀ´ÏëÏëÕâÒ²ÊDZȽϱ»¶¯µÄÒ»ÖÖ·½Ê½£¬ÕâÖ»ÊÇ·¢ÏÖÎÊÌ⣬²»Äܳ¹µ×½â¾öÕâ¸öÎÊÌâ¡£

ÎÒÃǺóÀ´ÏëµÄÒ»¸ö·½°¸ÊÇ SQL ×÷Ö´ÐÐ֮ǰ¿ÉÒÔΪ SQL ´ò·Ö£¬ÆÀ·Ö¹ýµÍµÄ¾Í¾Ü¾øÖ´ÐУ¬Õâ¸ö¹¦ÄÜ»¹Ã»ÓÐʵÏÖ¡£ÓÐÕâ¸öÏë·¨ÊÇÒòΪµ±ÎÒÃÇÕÒµ½ SQL ÐÅÏ¢ºó£¬ Kylin µÄͬѧÊÇ¿ÉÒÔ¿´³öÀ´²éѯÊDz»ÊDz»ºÏÀí£¬ÊDz»ÊǸú Rowkey ÉèÖò»·û£¬ÎÒÃÇÏëÒÔºó×öÕâÑùÒ»¸ö¹¦ÄÜ£¬°ÑÈËΪÅжϵľ­Ñé³ÌÐò»¯£¬ÔÚ SQL ûÓÐÖ´ÐÐ֮ǰ¾Í°ÑDZÔڵķçÏÕ»¯½âµô¡£

Âý²éѯÖÎÀí ¨C Ö÷¶¯·ÀÓù

Âý²éѯÖÎÀí»¹ÓÐÒ»¸ö¾Ù´ëÊÇ Kylin µÄÖ÷¶¯·ÀÓù¡£ÎÒÃÇ·¢ÏÖÓдóÁ¿µÄºÄʱ½Ï³¤µÄ²éѯ»áÕ¼¾ÝÇëÇó¶ÓÁУ¬Ó°ÏìÆäËû²éѯµÄÏìӦʱ¼ä¡£

½â¾ö·½°¸ÊÇͨ¹ý Kafka ÊÕ¼¯ Kylin µÄÈÕÖ¾£¬¾­¹ýÌìÑÛϵͳʵʱÇåÏ´ºóдÈë Druid£¬Í¨¹ý Druid ×öͳ¼Æ·ÖÎö£¬Èç¹ûij¸öÒµÎñ·½/Cube ÔÚÒ»¶¨Ê±¼äÄÚ³¬¹ý 3 ÃëµÄ²éѯµ½´ïÒ»¶¨µÄ·§Öµ£¬Ö÷¶¯·ÀÓùϵͳ»á°ÑÕâ¸öÒµÎñ·½/Cube µÄ²éѯ³¬Ê±Ê±¼äÉèÖÃΪ 1s£¬ÈýÏÂýµÄ²éѯ¾¡¿ì³¬Ê±£¬±ÜÃâ¶ÔÕý³£²éѯµÄ¸ÉÈÅ¡£Óұ߾ÍÊÇÎÒÃÇÕû¸öÁ÷³ÌµÄÒ»¸ö¼Ü¹¹Í¼£¬Ö÷¶¯·ÀÓù¶ÔÂý²éѯÖÎÀíÓÐÒ»¶¨µÄ×÷Ó㬵«È«±íɨÃèµÄÇé¿ö»¹ÊÇûÓа취ÍêÈ«±ÜÃâ¡£

ÖصãÖ¸±ê²éѯÐÔÄܱ£ÕÏ

1£©ÏÖÏó

ÁíÍâÒ»¸ö¾Ù´ëÊǶÔÖصãÖ¸±êµÄ²éѯÐÔÄܱ£ÕÏ¡£ÔçÆÚ HBase ¼¯ÈºÖ»ÓÐ HDD Ò»ÖÖ´æ´¢½éÖÊ£¬ÖصãÖ¸±êºÍÆÕָͨ±ê¶¼´æ´¢ÔÚ HDD ÉÏ£¬·Ç³£ÈÝÒ×Êܵ½ÆäËû²éѯºÍ HDD ÐÔÄܵÄÓ°Ï죬ÖصãÖ¸±êÏìӦʱ¼äÎÞ·¨±£ÕÏ¡£

2£©½â¾ö·½°¸

ÎÒÃǵĽâ¾ö·½°¸ÊÇÀûÓÃÁË HDFS µÄÒì¹¹´æ´¢£¬¸øÒ»²¿·Ö DataNode ²åÉÏ SSD£¬½«Öصã Cube µÄÊý¾Ý´æ´¢ÔÚ SSD ÉÏ£¬ÌáÉýÍÌ͵ÄͬʱÓëÆÕָͨ±êÊý¾Ý×ö´æ´¢¸ôÀ룬ÕâÑù¾Í¼È±ÜÃâÁËÊܵ½ÆäËû²éѯµÄÓ°Ï죬Ҳ¿ÉÒÔͨ¹ý SSD µÄÐÔÄÜÀ´ÌáÉýÍÌÍ¡£ÒýÈë SSD Ö»ÊÇ×öÁË´æ´¢µÄ¸ôÀ룬»¹¿ÉÒÔͨ¹ý RSGroup ×ö¼ÆËã¸ôÀ룬µ«ÓÉÓÚÖصãÖ¸±êµÄÇëÇóÁ¿Õ¼µ½Á˼¯Èº×ÜÇëÇóÁ¿µÄ 90%ÒÔÉÏ£¬µ¥¶À¸ôÀë³ö¼¸Ì¨»úÆ÷ÊDz»×ãÒÔÖ§³ÅÕâô´óÇëÇóÁ¿µÄ£¬ËùÒÔ×îÖÕÎÒÃDz¢Ã»ÓÐÕâô×ö¡£

×îºóÊÇÎÒÃǵóöµÄһЩ¾­Ñ飬 SSD ¶ÔÊ®ÍòÒÔÉÏɨÃèÁ¿²éѯÐÔÄÜÌáÉý 40%×óÓÒ£¬¶Ô°ÙÍòÒÔÉÏɨÃèÁ¿ÐÔÄÜÌáÉý 20%×óÓÒ¡£

ÕâÊÇÎÒÃÇÓà SSD ×öµÄһЩ¸Ä¶¯£¬Êý¾Ý´æ´¢ÔÚ SSD ÊÇ¿ÉÕë¶Ô Cube ÉèÖõġ£ÎÒÃÇ¿ÉÒÔÖ¸¶¨ÄÄЩ Cube ´æÔÚ SSD ÉÏ£¬¹¹½¨ÈÎÎñ½¨±íʱ»á¶ÁÈ¡ Cube µÄÅäÖ㬰´ÕÕ Cube ÅäÖÃÀ´ÉèÖà HBase ±íµÄÊôÐԺ͸ñíµÄ HDFS ·¾¶´æ´¢²ßÂÔ¡£ÔÚ DistCp ¿½±´Ö®Ç°Ò²ÒªÏȶÁÈ¡ Cube µÄÅäÖã¬Èç¹û Cube µÄÅäÖÃÊÇ ALL_SSD£¬³ÌÐòÐèÒªÉèÖà DistCp µÄÄ¿µÄ·¾¶´æ´¢²ßÂÔΪ ALL_SSD£¬ÉèÖÃÍê³ÉºóÔÙ½øÐÐÊý¾Ý¿½±´¡£

ÕâÑù×öµÄÄ¿µÄÊÇΪÁ˱ÜÃâ Bulkload ºóÊý¾Ý»¹ÐèÒª´Ó HDD Òƶ¯µ½ SSD£¬Òƶ¯Êý¾Ý»á´øÀ´Ê²Ã´Ó°ÏìÄØ£¿ ÎÒÃÇ·¢ÏÖÈç¹û²»ÏÈÉèÖà DistCp Ä¿µÄ·¾¶´æ´¢²ßÂԵĻ°£¬Êý¾Ý»á±»ÏÈдµ½ HDD ÉÏ£¬Bulkload ºóÓÉÓÚ±íµÄ HDFS ´æ´¢Â·¾¶´æ´¢²ßÂÔÊÇ ALL_SSD£¬Hadoop µÄ Mover ³ÌÐò»á°ÑÊý¾Ý´Ó HDD Òƶ¯µ½ SSD£¬µ±Ò»¸öÊý¾Ý¿éµÄÈý¸ö¸±±¾¶¼Òƶ¯µ½ SSD »úÆ÷ÉϺó£¬RegionServer ²»ÄÜ´ÓÆ仺´æ¸ÃÊý¾Ý¿éµÄÈý̨ DataNode É϶ÁÈ¡µ½Êý¾Ý£¬Õâʱ RegionServer »áËæ»úµÈ´ý¼¸ÃëÖÓºóÈ¥Ïò NameNode »ñÈ¡¸ÃÊý¾Ý¿é×îÐ嵀 DataNode ÐÅÏ¢£¬Õâ»áµ¼Ö²éѯÏìӦʱ¼ä±ä³¤£¬ËùÒÔÐèÒªÔÚ DistCp ¿½±´Êý¾Ý֮ǰÏÈÉèÖÃÄ¿µÄ·¾¶µÄ´æ´¢²ßÂÔ¡£

JVM GC Æ¿¾±

1£©ÏÖÏó

ÎÒÃÇÓöµ½µÄÏÂÒ»¸öÎÊÌâ¾ÍÊÇ RegionServer µÄ JVM GC Æ¿¾±¡£ÔÚ²éѯ¸ß·åÆÚ Kylin HBase JVM Pause ±¨¾¯ÌرðƵ·±£¬´ÓÕâÕÅͼÀïÃæ¿ÉÒÔ¿´µ½ÓÐÒ»ÌìÒѾ­³¬¹ý 1200 ¸ö¡£Kylin ¶ÔÓû§µÄ³ÐŵÊÇÈýÃëÄÚ²éѯռ±ÈÔÚ 99.7%£¬µ±Ê±ÒѾ­´ïµ½ÁË 99.8%£¬ÓÚÊÇÎÒÃǾÍÏ뻹ÐèÒªÓÅ»¯ÄÄÒ»¿éÄÜÈà 3 ÃëÄÚ²éѯռ±È´ïµ½ 99.9%£¬Õâ¸ö JVM Pause Ã÷ÏÔ³ÉΪÎÒÃÇÐèÒª¸Ä½øµÄÒ»¸öµã£¬´ó¼Ò×ö JAVA »ù±¾¶¼ÖªµÀ JVM ÔõôȥÓÅ»¯ÄØ£¿

2£©½â¾ö·½°¸

Ê×ÏÈ¿ÉÄÜ»áÏëµ½µ÷Õû²ÎÊý£¬Æä´Î¾ÍÊÇ»»Ò»ÖÖ GC Ëã·¨£¬ÎÒÃDzÉÓÃÁ˺óÕß¡£ ֮ǰÎÒÃÇÓõÄÊÇ JDK1.8£¬GC Ëã·¨ÊÇ G1£¬ºóÀ´ÎÒÃÇÁ˽⵽ JDK11 ÍƳöÁËÒ»¸öеÄËã·¨½Ð ZGC¡£×îÖÕ,ÎÒÃÇ°Ñ JDK ´Ó 1.8 Éý¼¶µ½ JDK13£¬²ÉÓà ZGC Ìæ´úÁËÔ­ÓÐµÄ G1¡£ÓÒÉϽǵÄͼÊÇ ZGC ÉÏÏߺó£¬ÕâÌ×¼¯Èº RegionServer µÄ JVM Pause µÄ´ÎÊý¼¸ºõΪ 0£¬ÓÒÏÂ½ÇµÄ GC ʱ¼äÒ²ÊÇÏà±È֮ǰ½µµÍÌرð¶à¡£ZGC ÓÐÒ»¸öÉè¼ÆÄ¿±êÊÇ Max JVM Pause µÄʱ¼äÔÚ¼¸ºÁÃ룬Õâ¸öЧ¹ûµ±Ê±¿´×ÅÊDZȽÏÃ÷ÏԵģ¬×ó±ßµÄͼÊÇÌìÑÛϵͳµÄ±¨¾¯µÄÇ÷ÊÆͼ£¬ZGC ÉÏÏߺó JVM Pause ±¨¾¯ÊýÁ¿Ã÷ÏÔ½µµÍ¡£¹ØÓÚ ZGC ÎÒ±¾Ô»ᷢһƪÎÄÕ½éÉÜ ZGC Ëã·¨ºÍÎÒÃÇ×öÁËÄÄЩ¸Ä¶¯À´ÊÊÅä JDK13£¬ÕâÀï¾Í²»Ïêϸ½éÉÜÁË¡£

 
   
1399 ´Îä¯ÀÀ       22
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
Node+Vue3.0Ç°¶ËÈ«Õ»¿ª·¢ 7-5 [ÌØ»Ý]
Spring Cloud΢·þÎñ¼Ü¹¹ 7-5[ÌØ»Ý]
SysMLºÍEAϵͳÉè¼ÆÓ뽨ģ 7-26[ÌØ»Ý]
Python¡¢Êý¾Ý·ÖÎöÓë»úÆ÷ѧϰ 8-23[ÌØ»Ý]
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ 8-22[ÏßÉÏ]
LinuxÄں˱à³Ì¼°É豸Çý¶¯ 7-25[±±¾©]
 
×îÐÂÎÄÕÂ
´óÊý¾Ýƽ̨ϵÄÊý¾ÝÖÎÀí
ÈçºÎÉè¼ÆʵʱÊý¾Ýƽ̨£¨¼¼Êõƪ£©
´óÊý¾Ý×ʲú¹ÜÀí×ÜÌå¿ò¼Ü¸ÅÊö
Kafka¼Ü¹¹ºÍÔ­Àí
ELK¶àÖּܹ¹¼°ÓÅÁÓ
×îпγÌ
´óÊý¾Ýƽ̨´î½¨Óë¸ßÐÔÄܼÆËã
´óÊý¾Ýƽ̨¼Ü¹¹ÓëÓ¦ÓÃʵս
´óÊý¾ÝϵͳÔËά
´óÊý¾Ý·ÖÎöÓë¹ÜÀí
Python¼°Êý¾Ý·ÖÎö
³É¹¦°¸Àý
ijͨÐÅÉ豸ÆóÒµ PythonÊý¾Ý·ÖÎöÓëÍÚ¾ò
ijÒøÐÐ È˹¤ÖÇÄÜ+Python+´óÊý¾Ý
±±¾© Python¼°Êý¾Ý·ÖÎö
ÉñÁúÆû³µ ´óÊý¾Ý¼¼Êõƽ̨-Hadoop
ÖйúµçÐÅ ´óÊý¾Ýʱ´úÓëÏÖ´úÆóÒµµÄÊý¾Ý»¯ÔËӪʵ¼ù