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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
HBaseºËÐÄ֪ʶµã×ܽá
 
  2834  次浏览      27
 2018-10-17 
 
±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚ36´óÊý¾Ý£¬HBaseÊÇÒ»ÖÖHadoopÊý¾Ý¿â£¬ÊÇÒ»¸ö¿ÉÒÔËæ»ú·ÃÎʵĴ洢ºÍ¼ìË÷Êý¾ÝµÄƽ̨

Ò»¡¢HBase½éÉÜ

1¡¢»ù±¾¸ÅÄî

HBaseÊÇÒ»ÖÖHadoopÊý¾Ý¿â£¬¾­³£±»ÃèÊöΪһÖÖÏ¡ÊèµÄ£¬·Ö²¼Ê½µÄ£¬³Ö¾Ã»¯µÄ£¬¶àάÓÐÐòÓ³É䣬Ëü»ùÓÚÐмü¡¢ÁмüºÍʱ¼ä´Á½¨Á¢Ë÷Òý£¬ÊÇÒ»¸ö¿ÉÒÔËæ»ú·ÃÎʵĴ洢ºÍ¼ìË÷Êý¾ÝµÄƽ̨¡£HBase²»ÏÞÖÆ´æ´¢µÄÊý¾ÝµÄÖÖÀ࣬ÔÊÐí¶¯Ì¬µÄ¡¢Áé»îµÄÊý¾ÝÄ£ÐÍ£¬²»ÓÃSQLÓïÑÔ£¬Ò²²»Ç¿µ÷Êý¾ÝÖ®¼äµÄ¹ØÏµ¡£HBase±»Éè¼Æ³ÉÔÚÒ»¸ö·þÎñÆ÷¼¯ÈºÉÏÔËÐУ¬¿ÉÒÔÏàÓ¦µØºáÏòÀ©Õ¹¡£

2¡¢HBaseʹÓó¡¾°ºÍ³É¹¦°¸Àý

»¥ÁªÍøËÑË÷ÎÊÌ⣺ÅÀ³æÊÕ¼¯ÍøÒ³£¬´æ´¢µ½BigTableÀMapReduce¼ÆËã×÷ҵɨÃèÈ«±íÉú³ÉËÑË÷Ë÷Òý£¬´ÓBigTableÖвéѯËÑË÷½á¹û£¬Õ¹Ê¾¸øÓû§¡£

ץȡÔöÁ¿Êý¾Ý£ºÀýÈ磬ץȡ¼à¿ØÖ¸±ê£¬×¥È¡Óû§½»»¥Êý¾Ý£¬Ò£²â¼¼Êõ£¬¶¨ÏòͶ·Å¹ã¸æµÈ

ÄÚÈÝ·þÎñ

ÐÅÏ¢½»»¥

3¡¢HBase ShellÃüÁîÐн»»¥£º

Æô¶¯Shell $ hbase shell

ÁгöËùÓеıí hbase > list

´´½¨ÃûΪmytableµÄ±í£¬º¬ÓÐÒ»¸öÁÐ×åhb hbase > create ' mytable' , 'hb'

ÔÚ¡®mytable¡¯±íµÄ'first'ÐÐÖеġ®hb:data¡¯ÁжÔÓ¦µÄÊý¾Ýµ¥ÔªÖвåÈë×Ö½ÚÊý×é¡®hello HBase¡¯

hbase > put 'mytable' , 'first' , 'hb:data' , 'hello HBase'

¶ÁÈ¡mytable±í ¡®first¡¯ÐеÄÄÚÈÝ hbase > get 'mytable' , 'first'

¶ÁÈ¡mytable±íËùÓеÄÄÚÈÝ hbase > scan ¡®mytable'

¶þ¡¢ÈëÃÅ

1¡¢API

