ÉÏһƪÎÄÕÂÖ÷Òª½éÉÜÁËHBase¶ÁÐÔÄÜÓÅ»¯µÄ»ù±¾Ì×·£¬±¾ÆªÎÄÕÂÀ´ËµµÀ˵µÀÈçºÎÕï¶ÏHBaseдÊý¾ÝµÄÒì³£ÎÊÌâÒÔ¼°ÓÅ»¯Ð´ÐÔÄÜ¡£ºÍ¶ÁÏà±È£¬HBaseдÊý¾ÝÁ÷³Ìµ¹ÊÇÏԵúܼòµ¥£ºÊý¾ÝÏÈ˳ÐòдÈëHLog£¬ÔÙдÈë¶ÔÓ¦µÄ»º´æMemstore£¬µ±MemstoreÖÐÊý¾Ý´óС´ïµ½Ò»¶¨ãÐÖµ£¨128M£©Ö®ºó£¬ÏµÍ³»áÒì²½½«MemstoreÖÐÊý¾Ýflushµ½HDFSÐγÉСÎļþ¡£
HBaseÊý¾ÝдÈëͨ³£»áÓöµ½Á½ÀàÎÊÌ⣬һÀàÊÇдÐÔÄܽϲÁíÒ»ÀàÊÇÊý¾Ý¸ù±¾Ð´²»½øÈ¥¡£ÕâÁ½ÀàÎÊÌâµÄÇÐÈëµãÒ²²»¾¡Ïàͬ£¬ÈçÏÂͼËùʾ£º

