±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁË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£¬ÕâÀï¾Í²»Ïêϸ½éÉÜÁË¡£ |