ºÍÊý¾Ý²Ù×÷ÓйصÄHBase APIÓÐ5¸ö£¬·Ö±ðÊÇ Get(¶Á)£¬Put(д)£¬Delete(ɾ)£¬Scan(ɨÃè)ºÍIncrement(ÁÐÖµµÝÔö)

2¡¢²Ù×÷±í

Ê×ÏÈÒª´´½¨Ò»¸öconfiguration¶ÔÏó

Configuration conf = HBaseConfiguration.create();

ʹÓÃeclipseʱµÄ»°»¹±ØÐ뽫ÅäÖÃÎļþÌí¼Ó½øÀ´¡£

conf.addResource (new Path("E:\\share\\hbase-site.xml"));

conf.addResource (new Path("E:\\share\\core-site.xml"));

conf.addResource (new Path("E:\\share\\hdfs-site.xml"));

ʹÓÃÁ¬½Ó³Ø´´½¨Ò»ÕÅ±í¡£

HTablePool pool = new HTablePool(conf,1);

HTableInterface usersTable = pool.getTable("users");

3¡¢Ð´²Ù×÷

ÓÃÀ´´æ´¢Êý¾ÝµÄÃüÁîÊÇput£¬Íù±íÀï´æ´¢Êý¾Ý£¬ÐèÒª´´½¨PutʵÀý¡£²¢Öƶ¨Òª¼ÓÈëµÄÐÐ

Put put = new Put(byte[] row) ;

PutµÄadd·½·¨ÓÃÀ´Ìí¼ÓÊý¾Ý£¬·Ö±ðÉ趨ÁÐ×壬ÏÞ¶¨·ûÒÔ¼°µ¥Ôª¸ñµÄÖ¸

put.add (byte[] family , byte[] qualifier , byte[] value) ;

×îºóÌá½»ÃüÁî¸ø±í

usersTable.put(put);

usersTable.close();

ÐÞ¸ÄÊý¾Ý£¬Ö»ÐèÖØÐÂÌá½»Ò»´Î×îеÄÊý¾Ý¼´¿É¡£

HBaseд²Ù×÷µÄ¹¤×÷»úÖÆ£º

HBaseÿ´ÎÖ´ÐÐд²Ù×÷¶¼»áдÈëÁ½¸öµØ·½£ºÔ¤Ð´Ê½ÈÕÖ¾£¨write-ahead log£¬Ò²³ÆHLog£©ºÍMemStore£¨Ð´È뻺³åÇø£©£¬ÒÔ±£Ö¤Êý¾Ý³Ö¾Ã»¯£¬Ö»Óе±ÕâÁ½¸öµØ·½µÄ±ä»¯ÐÅÏ¢¶¼Ð´È벢ȷÈϺ󣬲ÅÈÏΪд¶¯×÷Íê³É¡£MemStoreÊÇÄÚ´æÀïµÄдÈ뻺³åÇø£¬HBaseÖÐÊý¾ÝÔÚÓÀ¾ÃдÈëÓ²ÅÌ֮ǰÔÚÕâÀïÀÛ»ý£¬µ±MemStoreÌîÂúºó£¬ÆäÖеÄÊý¾Ý»áˢдµ½Ó²ÅÌ£¬Éú³ÉÒ»¸öHFile¡£

4¡¢¶Á²Ù×÷

´´½¨Ò»¸öGetÃüÁîʵÀý£¬°üº¬Òª²éѯµÄÐÐ

Get get = new Get(byte[] row) ;

Ö´ÐÐaddColumn()»òaddFamily()¿ÉÒÔÉèÖÃÏÞÖÆÌõ¼þ¡£

½«getʵÀýÌá½»µ½±í»á·µ»ØÒ»¸ö°üº¬Êý¾ÝµÄResultʵÀý£¬ÊµÀýÖаüº¬ÐÐÖÐËùÓÐÁÐ×åµÄËùÓÐÁС£

Result r = usersTable.get(get) ;

¿ÉÒÔ¶ÔresultʵÀý¼ìË÷ÌØ¶¨µÄÖµ