дÐÔÄÜÓÅ»¯ÇÐÈëµã
1. ÊÇ·ñÐèҪдWAL£¿WALÊÇ·ñÐèҪͬ²½Ð´È룿
ÓÅ»¯ÔÀí£ºÊý¾ÝдÈëÁ÷³Ì¿ÉÒÔÀí½âΪһ´Î˳ÐòдWAL+Ò»´Îд»º´æ£¬Í¨³£Çé¿öÏÂд»º´æÑӳٺܵͣ¬Òò´ËÌáÉýдÐÔÄܾÍÖ»ÄÜ´ÓWALÈëÊÖ¡£WAL»úÖÆÒ»·½ÃæÊÇΪÁËÈ·±£Êý¾Ý¼´Ê¹Ð´È뻺´æ¶ªÊ§Ò²¿ÉÒÔ»Ö¸´£¬ÁíÒ»·½ÃæÊÇΪÁ˼¯ÈºÖ®¼äÒì²½¸´ÖÆ¡£Ä¬ÈÏWAL»úÖÆ¿ªÆôÇÒʹÓÃͬ²½»úÖÆÐ´ÈëWAL¡£Ê×ÏÈ¿¼ÂÇÒµÎñÊÇ·ñÐèҪдWAL£¬Í¨³£Çé¿öÏ´ó¶àÊýÒµÎñ¶¼»á¿ªÆôWAL»úÖÆ£¨Ä¬ÈÏ£©£¬µ«ÊǶÔÓÚ²¿·ÖÒµÎñ¿ÉÄܲ¢²»Ìرð¹ØÐÄÒì³£Çé¿öϲ¿·ÖÊý¾ÝµÄ¶ªÊ§£¬¶ø¸ü¹ØÐÄÊý¾ÝдÈëÍÌÍÂÁ¿£¬±ÈÈçÄ³Ð©ÍÆ¼öÒµÎñ£¬ÕâÀàÒµÎñ¼´Ê¹¶ªÊ§Ò»²¿·ÖÓû§ÐÐΪÊý¾Ý¿ÉÄܶÔÍÆ¼ö½á¹û²¢²»¹¹³ÉºÜ´óÓ°Ï죬µ«ÊǶÔÓÚдÈëÍÌÍÂÁ¿ÒªÇóºÜ¸ß£¬²»ÄÜÔì³ÉÊý¾Ý¶ÓÁÐ×èÈû¡£ÕâÖÖ³¡¾°Ï¿ÉÒÔ¿¼ÂǹرÕWALдÈ룬дÈëÍÌÍÂÁ¿¿ÉÒÔÌáÉý2x~3x¡£Í˶øÇóÆä´Î£¬ÓÐЩҵÎñ²»ÄܽÓÊܲ»Ð´WAL£¬µ«¿ÉÒÔ½ÓÊÜWALÒ첽дÈ룬ҲÊÇ¿ÉÒÔ¿¼ÂÇÓÅ»¯µÄ£¬Í¨³£Ò²»á´øÀ´1x¡«2xµÄÐÔÄÜÌáÉý¡£
ÓÅ»¯ÍƼö£º¸ù¾ÝÒµÎñ¹Ø×¢µãÔÚWAL»úÖÆÓëдÈëÍÌÍÂÁ¿Ö®¼ä×ö³öÑ¡
ÆäËû×¢Òâµã£º¶ÔÓÚʹÓÃIncrement²Ù×÷µÄÒµÎñ£¬WAL¿ÉÒÔÉèÖùرգ¬Ò²¿ÉÒÔÉèÖÃÒ첽дÈ룬·½·¨Í¬PutÀàËÆ¡£ÏàÐÅ´ó¶àÊýIncrement²Ù×÷ÒµÎñ¶ÔWAL¿ÉÄܶ¼²»ÊÇÄÇôÃô¸Ð¡«
2. PutÊÇ·ñ¿ÉÒÔͬ²½ÅúÁ¿Ìá½»£¿
ÓÅ»¯ÔÀí£ºHBase·Ö±ðÌṩÁ˵¥ÌõputÒÔ¼°ÅúÁ¿putµÄAPI½Ó¿Ú£¬Ê¹ÓÃÅúÁ¿put½Ó¿Ú¿ÉÒÔ¼õÉÙ¿Í»§¶Ëµ½RegionServerÖ®¼äµÄRPCÁ¬½ÓÊý£¬Ìá¸ßдÈëÐÔÄÜ¡£ÁíÍâÐèҪעÒâµÄÊÇ£¬ÅúÁ¿putÇëÇóҪôȫ²¿³É¹¦·µ»Ø£¬ÒªÃ´Å׳öÒì³£¡£
ÓÅ»¯½¨Ò飺ʹÓÃÅúÁ¿put½øÐÐдÈëÇëÇó
3. PutÊÇ·ñ¿ÉÒÔÒì²½ÅúÁ¿Ìá½»£¿
ÓÅ»¯ÔÀí£ºÒµÎñÈç¹û¿ÉÒÔ½ÓÊÜÒì³£Çé¿öÏÂÉÙÁ¿Êý¾Ý¶ªÊ§µÄ»°£¬»¹¿ÉÒÔʹÓÃÒì²½ÅúÁ¿Ìá½»µÄ·½Ê½Ìá½»ÇëÇó¡£Ìá½»·ÖΪÁ½½×¶ÎÖ´ÐУºÓû§ÌύдÇëÇóÖ®ºó£¬Êý¾Ý»áдÈë¿Í»§¶Ë»º´æ£¬²¢·µ»ØÓû§Ð´Èë³É¹¦£»µ±¿Í»§¶Ë»º´æ´ïµ½ãÐÖµ£¨Ä¬ÈÏ2M£©Ö®ºóÅúÁ¿Ìá½»¸øRegionServer¡£ÐèҪעÒâµÄÊÇ£¬ÔÚijЩÇé¿öÏ¿ͻ§¶ËÒì³£µÄÇé¿öÏ»º´æÊý¾ÝÓпÉÄܶªÊ§¡£
ÓÅ»¯½¨Ò飺ÔÚÒµÎñ¿ÉÒÔ½ÓÊܵÄÇé¿öÏ¿ªÆôÒì²½ÅúÁ¿Ìá½»
ʹÓ÷½Ê½£ºsetAutoFlush(false)
4. RegionÊÇ·ñÌ«ÉÙ£¿
ÓÅ»¯ÔÀí£ºµ±Ç°¼¯ÈºÖбíµÄRegion¸öÊýÈç¹ûСÓÚRegionServer¸öÊý£¬¼´Num(Region
of Table) < Num(RegionServer)£¬¿ÉÒÔ¿¼ÂÇÇзÖRegion²¢¾¡¿ÉÄÜ·Ö²¼µ½²»Í¬RegionServerÀ´Ìá¸ßϵͳÇëÇó²¢·¢¶È£¬Èç¹ûNum(Region
of Table) > Num(RegionServer)£¬ÔÙÔö¼ÓRegion¸öÊýЧ¹û²¢²»Ã÷ÏÔ¡£
ÓÅ»¯½¨Ò飺ÔÚNum(Region of Table) < Num(RegionServer)µÄ³¡¾°ÏÂÇзֲ¿·ÖÇëÇó¸ºÔظߵÄRegion²¢Ç¨ÒƵ½ÆäËûRegionServer£»
5. дÈëÇëÇóÊÇ·ñ²»¾ùºâ£¿
ÓÅ»¯ÔÀí£ºÁíÒ»¸öÐèÒª¿¼ÂǵÄÎÊÌâÊÇдÈëÇëÇóÊÇ·ñ¾ùºâ£¬Èç¹û²»¾ùºâ£¬Ò»·½Ãæ»áµ¼ÖÂϵͳ²¢·¢¶È½ÏµÍ£¬ÁíÒ»·½ÃæÒ²ÓпÉÄÜÔì³É²¿·Ö½Úµã¸ºÔغܸߣ¬½ø¶øÓ°ÏìÆäËûÒµÎñ¡£·Ö²¼Ê½ÏµÍ³ÖÐÌØ±ðº¦ÅÂÒ»¸ö½Úµã¸ºÔغܸߵÄÇé¿ö£¬Ò»¸ö½Úµã¸ºÔغܸ߿ÉÄÜ»áÍÏÂýÕû¸ö¼¯Èº£¬ÕâÊÇÒòΪºÜ¶àÒµÎñ»áʹÓÃMutliÅúÁ¿Ìá½»¶ÁдÇëÇó£¬Ò»µ©ÆäÖÐÒ»²¿·ÖÇëÇóÂäµ½¸Ã½ÚµãÎÞ·¨µÃµ½¼°Ê±ÏìÓ¦£¬¾Í»áµ¼ÖÂÕû¸öÅúÁ¿ÇëÇó³¬Ê±¡£Òò´Ë²»Å½ڵãå´µô£¬¾ÍŽڵãÑÙÑÙһϢ£¡
ÓÅ»¯½¨Ò飺¼ì²éRowKeyÉè¼ÆÒÔ¼°Ô¤·ÖÇø²ßÂÔ£¬±£Ö¤Ð´ÈëÇëÇó¾ùºâ¡£
6. дÈëKeyValueÊý¾ÝÊÇ·ñÌ«´ó£¿
KeyValue´óС¶ÔдÈëÐÔÄܵÄÓ°Ïì¾Þ´ó£¬Ò»µ©Óöµ½Ð´ÈëÐÔÄܱȽϲîµÄÇé¿ö£¬ÐèÒª¿¼ÂÇÊÇ·ñÓÉÓÚдÈëKeyValueÊý¾ÝÌ«´óµ¼Ö¡£KeyValue´óС¶ÔдÈëÐÔÄÜÓ°ÏìÇúÏßͼÈçÏ£º