byte[] b = r.getValue (byte[] family , byte[] qualifier) ;

¹¤×÷»úÖÆ£º

BlockCacheÓÃÀ´±£´æ´ÓHFileÖжÁÈëÄÚ´æµÄƵ·±·ÃÎʵÄÊý¾Ý£¬±ÜÃâÓ²Å̶Á£¬Ã¿¸öÁÐ×å¶¼ÓÐ×Ô¼ºµÄBlockCache¡£´ÓHBaseÖжÁ³öÒ»ÐУ¬Ê×ÏÈ»á¼ì²éMemStoreµÈ´ýÐ޸ĵĶÓÁУ¬È»ºó¼ì²éBlockCache¿´°üº¬¸ÃÐеÄBlockÊÇ·ñ×î½ü±»·ÃÎʹý£¬×îºó·ÃÎÊÓ²ÅÌÉϵĶÔÓ¦HFile¡£

5¡¢É¾³ý²Ù×÷

´´½¨Ò»¸öDeleteʵÀý£¬Ö¸¶¨ÒªÉ¾³ýµÄÐС£

Delete delete = new Delete(byte[] row) ;

¿ÉÒÔͨ¹ýdeleteFamily()ºÍdeleteColumn()·½·¨Ö¸¶¨É¾³ýÐеÄÒ»²¿·Ö¡£

6¡¢±íɨÃè²Ù×÷

Scan scan = new Scan() ¿ÉÒÔÖ¸¶¨ÆðʼÐкͽáÊøÐС£

setStartRow() , setStopRow() , setFilter()·½·¨¿ÉÒÔÓÃÀ´ÏÞÖÆ·µ»ØµÄÊý¾Ý¡£

addColumn()ºÍaddFamily()·½·¨»¹¿ÉÒÔÖ¸¶¨ÁкÍÁÐ×å¡£

HBaseģʽµÄÊý¾ÝÄ£ÐͰüÀ¨£º

±í£ºHBaseÓñíÀ´×éÖ¯Êý¾Ý¡£

ÐУºÔÚ±íÀÊý¾Ý°´Ðд洢£¬ÐÐÓÉÐмüΨһ±êʶ¡£ÐмüûÓÐÊý¾ÝÀàÐÍ£¬Îª×Ö½ÚÊý×ébyte[]¡£

ÁÐ×壺ÐÐÀïµÄÊý¾Ý°´ÕÕÁÐ×å·Ö×飬ÁÐ×屨ÐëÊÂÏȶ¨Òå²¢ÇÒ²»ÇáÒ×Ð޸ġ£±íÖÐÿÐÐÓµÓÐÏàͬµÄÁÐ×å¡£

ÁÐÏÞ¶¨·û£ºÁÐ×åÀïµÄÊý¾Ýͨ¹ýÁÐÏÞ¶¨·û»òÁÐÀ´¶¨Î»£¬ÁÐÏÞ¶¨·û²»±ØÊÂÏȶ¨Òå¡£

µ¥Ôª£º´æ´¢ÔÚµ¥ÔªÀïµÄÊý¾Ý³ÆÎªµ¥ÔªÖµ£¬ÖµÊÇ×Ö½ÚÊý×é¡£µ¥ÔªÓÉÐмü£¬ÁÐ×å»òÁÐÏÞ¶¨·ûÒ»ÆðÈ·¶¨¡£

ʱ¼ä°æ±¾£ºµ¥ÔªÖµÓÐʱ¼ä°æ±¾£¬ÊÇÒ»¸ölongÀàÐÍ¡£

Ò»¸öHBaseÊý¾Ý×ø±êµÄÀý×Ó£º

HBase¿ÉÒÔ¿´×öÊÇÒ»¸ö¼üÖµÊý¾Ý¿â¡£HBaseµÄÉè¼ÆÊÇÃæÏò°ë½á¹¹»¯Êý¾ÝµÄ£¬Êý¾Ý¼Ç¼¿ÉÄܰüº¬²»Ò»ÖµÄÁУ¬²»È·¶¨´óСµÈ¡£

Èý¡¢·Ö²¼Ê½µÄHBase¡¢HDFSºÍMapReduce

1¡¢·Ö²¼Ê½Ä£Ê½µÄHBase

HBase½«±í»áÇзֳÉСµÄÊý¾Ýµ¥Î»½Ðregion£¬·ÖÅäµ½¶ą̀·þÎñÆ÷¡£ÍйÜregionµÄ·þÎñÆ÷½Ð×öRegionServer¡£Ò»°ãÇé¿öÏ£¬RgionServerºÍHDFS DataNode²¢ÁÐÅäÖÃÔÚͬһÎïÀíÓ²¼þÉÏ£¬RegionServer±¾ÖÊÉÏÊÇHDFS¿Í»§¶Ë£¬ÔÚÉÏÃæ´æ´¢·ÃÎÊÊý¾Ý£¬HMaster·ÖÅäregion¸øRegionServer,ÿ¸öRegionServerÍйܶà¸öregion¡£

HBaseÖеÄÁ½¸öÌØÊâµÄ±í£¬-ROOT-ºÍ.META.£¬ÓÃÀ´²éÕÒ¸÷ÖÖ±íµÄregionλÖÃÔÚÄÄ¡£-ROOT-Ö¸Ïò.META.±íµÄregion£¬.META.±íÖ¸ÏòÍйܴý²éÕÒµÄregionµÄRegionServer¡£

Ò»´Î¿Í»§¶Ë²éÕÒ¹ý³ÌµÄ3²ã·Ö²¼Ê½B+Ê÷ÈçÏÂͼ£º

HBase¶¥²ã½á¹¹Í¼£º

zookeeper¸ºÔð¸ú×Ùregion·þÎñÆ÷£¬±£´æroot regionµÄµØÖ·¡£

Client¸ºÔðÓëzookeeper×Ó¼¯ÈºÒÔ¼°HRegionServerÁªÏµ¡£

HMaster¸ºÔðÔÚÆô¶¯HBaseʱ£¬°ÑËùÓеÄregion·ÖÅ䵽ÿ¸öHRegion ServerÉÏ£¬Ò²°üÀ¨-ROOT-ºÍ.META.±í¡£

HRegionServer¸ºÔð´ò¿ªregion£¬²¢´´½¨¶ÔÓ¦µÄHRegionʵÀý¡£HRegion±»´ò¿ªºó£¬ËüΪÿ¸ö±íµÄHColumnFamily´´½¨Ò»¸öStoreʵÀý¡£Ã¿¸öStoreʵÀý°üº¬Ò»¸ö»ò¶à¸öStoreFileʵÀý£¬ËüÃÇÊÇʵ¼ÊÊý¾Ý´æ´¢ÎļþHFileµÄÇáÁ¿¼¶·â×°¡£Ã¿¸öStoreÓÐÆä¶ÔÓ¦µÄÒ»¸öMemStore£¬Ò»¸öHRegionServer¹²ÏíÒ»¸öHLogʵÀý¡£

Ò»´Î»ù±¾µÄÁ÷³Ì£º

a¡¢ ¿Í»§¶Ëͨ¹ýzookeeper»ñÈ¡º¬ÓÐ-ROOT-µÄregion·þÎñÆ÷Ãû¡£

b¡¢ ͨ¹ýº¬ÓÐ-ROOT-µÄregion·þÎñÆ÷²éѯº¬ÓÐ.META.±íÖжÔÓ¦µÄregion·þÎñÆ÷Ãû¡£

c¡¢ ²éѯ.META.·þÎñÆ÷»ñÈ¡¿Í»§¶Ë²éѯµÄÐмüÊý¾ÝËùÔÚµÄregion·þÎñÆ÷Ãû¡£