ͼÖкá×ø±êÊÇдÈëµÄÒ»ÐÐÊý¾Ý£¨Ã¿ÐÐÊý¾Ý10ÁУ©´óС£¬×ó×Ý×ø±êÊÇдÈëÍÌÍÂÁ¿£¬ÓÒ×ø±êÊÇдÈëÆ½¾ùÑÓ³Ù£¨ms£©¡£¿ÉÒÔ¿´³öËæ×ŵ¥ÐÐÊý¾Ý´óС²»¶Ï±ä´ó£¬Ð´ÈëÍÌÍÂÁ¿¼±¾çϽµ£¬Ð´ÈëÑÓ³ÙÔÚ100KÖ®ºó¼±¾çÔö´ó¡£
˵µ½ÕâÀÓбØÒªºÍ´ó¼Ò·ÖÏíÁ½ÆðÔÚÉú²úÏß»·¾³ÒòΪҵÎñKeyValue½Ï´óµ¼ÖµÄÑÏÖØÎÊÌ⣬һÆðÊÇÒòΪ´ó×Ö¶ÎÒµÎñдÈëµ¼ÖÂÆäËûÒµÎñÍÌÍÂÁ¿¼±¾çϽµ£¬ÁíÒ»ÆðÊÇÒòΪ´ó×Ö¶ÎÒµÎñscanµ¼ÖÂRegionServerå´»ú¡£
°¸¼þÒ»£º´ó×Ö¶ÎдÈëµ¼ÖÂÆäËûÒµÎñÍÌÍÂÁ¿¼±¾çϽµ
²¿·ÖÒµÎñ·´À¡¼¯ÈºÐ´ÈëºöÈ»±äÂý¡¢Êý¾Ý¿ªÊ¼¶Ñ»ýµÄÇé¿ö£¬²é¿´¼¯Èº±í¼¶±ðµÄÊý¾Ý¶ÁдQPS¼à¿Ø£¬·¢ÏÖÎÊÌâµÄµÚÒ»¸ö¹Ø¼üµã£ºÒµÎñA¿ªÊ¼Ð´ÈëÖ®ºóÕû¸ö¼¯ÈºÆäËû²¿·ÖÒµÎñдÈëQPS¶¼¼¸ºõ¶ÏÑÂʽϵø£¬³õ²½»³ÒɺÚÊÖ¾ÍÊÇÒµÎñA¡£
ÏÂͼÊǵ±Ê±ÒµÎñAµÄдÈëQPS£¨Êºó·¢ÏÖÄÔ²ÐÍüÁ˽ØÈ¡ÆäËû±íQPS¶ÏÑÂʽϵøµÄ²ÒÏ󣩣¬µ«ÊǵÚÒ»¸Ð¾õÊÇQPS²¢²»¸ß°¡£¬Æ¾Ê²Ã´È¥Ó°Ïì±ðÈË£¡

ÓÚÊǾͼÌÐø²é¿´ÆäËû¼à¿ØÐÅÏ¢£¬Ê×ÏÈÈ·ÈÏϵͳ×ÊÔ´£¨Ö÷ÒªÊÇIO£©²¢Ã»Óе½´ïÆ¿¾±£¬Æä´ÎÈ·ÈÏÁËдÈëµÄ¾ùºâÐÔ£¬Ö±ÖÁ¿´µ½ÏÂͼ£¬²Å×·×Ùµ½Ó°ÏìÆäËûÒµÎñдÈëµÄµÚ¶þ¸ö¹Ø¼üµã£ºRegionServerµÄhandler£¨ÅäÖÃ150£©±»²Ð±©ºÄ¾¡£º

¶Ô±ÈÉÏÃæÁ½ÕÅͼ£¬ÊDz»ÊÇ·¢ÏÖ³öÆæµÄÒ»Ö£¬ÄǾͿÉÒÔ»ù±¾È·ÈÏÊÇÓÉÓÚ¸ÃÒµÎñдÈëµ¼ÖÂÕą̂RegionServerµÄhandler±»ºÄ¾¡£¬½ø¶øÆäËûÒµÎñÄò»µ½handler£¬×ÔȻд²»½øÈ¥¡£ÄÇÎÊÌâÀ´ÁË£¬ÎªÊ²Ã´»áÕâÑù£¿Õý³£Çé¿öÏÂhandlerÔÚ´¦ÀíÍê¿Í»§¶ËÇëÇóÖ®ºó»áÁ¢ÂíÊÍ·Å£¬Î¨Ò»µÄ½âÊÍÊÇÕâЩÇëÇóµÄÑÓ³ÙʵÔÚÌ«´ó¡£
ÊÔÏ룬ÎÒÃÇÈ¥ºº±¤µêÅŶÓÂòºº±¤£¬ÓÐ150¸ö´°¿Ú·þÎñ£¬Õý³£Çé¿öÏ´ó¼ÒÂòÒ»¸öºÜ¿ì£¬ÕâÑù150¸ö´°¿Ú¿ÉÄÜÖ»ÐèÒª50¸ö·þÎñ¡£¼ÙÉèºöÈ»À´ÁËÒ»Åú´óºº£¬Òª¶¨ÖƳ¬´óºº±¤£¬ºÃÁË£¬ËùÓеĴ°¿Ú¶¼¹¤×÷ÆðÀ´£¬¶øÇÒÒòΪ´óºº±¤²»ºÃÖÆ×÷µ¼Ö·þÎñºÜÂý£¬ÕâÑù±ØÈ»»áµ¼ÖÂÆäËûÅŶӵÄÓû§³¤Ê±¼äµÈ´ý£¬Ö±ÖÁ³¬Ê±¡£
¿É»ØÍ·Ò»ÏëÕâ¿ÉÊÇдÇëÇó°¡£¬Ôõô»áÓÐÕâô´óµÄÇëÇóÑÓ³Ù£¡ºÍÒµÎñ·½¹µÍ¨Ö®ºóÈ·ÈϸñíÖ÷Òª´æ´¢ÓïÁÏ¿âÎĵµÐÅÏ¢£¬¶¼ÊÇÆ½¾ù100K×óÓÒµÄÊý¾Ý£¬ÊDz»ÊÇÒѾ²Âµ½Á˽á¹û£¬Ã»´í£¬¾ÍÊÇÒòΪÕâ¸öÒµÎñKeyValueÌ«´óµ¼Ö¡£KeyValueÌ«´ó»áµ¼ÖÂHLogÎļþдÈëÆµ·±Çл»¡¢flushÒÔ¼°compactionƵ·±´¥·¢£¬Ð´ÈëÐÔÄܼ±¾çϽµ¡£
ĿǰÕë¶ÔÕâÖֽϴóKeyValueдÈëÐÔÄܽϲîµÄÎÊÌ⻹ûÓÐÖ±½ÓµÄ½â¾ö·½°¸£¬ºÃÔÚÉçÇøÒѾÒâʶµ½Õâ¸öÎÊÌ⣬ÔÚ½ÓÏÂÀ´¼´½«·¢²¼µÄÏÂÒ»¸ö´ó°æ±¾HBase
2.0.0°æ±¾»áÕë¶Ô¸ÃÎÊÌâ½øÐÐÉîÈëÓÅ»¯£¬Ïê¼ûHBase MOB£¬ÓÅ»¯ºóÓû§Ê¹ÓÃHBase´æ´¢Îĵµ¡¢Í¼Æ¬µÈ¶þ½øÖÆÊý¾Ý¶¼»áÓм«¼ÑµÄÐÔÄÜÌåÑé¡£
°¸¼þ¶þ£º´ó×Ö¶Îscanµ¼ÖÂRegionServerå´»ú
°¸¼þÏÖ³¡£ºÓжÎʱ¼äÓиö0.98¼¯ÈºµÄRegionServer¾³£Æµ·±å´»ú£¬²é¿´ÈÕÖ¾ÊÇÓÉÓÚ¡±java.lang.OutOfMemoryError:
Requested array size exceeds VM limit¡±£¬ÈçÏÂͼËùʾ£º
ÔÒò·ÖÎö£ºÍ¨¹ý²é¿´Ô´ÂëÒÔ¼°Ïà¹ØÎĵµ£¬È·ÈϸÃÒì³£·¢ÉúÔÚscan½á¹ûÊý¾Ý»Ø´«¸ø¿Í»§¶ËʱÓÉÓÚÊý¾ÝÁ¿Ì«´óµ¼ÖÂÉêÇëµÄarray´óС³¬¹ýJVM¹æ¶¨µÄ×î´óÖµ£¨
Interge.Max_Value-2£©¡£Ôì³É¸ÃÒì³£µÄÁ½ÖÖ×î³£¼ûÔÒò·Ö±ðÊÇ£º
±íÁÐÌ«¿í£¨¼¸Ê®ÍòÁлòÕßÉϰÙÍòÁУ©£¬²¢ÇÒscan·µ»ØÃ»ÓжÔÁÐÊýÁ¿×öÈκÎÏÞÖÆ£¬µ¼ÖÂÒ»ÐÐÊý¾Ý¾Í¿ÉÄÜÒòΪ°üº¬´óÁ¿ÁжøÊý¾Ý³¬¹ýarray´óСãÐÖµ
KeyValueÌ«´ó£¬²¢ÇÒscan·µ»ØÃ»ÓжԷµ»Ø½á¹û´óС×öÈκÎÏÞÖÆ£¬µ¼Ö·µ»ØÊý¾Ý½á¹û´óС³¬¹ýarray´óСãÐÖµ
ÓеÄͯЬ¾ÍÒªÌáÎÊÀ²£¬ËµÈç¹ûÒѾ¶Ô·µ»Ø½á¹û´óС×öÁËÏÞÖÆ£¬ÔÚ±íÁÐÌ«¿íµÄÇé¿öÏÂÊDz»ÊǾͿÉÒÔ²»¶ÔÁÐÊýÁ¿×öÏÞÖÆÄØ¡£ÕâÀïÐèÒª³ÎÇåһϣ¬Èç¹û²»¶ÔÁÐÊý¾Ý×öÏÞÖÆ£¬Êý¾Ý×ÜÊÇÒ»ÐÐÒ»Ðзµ»ØµÄ£¬¼´Ê¹Ò»ÐÐÊý¾Ý´óС´óÓÚÉèÖõķµ»Ø½á¹ûÏÞÖÆ´óС£¬Ò²»á·µ»ØÍêÕûµÄÒ»ÐÐÊý¾Ý¡£ÔÚÕâÖÖÇé¿öÏ£¬Èç¹ûÕâÒ»ÐÐÊý¾ÝÒѾ³¬¹ýarray´óСãÐÖµ£¬Ò²»á´¥·¢OOMÒì³£¡£
½â¾ö·½°¸£ºÄ¿Ç°Õë¶Ô¸ÃÒì³£ÓÐÁ½ÖÖ½â¾ö·½°¸£¬ÆäÒ»ÊÇÉý¼¶¼¯Èºµ½1.0£¬ÎÊÌâ¶¼½â¾öÁË¡£Æä¶þÊÇÒªÇó¿Í»§¶Ë·ÃÎʵÄʱºò¶Ô·µ»Ø½á¹û´óС×öÏÞÖÆ(scan.setMaxResultSize(2*1024*1024))¡¢²¢ÇÒ¶ÔÁÐÊýÁ¿×öÏÞÖÆ(scan.setBatch(100))£¬µ±È»£¬0.98.13°æ±¾ÒÔºóÒ²¿ÉÒÔ¶Ô·µ»Ø½á¹û´óСÔÚ·þÎñÆ÷¶Ë½øÐÐÏÞÖÆ£¬ÉèÖòÎÊýhbase.server.scanner.max.result.size¼´¿É
дÒì³£ÎÊÌâ¼ì²éµã
ÉÏÊö¼¸µãÖ÷ÒªÕë¶ÔдÐÔÄÜÓÅ»¯½øÐÐÁ˽éÉÜ£¬³ý´ËÖ®Í⣬ÔÚһЩÇé¿öÏ»¹»á³öÏÖдÒì³££¬Ò»µ©·¢ÉúÐèÒª¿¼ÂÇÏÂÃæÁ½ÖÖÇé¿ö£¨GCÒýÆðµÄ²»×ö½éÉÜ£©£º
MemstoreÉèÖÃÊÇ·ñ»á´¥·¢Region¼¶±ð»òÕßRegionServer¼¶±ðflush²Ù×÷£¿
ÎÊÌâ½âÎö£ºÒÔRegionServer¼¶±ðflush½øÐнâÎö£¬HBaseÉ趨һµ©Õû¸öRegionServerÉÏËùÓÐMemstoreÕ¼ÓÃÄÚ´æ´óС×ܺʹóÓÚÅäÖÃÎļþÖÐupperlimitʱ£¬ÏµÍ³¾Í»áÖ´ÐÐRegionServer¼¶±ðflush£¬flushËã·¨»áÊ×ÏȰ´ÕÕRegion´óС½øÐÐÅÅÐò£¬ÔÙ°´ÕÕ¸Ã˳ÐòÒÀ´Î½øÐÐflush£¬Ö±ÖÁ×ÜMemstore´óСµÍÖÁlowerlimit¡£ÕâÖÖflushͨ³£»áblock½Ï³¤Ê±¼ä£¬ÔÚÈÕÖ¾ÖлᷢÏÖ¡°Memstore
is above high water mark and block 7452 ms¡±£¬±íʾÕâ´Îflush½«»á×èÈû7s×óÓÒ¡£
ÎÊÌâ¼ì²éµã£º
Region¹æÄ£ÓëMemstore×Ü´óСÉèÖÃÊÇ·ñºÏÀí£¿Èç¹ûRegionServerÉÏRegion½Ï¶à£¬¶øMemstore×Ü´óСÉèÖõĺÜС£¨JVMÉèÖýÏС»òÕßupper.limitÉèÖýÏС£©£¬¾Í»á´¥·¢RegionServer¼¶±ðflush¡£¼¯Èº¹æ»®Ïà¹ØÄÚÈÝ¿ÉÒԲο¼ÎÄÕ¡¶¡·
ÁÐ×åÊÇ·ñÉèÖùý¶à£¬Í¨³£Çé¿öϱíÁÐ×彨ÒéÉèÖÃÔÚ1¡«3¸öÖ®¼ä£¬×îºÃÒ»¸ö¡£Èç¹ûÉèÖùý¶à£¬»áµ¼ÖÂÒ»¸öRegionÖаüº¬ºÜ¶àMemstore£¬µ¼Ö¸üÈÝÒ×´¥µ½¸ßˮλupperlimit
StoreÖÐHFileÊýÁ¿ÊÇ·ñ´óÓÚÅäÖòÎÊýblockingStoreFile?
ÎÊÌâ½âÎö£º¶ÔÓÚÊý¾ÝдÈëºÜ¿ìµÄ¼¯Èº£¬»¹ÐèÒªÌØ±ð¹Ø×¢Ò»¸ö²ÎÊý£ºhbase.hstore.blockingStoreFiles£¬´Ë²ÎÊý±íʾÈç¹ûµ±Ç°hstoreÖÐÎļþÊý´óÓÚ¸ÃÖµ£¬ÏµÍ³½«»áÇ¿ÖÆÖ´ÐÐcompaction²Ù×÷½øÐÐÎļþºÏ²¢£¬ºÏ²¢µÄ¹ý³Ì»á×èÈûÕû¸öhstoreµÄдÈ롣ͨ³£Çé¿öϸ󡾰·¢ÉúÔÚÊý¾ÝдÈëºÜ¿ìµÄÇé¿öÏ£¬ÔÚÈÕÖ¾ÖпÉÒÔ·¢ÏÖ¡±Waited
3722ms on a compaction to clean up ¡®too many store
files¡°
ÎÊÌâ¼ì²éµã£º
²ÎÊýÉèÖÃÊÇ·ñºÏÀí£¿hbase.hstore.compactionThreshold±íʾÆô¶¯compactionµÄ×îµÍãÐÖµ£¬¸ÃÖµ²»ÄÜÌ«´ó£¬·ñÔò»á»ýÀÛÌ«¶àÎļþ£¬Ò»°ã½¨ÒéÉèÖÃΪ5¡«8×óÓÒ¡£hbase.hstore.blockingStoreFilesĬÈÏÉèÖÃΪ7£¬¿ÉÒÔÊʵ±µ÷´óһЩ¡£
дÐÔÄÜ»¹ÄÜÔÙÌá¸ßô£¿
ÉÏÎÄÒѾ´ÓдÐÔÄÜÓÅ»¯ÒÔ¼°Ð´Òì³£Õï¶ÏÁ½¸ö·½Ãæ¶ÔHBaseÖÐÊý¾ÝдÈë¿ÉÄܵÄÎÊÌâ½øÐÐÁËÏêϸµÄ½âÊÍ£¬ÏàÐÅÔÚ0.98°æ±¾µÄ»ù´¡É϶ÔдÈëÀ´ËµÒѾÊÇ×îºÃµÄ½â¾ö·½°¸ÁË¡£µ«ÊÇÓÐЩҵÎñ¿ÉÄÜÒÀÈ»¾õµÃ²»¹»¿ì£¬±Ï¾¹¡±¸ü¿ì¡±ÊÇËùÓд洢ϵͳ»î×ŵ͝Á¦£¬ÄÇ»¹ÓÐÌá¸ß¿Õ¼äÂ𣿵±È»£¬½ÓÏÂÀ´¼òµ¥½éÉÜHBaseÖ®ºó°æ±¾¶ÔдÐÔÄÜÓÅ»¯µÄÁ½µãºËÐĸĽø£º
1.Utilize Flash storage for WAL(HBASE-12848)
Õâ¸öÌØÐÔÒâζ×Å¿ÉÒÔ½«WALµ¥¶ÀÖÃÓÚSSDÉÏ£¬ÕâÑù¼´Ê¹ÔÚĬÈÏÇé¿öÏ£¨WALSync£©£¬Ð´ÐÔÄÜÒ²»áÓкܴóµÄÌáÉý¡£ÐèҪעÒâµÄÊÇ£¬¸ÃÌØÐÔ½¨Á¢ÔÚHDFS
2.6.0+µÄ»ù´¡ÉÏ£¬HDFSÒÔǰ°æ±¾²»Ö§³Ö¸ÃÌØÐÔ¡£¾ßÌå¿ÉÒԲο¼¹Ù·½jira£ºhttps://issues.apache.org/jira/browse/HBASE-12848
2.Multiple WALs(HBASE-14457)
¸ÃÌØÐÔÒ²ÊǶÔWAL½øÐиÄÔ죬µ±Ç°WALÉè¼ÆÎªÒ»¸öRegionServerÉÏËùÓÐRegion¹²ÏíÒ»¸öWAL£¬¿ÉÒÔÏëÏóÔÚдÈëÍÌÍÂÁ¿½Ï¸ßµÄʱºò±ØÈ»´æÔÚ×ÊÔ´¾ºÕù£¬½µµÍÕûÌåÐÔÄÜ¡£Õë¶ÔÕâ¸öÎÊÌ⣬ÉçÇøÐ¡»ï°é£¨°¢Àï°Í°Í´óÉñ£©Ìá³öMultiple
WALs»úÖÆ£¬¹ÜÀíÔ±¿ÉÒÔΪÿ¸öNamespaceϵÄËùÓбíÉèÖÃÒ»¸ö¹²ÏíWAL£¬Í¨¹ýÕâÖÖ·½Ê½£¬Ð´ÐÔÄÜ´óÔ¼¿ÉÒÔÌáÉý20%¡«40%×óÓÒ¡£¾ßÌå¿ÉÒԲο¼¹Ù·½jira£ºhttps://issues.apache.org/jira/browse/HBASE-14457
ºÃÁË£¬ÕâÆªÎÄÕºʹó¼ÒÒ»Æð·ÖÏíÁ˸öÈ˶ÔHBaseдÈëÐÔÄÜÓÅ»¯ÒÔ¼°Ð´ÈëÒì³£ÎÊÌâµÄһЩÀí½â£¬ÈçÓÐç¢Â©£¬»¹ÍûÖ¸Õý£¡ÁíÍ⣬Èç¹û´ó¼ÒÓÐÈκιØÓÚ´Ë»°ÌâµÄ°¸ÀýÒ²ºÜ»¶ÓÒ»ÆðÌÖÂÛ¡« |