d¡¢ ͨ¹ýÐмüÊý¾ÝËùÔÚµÄregion·þÎñÆ÷»ñÈ¡Êý¾Ý¡£

HFile½á¹¹Í¼£º

TrailerÓÐÖ¸ÏòÆäËû¿éµÄÖ¸Õ룬Index¿é¼Ç¼DataºÍMeta¿éµÄÆ«ÒÆÁ¿£¬DataºÍMeta¿é´æ´¢Êý¾Ý¡£Ä¬ÈÏ´óСÊÇ64KB¡£Ã¿¸ö¿é°üº¬Ò»¸öMagicÍ·²¿ºÍÒ»¶¨ÊýÁ¿µÄÐòÁл¯µÄKeyValueʵÀý¡£

KeyValue¸ñʽ£º

¸Ã½á¹¹ÒÔÁ½¸ö·Ö±ð±íʾ¼ü³¤¶ÈºÍÖµ³¤¶ÈµÄ¶¨³¤Êý×Ö¿ªÊ¼£¬¼ü°üº¬ÁËÐмü£¬ÁÐ×åÃûºÍÁÐÏÞ¶¨·û£¬Ê±¼ä´ÁµÈ¡£

ԤдÈÕÖ¾WAL£º

ÿ´Î¸üж¼»áдÈëÈÕÖ¾£¬Ö»ÓÐдÈë³É¹¦²Å»á֪ͨ¿Í»§¶Ë²Ù×÷³É¹¦£¬È»ºó·þÎñÆ÷¿ÉÒÔ°´Ðè×ÔÓɵØÅúÁ¿´¦Àí»ò¾ÛºÏÄÚ´æÖеÄÊý¾Ý¡£

±à¼­Á÷ÔÚmemstoreºÍWALÖ®¼ä·ÖÁ÷µÄ¹ý³Ì£º

´¦Àí¹ý³Ì£º¿Í»§¶Ëͨ¹ýRPCµ÷Óý«KeyValue¶ÔÏóʵÀý·¢Ë͵½º¬ÓÐÆ¥ÅäregionµÄHRegionServer¡£½Ó×ÅÕâЩʵÀý±»·¢Ë͵½¹ÜÀíÏàÓ¦ÐеÄHRegionʵÀý£¬Êý¾Ý±»Ð´Èëµ½WAL£¬È»ºó±»·ÅÈ뵽ʵ¼ÊÓµÓмǼµÄ´æ´¢ÎļþµÄMemStoreÖС£µ±memstoreÖеÄÊý¾Ý´ïµ½Ò»¶¨µÄ´óСÒÔºó£¬Êý¾Ý»áÒì²½µØÁ¬ÐøÐ´Èëµ½ÎļþϵͳÖУ¬WALÄܱ£Ö¤ÕâÒ»¹ý³ÌµÄÊý¾Ý²»»á¶ªÊ§¡£

2¡¢HBaseºÍMapReduce

´ÓMapReduceÓ¦Ó÷ÃÎÊHBaseÓÐ3ÖÖ·½Ê½£º

×÷Òµ¿ªÊ¼Ê±¿ÉÒÔÓÃHBase×÷ΪÊý¾ÝÔ´£¬×÷Òµ½áÊøÊ±¿ÉÒÔÓÃHBase½ÓÊÕÊý¾Ý£¬ÈÎÎñ¹ý³ÌÖÐÓÃHBase¹²Ïí×ÊÔ´¡£

ʹÓÃHBase×÷ΪÊý¾ÝÔ´

½×¶Îmap

protected void map(ImmutableBytesWritable rowkey,Result result,Context context){

};

´ÓHBase±íÖжÁÈ¡µÄ×÷ÒµÒÔ[rowkey:scan result]¸ñʽ½ÓÊÕ[k1,v1]¼üÖµ¶Ô£¬¶ÔÓ¦µÄÀàÐÍÊÇImmutableBytesWritableºÍResult¡£

´´½¨ÊµÀýɨÃè±íÖÐËùÓеÄÐÐ

Scan scan = new Scan();

scan.addColumn(¡­);

½ÓÏÂÀ´ÔÚMapReduceÖÐʹÓÃScanʵÀý¡£

TableMapReduceUtil.initTableMapperJob (tablename,scan,map.class,

Êä³ö¼üµÄÀàÐÍ.class,Êä³öÖµµÄÀàÐÍ.class,job);

ʹÓÃHBase½ÓÊÕÊý¾Ý

reduce½×¶Î

protected void reduce(

ImmutableBytesWritable rowkey, Iterable<put>values, Context context){

};

°ÑreducerÌîÈëµ½×÷ÒµÅäÖÃÖУ¬

TableMapReduceUtil.initTableReducerJob (tablename,reduce.class,job);

3¡¢HBaseʵÏÖ¿É¿¿ÐԺͿÉÓÃÐÔ

HDFS×÷Ϊµ×²ã´æ´¢£¬Îª¼¯ÈºÀïµÄËùÓÐRegionServerÌṩµ¥Ò»ÃüÃû¿Õ¼ä£¬Ò»¸öRegionServer¶ÁдÊý¾Ý¿ÉÒÔΪÆäËüËùÓÐRegionServer¶Áд¡£Èç¹ûÒ»¸öRegionServer³öÏÖ¹ÊÕÏ£¬ÈÎºÎÆäËûRegionServer¶¼¿ÉÒԴӵײãÎļþϵͳ¶ÁÈ¡Êý¾Ý£¬»ùÓÚ±£´æÔÚHDFSÀïµÄHFile¿ªÊ¼Ìṩ·þÎñ¡£½Ó¹ÜÕâ¸öRegionServerz·þÎñµÄregion¡£

ËÄ¡¢ÓÅ»¯HBase

1¡¢Ëæ»ú¶ÁÃܼ¯ÐÍ

ÓÅ»¯·½Ïò£º¸ßЧÀûÓûº´æºÍ¸üºÃµÄË÷Òý

Ôö¼Ó»º´æÊ¹ÓõĶѵİٷֱȣ¬Í¨¹ý²ÎÊý hfile.block.cache.size ÅäÖá£

¼õÉÙMemStoreÕ¼Óõİٷֱȣ¬Í¨¹ýhbase.regionserver.global.memstore.lowerLimit ºÍhbase.regionserver.global.memstore.upperLimitÀ´µ÷½Ú¡£

ʹÓøüСµÄÊý¾Ý¿é£¬Ê¹Ë÷ÒýµÄÁ£¶È¸üϸ¡£

´ò¿ª²¼Â¡¹ýÂËÆ÷£¬ÒÔ¼õÉÙΪ²éÕÒÖ¸¶¨ÐеÄKey Value¶ÔÏó¶ø¶ÁÈ¡µÄHFileµÄÊýÁ¿¡£

ÉèÖü¤½ø»º´æ£¬¿ÉÒÔÌáÉýËæ»ú¶ÁÐÔÄÜ¡£

¹Ø±ÕûÓб»Óõ½Ëæ»ú¶ÁµÄÁÐ×壬ÌáÉý»º´æÃüÖÐÂÊ¡£

2¡¢Ë³Ðò¶ÁÃܼ¯ÐÍ

ÓÅ»¯·½Ïò£º¼õÉÙʹÓûº´æ¡£

Ôö´óÊý¾Ý¿éµÄ´óС£¬Ê¹Ã¿´ÎÓ²ÅÌѰµÀʱ¼äÈ¡³öµÄÊý¾Ý¸ü¶à¡£

ÉèÖýϸߵÄɨÃèÆ÷»º´æÖµ£¬ÒÔ±ãÔÚÖ´Ðдó¹æÄ£Ë³Ðò¶Áʱÿ´ÎRPCÇëÇóɨÃèÆ÷¿ÉÒÔÈ¡»Ø¸ü¶àÐС£ ²ÎÊý hbase.client.scanner.caching ¶¨ÒåÁËÔÚɨÃèÆ÷Éϵ÷ÓÃnext·½·¨Ê±È¡»ØµÄÐеÄÊýÁ¿¡£

¹Ø±ÕÊý¾Ý¿éµÄ»º´æ£¬±ÜÃâ·­ÌÚ»º´æµÄ´ÎÊýÌ«¶à¡£Í¨¹ýScan.setCacheBlocks(false)ÉèÖá£

¹Ø±Õ±íµÄ»º´æ£¬ÒÔ±ãÔÚÿ´ÎɨÃèʱ²»ÔÙ·­ÌÚ»º´æ¡£

3¡¢Ð´Ãܼ¯ÐÍ

ÓÅ»¯·½Ïò£º²»ÒªÌ«Æµ·±Ë¢Ð´£¬ºÏ²¢»òÕß²ð·Ö¡£

µ÷¸ßµ×²ã´æ´¢Îļþ£¨HStoreFile£©µÄ×î´ó´óС£¬regionÔ½´óÒâζ×ÅÔÚдµÄʱºò²ð·ÖÔ½ÉÙ¡£Í¨¹ý²ÎÊý hbase.hregion.max.filesizeÉèÖá£

Ôö´óMemStoreµÄ´óС£¬Í¨¹ý²ÎÊýhbase.hregion.memstore.flush.sizeµ÷½Ú¡£Ë¢Ð´µ½HDFSµÄÊý¾ÝÔ½¶à£¬Éú²úµÄHFileÔ½´ó£¬»áÔÚдµÄʱºò¼õÉÙÉú³ÉÎļþµÄÊýÁ¿£¬´Ó¶ø¼õÉٺϲ¢µÄ´ÎÊý¡£

ÔÚÿ̨RegionServerÉÏÔö¼Ó·ÖÅ䏸MemStoreµÄ¶Ñ±ÈÀý¡£°ÑupperLimitÉèΪÄܹ»ÈÝÄÉÿ¸öregionµÄMemStore³ËÒÔÿ¸öRegionServerÉÏÔ¤ÆÚregionµÄÊýÁ¿¡£

À¬»ø»ØÊÕÓÅ»¯£¬ÔÚhbase-env.shÎļþÀïÉèÖ㬿ÉÒÔÉèÖóõʼֵΪ£º-Xmx8g -Xms8g -Xmn128m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC

-XX:CMSInitiatingOccupancyFraction=70

´ò¿ªMemStore-Local Allocation BufferÕâ¸öÌØÐÔ£¬ÓÐÖúÓÚ·ÀÖ¹¶ÑµÄË鯬»¯¡£ ͨ¹ý²ÎÊýhbase.hregion.memstore.mslab.enabledÉèÖÃ

4¡¢»ìºÏÐÍ

ÓÅ»¯·½Ïò£ºÐèÒª·´¸´³¢ÊÔ¸÷ÖÖ×éºÏ£¬È»ºóÔËÐвâÊÔ£¬µÃµ½×î¼Ñ½á¹û¡£

Ó°ÏìÐÔÄܵÄÒòËØ»¹°üÀ¨£º

ѹËõ£º¿ÉÒÔ¼õÉÙ¼¯ÈºÉϵÄIOѹÁ¦

ºÃµÄÐмüÉè¼Æ

ÔÚÔ¤ÆÚ¼¯Èº¸ºÔØ×îСµÄʱºòÊÖ¹¤´¦Àí´óºÏ²¢

ÓÅ»¯RegionServer´¦Àí³ÌÐò¼ÆÊý

   
2834 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

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

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

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