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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
HbaseÔ­Àí·ÖÏí
 
  2633  次浏览      28
 2018-7-3
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚÍøÂ磬±¾ÎÄÖ÷Òª´ÓHbaseµÄÊý¾ÝÄ£ÐÍ¡¢ÏµÍ³¼Ü¹¹¡¢ÔËάºÍ¸ß¿ÉÓõÈÁù¸ö·½Ãæ½éÉÜÁËHbaseÔ­Àí¡£

Ò»¡¢HBase¼ò½é

HbaseÊÇʲô

HBaseÊÇÒ»ÖÖ¹¹½¨ÔÚHDFSÖ®Éϵķֲ¼Ê½¡¢ÃæÏòÁС¢¶à°æ±¾¡¢·Ç¹ØÏµÐ͵ÄÊý¾Ý¿â¡£ÔÚÐèҪʵʱ¶Áд¡¢Ëæ»ú·ÃÎʳ¬´ó¹æÄ£Êý¾Ý¼¯Ê±£¬¿ÉÒÔʹÓÃHBase¡£HBase ÊÇGoogle Bigtable µÄ¿ªÔ´ÊµÏÖ¡£

HBaseµÄÌØµã

´ó£ºÒ»¸ö±í¿ÉÒÔÓÐÉÏÒÚÐУ¬ÉϰÙÍòÁС£

ÃæÏòÁУºÃæÏòÁУ¨×飩µÄ´æ´¢ºÍȨÏÞ¿ØÖÆ£¬ÁУ¨×飩¶ÀÁ¢¼ìË÷¡£

Ï¡Ê裺¶ÔÓÚΪ¿Õ£¨NULL£©µÄÁУ¬²¢²»Õ¼Óô洢¿Õ¼ä£¬Òò´Ë£¬±í¿ÉÒÔÉè¼ÆµÄ·Ç³£Ï¡Êè¡£

ÎÞģʽ£ºÃ¿Ò»Ðж¼ÓÐÒ»¸ö¿ÉÒÔÅÅÐòµÄÖ÷¼üºÍÈÎÒâ¶àµÄÁУ¬ÁпÉÒÔ¸ù¾ÝÐèÒª¶¯Ì¬Ôö¼Ó£¬Í¬Ò»ÕűíÖв»Í¬µÄÐпÉÒÔÓнØÈ»²»Í¬µÄÁС£

Êý¾Ý¶à°æ±¾£ºÃ¿¸öµ¥ÔªÖеÄÊý¾Ý¿ÉÒÔÓжà¸ö°æ±¾£¬Ä¬ÈÏÇé¿öÏ£¬°æ±¾ºÅ×Ô¶¯·ÖÅ䣬°æ±¾ºÅ¾ÍÊǵ¥Ôª¸ñ²åÈëʱµÄʱ¼ä´Á¡£

Êý¾ÝÀàÐ͵¥Ò»£ºHBaseÖеÄÊý¾Ý¶¼ÊÇ×Ö·û´®£¬Ã»ÓÐÀàÐÍ£¬´æ´¢ÔÚhbaseÉϵͼÊÇ×Ö½ÚÊý×é¡£

¶þ¡¢HBaseÊý¾ÝÄ£ÐÍ

HBase ÒÔ±íµÄÐÎʽ´æ´¢Êý¾Ý¡£±íÓÉÐкÍÁÐ×é³É¡£Áл®·ÖΪÈô¸É¸öÁÐ×壨row family£©£¬ÈçÏÂͼËùʾ¡£

1) HBaseµÄÂß¼­Êý¾ÝÄ£ÐÍ

2) HBaseµÄÎïÀíÊý¾ÝÄ£ÐÍ

Âß¼­Êý¾ÝÄ£ÐÍÖпհ×cellÔÚÎïÀíÉÏÊDz»´æ´¢µÄ£¬Òò´ËÈôÒ»¸öÇëÇóΪҪ»ñÈ¡t8ʱ¼äµÄcontents:html£¬ËûµÄ½á¹û¾ÍÊǿա£ÏàËÆµÄ£¬ÈôÇëÇóΪ»ñÈ¡t9ʱ¼äµÄanchor:my.look.ca£¬½á¹ûÒ²Êǿա£µ«ÊÇ£¬Èç¹û²»Ö¸Ã÷ʱ¼ä£¬½«»á·µ»Ø×îÐÂʱ¼äµÄÐУ¬Ã¿¸ö×îÐµĶ¼»á·µ»Ø

Row Key

Óë NoSQL Êý¾Ý¿âÒ»Ñù£¬Row Key ÊÇÓÃÀ´¼ìË÷¼Ç¼µÄÖ÷¼ü¡£¼¸ÖÖ·ÃÎÊ HBase table ÖеÄÐз½Ê½£º

1)ͨ¹ýµ¥¸ö Row Key ·ÃÎÊ¡£

2)ͨ¹ý Row Key µÄ range È«±íɨÃè¡£

3)Row Key ¿ÉÒÔʹÈÎÒâ×Ö·û´®£¨×î´ó³¤¶ÈÊÇ64KB£¬Êµ¼ÊÓ¦ÓÃÖ㤶ÈÒ»°ãΪ 10 ~ 100bytes£©£¬ÔÚHBase ÄÚ²¿£¬Row Key ±£´æÎª×Ö½ÚÊý×é¡£

ÁÐ×å

HBase ±íÖеÄÿ¸öÁж¼¹éÊôÓÚij¸öÁÐ×å¡£ÁÐ×åÊDZíµÄ Schema µÄÒ»²¿·Ö£¨¶øÁв»ÊÇ£©£¬±ØÐëÔÚʹÓñí֮ǰ¶¨Òå¡£ÁÐÃû¶¼ÒÔÁÐ×å×÷Ϊǰ׺£¬ÀýÈç courses:history¡¢courses:math ¶¼ÊôÓÚ courses Õâ¸öÁÐ×å¡£

·ÃÎÊ¿ØÖÆ¡¢´ÅÅ̺ÍÄÚ´æµÄʹÓÃͳ¼Æ¶¼ÊÇÔÚÁÐ×å²ãÃæ½øÐеġ£ÔÚʵ¼ÊÓ¦ÓÃÖУ¬ÁÐ×åÉϵĿØÖÆÈ¨ÏÞÄܰïÖúÎÒÃǹÜÀí²»Í¬ÀàÐ͵ÄÓ¦Ó㬠ÀýÈ磬ÔÊÐíһЩӦÓÿÉÒÔÌí¼ÓеĻù±¾Êý¾Ý¡¢Ò»Ð©Ó¦ÓÿÉÒÔ¶ÁÈ¡»ù±¾Êý¾Ý²¢´´½¨¼Ì³ÐµÄÁÐ×å¡¢ һЩӦÓÃÔòÖ»ÔÊÐíä¯ÀÀÊý¾Ý£¨ÉõÖÁ¿ÉÄÜÒòΪÒþ˽µÄÔ­Òò²»ÄÜä¯ÀÀËùÓÐÊý¾Ý£©¡£

Cell

ʱ¼ä´ÁHBase ÖÐͨ¹ý Row ºÍ Columns È·¶¨µÄÒ»¸ö´æ´¢µ¥Ôª³ÆÎª Cell¡£Ã¿¸ö Cell ¶¼±£´æ×Åͬһ·ÝÊý¾ÝµÄ¶à¸ö°æ±¾¡£ °æ±¾Í¨¹ýʱ¼ä´ÁÀ´Ë÷Òý£¬Ê±¼ä´ÁµÄÀàÐÍÊÇ 64 λÕûÐÍ¡£Ê±¼ä´Á¿ÉÒÔÓÉHBase£¨ÔÚÊý¾ÝдÈëʱ×Ô¶¯£©¸³Öµ£¬ ´Ëʱʱ¼ä´ÁÊǾ«È·µ½ºÁÃëµÄµ±Ç°ÏµÍ³Ê±¼ä¡£Ê±¼ä´ÁÒ² ¿ÉÒÔÓɿͻ§ÏÔʾ¸³Öµ¡£Èç¹ûÓ¦ÓóÌÐòÒª±ÜÃâÊý¾Ý°æ±¾³åÍ»£¬¾Í±ØÐë×Ô¼ºÉú³É¾ßÓÐΨһÐÔµÄʱ¼ä´Á¡£Ã¿¸ö Cell ÖУ¬²»Í¬°æ±¾µÄÊý¾Ý°´ÕÕʱ¼äµ¹ÐòÅÅÐò£¬¼´×îеÄÊý¾ÝÅÅÔÚ×îÇ°Ãæ¡£

ΪÁ˱ÜÃâÊý¾Ý´æÔÚ¹ý¶à°æ±¾Ôì³ÉµÄ¹ÜÀí£¨°üÀ¨´æ´¢ºÍË÷Òý£©¸ºµ££¬HBase ÌṩÁËÁ½ÖÖÊý¾Ý°æ±¾»ØÊÕ·½Ê½¡£ Ò»ÊDZ£´æÊý¾ÝµÄ×îºó n ¸ö°æ±¾£¬¶þÊDZ£´æ×î½üÒ»¶Îʱ¼äÄڵİ汾£¨±ÈÈç×î½üÆßÌ죩¡£Óû§¿ÉÒÔÕë¶Ôÿ¸öÁÐ×å½øÐÐÉèÖá£

3) HBaseÎïÀí´æ´¢

Table ÔÚÐеķ½ÏòÉÏ·Ö¸îΪ¶à¸öHRegion£¬Ã¿¸öHRegion·ÖÉ¢ÔÚ²»Í¬µÄRegionServerÖС£

ÿ¸öHRegionÓɶà¸öStore¹¹³É£¬Ã¿¸öStoreÓÉÒ»¸ömemStoreºÍ0»ò¶à¸öStoreFile×é³É£¬Ã¿¸öStore±£´æÒ»¸öColumns Family

Èý¡¢HBaseϵͳ¼Ü¹¹

1) HBase¼Ü¹¹Í¼

´ÓHBaseµÄ¼Ü¹¹Í¼ÉÏ¿ÉÒÔ¿´³ö£¬HBaseÖеÄ×é¼þ°üÀ¨Client¡¢Zookeeper¡¢HMaster¡¢HRegionServer¡¢HRegion¡¢Store¡¢MemStore¡¢StoreFile¡¢HFile¡¢HLogµÈ£¬½ÓÏÂÀ´½éÉÜËûÃǵÄ×÷Óá£

HBaseÖеÄÿÕÅ±í¶¼Í¨¹ýÐмü°´ÕÕÒ»¶¨µÄ·¶Î§±»·Ö¸î³É¶à¸ö×Ó±í£¨HRegion£©£¬Ä¬ÈÏÒ»¸öHRegion³¬¹ý256M¾ÍÒª±»·Ö¸î³ÉÁ½¸ö£¬Õâ¸ö¹ý³ÌÓÉHRegionServer¹ÜÀí£¬¶øHRegionµÄ·ÖÅäÓÉHMaster¹ÜÀí¡£

Client

°üº¬·ÃÎÊHBaseµÄ½Ó¿Ú£¬²¢Î¬»¤cacheÀ´¼Ó¿ì¶ÔHBaseµÄ·ÃÎÊ¡£

Zookeeper

HBaseÒÀÀµZookeeper£¬Ä¬ÈÏÇé¿öÏÂHBase¹ÜÀíZookeeperʵÀý(Æô¶¯»ò¹Ø±ÕZookeeper),MasterÓëRegionServersÆô¶¯Ê±»áÏòZookeeper×¢²á¡£

±£Ö¤ÈκÎʱºò£¬¼¯ÈºÖÐÖ»ÓÐÒ»¸ömaster

ʵʱ¼à¿ØRegion serverµÄÉÏÏߺÍÏÂÏßÐÅÏ¢¡£²¢ÊµÊ±Í¨Öª¸ømaster

´æ´¢HBaseµÄschemaºÍtableÔªÊý¾Ý

HMaster

ΪRegion server·ÖÅäregion

¸ºÔðRegion serverµÄ¸ºÔؾùºâ

·¢ÏÖʧЧµÄRegion server²¢ÖØÐ·ÖÅäÆäÉϵÄregion¡£

´¦Àíschema¸üÐÂÇëÇó¡£

HRegionServer

ά»¤master·ÖÅ䏸ËûµÄregion£¬´¦Àí¶ÔÕâЩregionµÄioÇëÇó¡£

¸ºÔðÇзÖÕýÔÚÔËÐйý³ÌÖбäµÄ¹ý´óµÄregion¡£

×¢Ò⣺client·ÃÎÊhbaseÉϵÄÊý¾Ýʱ²»ÐèÒªmasterµÄ²ÎÓ룬ÒòΪÊý¾ÝѰַ·ÃÎÊzookeeperºÍregion server£¬¶øÊý¾Ý¶Áд·ÃÎÊregion server¡£master½ö½öά»¤tableºÍregionµÄÔªÊý¾ÝÐÅÏ¢£¬¶øtableµÄÔªÊý¾ÝÐÅÏ¢±£´æÔÚzookeeperÉÏ£¬Òò´Ëmaster¸ºÔغܵ͡£

HRegion

tableÔÚÐеķ½ÏòÉÏ·Ö¸ôΪ¶à¸öRegion¡£RegionÊÇHBaseÖзֲ¼Ê½´æ´¢ºÍ¸ºÔؾùºâµÄ×îСµ¥Ôª£¬¼´²»Í¬µÄregion¿ÉÒÔ·Ö±ðÔÚ²»Í¬µÄRegion ServerÉÏ£¬µ«Í¬Ò»¸öRegionÊDz»»á²ð·Öµ½¶à¸öserverÉÏ¡£

Region°´´óС·Ö¸ô£¬Ã¿¸ö±íÒ»°ãÊÇÖ»ÓÐÒ»¸öregion¡£Ëæ×ÅÊý¾Ý²»¶Ï²åÈë±í£¬region²»¶ÏÔö´ó£¬µ±regionµÄij¸öÁÐ×å´ïµ½Ò»¸öãÐֵʱ¾Í»á·Ö³ÉÁ½¸öеÄregion¡£

ÿ¸öregionÓÉÒÔÏÂÐÅÏ¢±êʶ£º< ±íÃû,startRowkey,´´½¨Ê±¼ä>

ÓÉĿ¼±í(-ROOT-ºÍ.META.)¼Ç¼¸ÃregionµÄendRowkey

Store

ÿһ¸öregionÓÉÒ»¸ö»ò¶à¸östore×é³É£¬ÖÁÉÙÊÇÒ»¸östore£¬hbase»á°ÑÒ»Æð·ÃÎʵÄÊý¾Ý·ÅÔÚÒ»¸östoreÀïÃæ£¬¼´ÎªÃ¿¸ö ColumnFamily½¨Ò»¸östore£¬Èç¹ûÓм¸¸öColumnFamily£¬Ò²¾ÍÓм¸¸öStore¡£Ò»¸öStoreÓÉÒ»¸ömemStoreºÍ0»òÕß ¶à¸öStoreFile×é³É¡£ HBaseÒÔstoreµÄ´óСÀ´ÅжÏÊÇ·ñÐèÒªÇзÖregion

MemStore

memStore ÊÇ·ÅÔÚÄÚ´æÀïµÄ¡£±£´æÐ޸ĵÄÊý¾Ý¼´keyValues¡£µ±memStoreµÄ´óС´ïµ½Ò»¸ö·§Öµ£¨Ä¬ÈÏ128MB£©Ê±£¬memStore»á±»flushµ½ÎÄ ¼þ£¬¼´Éú³ÉÒ»¸ö¿ìÕÕ¡£Ä¿Ç°hbase »áÓÐÒ»¸öÏß³ÌÀ´¸ºÔðmemStoreµÄflush²Ù×÷¡£

StoreFile

memStoreÄÚ´æÖеÄÊý¾Ýдµ½Îļþºó¾ÍÊÇStoreFile£¬StoreFileµ×²ãÊÇÒÔHFileµÄ¸ñʽ±£´æ¡£

HFile

HBaseÖÐKeyValueÊý¾ÝµÄ´æ´¢¸ñʽ£¬HFileÊÇHadoopµÄ ¶þ½øÖƸñʽÎļþ£¬Êµ¼ÊÉÏStoreFile¾ÍÊǶÔHfile×öÁËÇáÁ¿¼¶°ü×°£¬¼´StoreFileµ×²ã¾ÍÊÇHFile

HFileµÄ´æ´¢¸ñʽÈçÏ£º

HFileÓɶà¸öData Block¡¢Meta Block¡¢FileInfo¡¢Data Index¡¢Meta Index¡¢Trailer×é³É£¬ÆäÖÐData BlockÊÇHBaseµÄ×îС´æ´¢µ¥Ôª£¬ÔÚǰÎÄÖÐÌáµ½µÄBlockCache¾ÍÊÇ»ùÓÚData BlockµÄ»º´æµÄ¡£Ò»¸öData BlockÓÉÒ»¸öħÊýºÍһϵÁеÄKeyValue(Cell)×é³É£¬Ä§ÊýÊÇÒ»¸öËæ»úµÄÊý×Ö£¬ÓÃÓÚ±íʾÕâÊÇÒ»¸öData BlockÀàÐÍ£¬ÒÔ¿ìËÙ¼à²âÕâ¸öData BlockµÄ¸ñʽ£¬·ÀÖ¹Êý¾ÝµÄÆÆ»µ¡£Data BlockµÄ´óС¿ÉÒÔÔÚ´´½¨Column FamilyʱÉèÖÃ(HColumnDescriptor.setBlockSize())£¬Ä¬ÈÏÖµÊÇ64KB£¬´óºÅµÄBlockÓÐÀûÓÚ˳ÐòScan£¬Ð¡ºÅBlockÀûÓÚËæ»ú²éѯ£¬Òò¶øÐèҪȨºâ¡£Meta¿éÊÇ¿ÉÑ¡µÄ£¬FileInfoÊǹ̶¨³¤¶ÈµÄ¿é£¬Ëü¼Í¼ÁËÎļþµÄһЩMetaÐÅÏ¢£¬ÀýÈ磺AVG_KEY_LEN, AVG_VALUE_LEN, LAST_KEY, COMPARATOR, MAX_SEQ_ID_KEYµÈ¡£Data IndexºÍMeta Index¼Í¼ÁËÿ¸öData¿éºÍMeta¿éµÄÆäʵµã¡¢Î´Ñ¹Ëõʱ´óС¡¢Key(ÆðʼRowKey£¿)µÈ¡£Trailer¼Í¼ÁËFileInfo¡¢Data Index¡¢Meta Index¿éµÄÆðʼλÖã¬Data IndexºÍMeta IndexË÷ÒýµÄÊýÁ¿µÈ¡£ÆäÖÐFileInfoºÍTrailerÊǹ̶¨³¤¶ÈµÄ¡£

HFileÀïÃæµÄÿ¸öKeyValue¶Ô¾ÍÊÇÒ»¸ö¼òµ¥µÄbyteÊý×é¡£µ«ÊÇÕâ¸öbyteÊý×éÀïÃæ°üº¬Á˺ܶàÏ²¢ÇÒÓй̶¨µÄ½á¹¹¡£ÎÒÃÇÀ´¿´¿´ÀïÃæµÄ¾ßÌå½á¹¹£º

ÉÏͼ¿ÉÖª£¬¿ªÊ¼ÊÇÁ½¸ö¹Ì¶¨³¤¶ÈµÄÊýÖµ£¬·Ö±ð±íʾkeyµÄ³¤¶ÈºÍalueµÄ³¤¶È¡£½ô½Ó×ÅÊÇKey,¿ªÊ¼Êǹ̶¨³¤¶ÈµÄÊýÖµ£¬±íʾRowKeyµÄ³¤¶È£¬½ô½Ó×ÅÊÇRowKey£¬È»ºóÊǹ̶¨³¤¶ÈµÄÊýÖµ£¬±íʾFamilyµÄ³¤¶È£¬È»ºóÊÇFamily,½Ó×ÅÊÇQualifier£¬È»ºóÊÇÁ½¸ö¹Ì¶¨³¤¶ÈµÄÊýÖµ£¬±íʾTime StampºÍKey Type(Put/Delete)¡£Value²¿·ÖûÓÐÄÇô¸´ÔӵĽṹ£¬¾ÍÊÇ´¿´âµÄ¶þ½øÖÆÊý¾Ý¡£

HLog

HLog(WAL log)£ºWALÒâΪwrite ahead log£¬ÓÃÀ´×öÔÖÄѻָ´Ê¹Óã¬HLog¼Ç¼Êý¾ÝµÄËùÓбä¸ü£¬Ò»µ©region server å´»ú£¬¾Í¿ÉÒÔ´ÓlogÖнøÐлָ´¡£

HLogÎļþ¾ÍÊÇÒ»¸öÆÕͨµÄHadoop Sequence File£¬ Sequence FileµÄvalueÊÇkeyʱHLogKey¶ÔÏ󣬯äÖмǼÁËдÈëÊý¾ÝµÄ¹éÊôÐÅÏ¢£¬³ýÁËtableºÍregionÃû×ÖÍ⣬»¹Í¬Ê±°üÀ¨sequence numberºÍtimestamp£¬timestampÊÇдÈëʱ¼ä£¬sequence numberµÄÆðʼֵΪ0£¬»òÕßÊÇ×î½üÒ»´Î´æÈëÎļþϵͳÖеÄsequence number¡£ Sequence FileµÄvalueÊÇHBaseµÄKeyValue¶ÔÏ󣬼´¶ÔÓ¦HFileÖеÄKeyValue¡£

ÉÏͼÖÐÊÇHLogÎļþµÄ½á¹¹£¬ÆäʵHLogÎļþ¾ÍÊÇÒ»¸öÆÕͨµÄHadoop Sequence File£¬Sequence FileµÄKeyÊÇHLogKey¶ÔÏó£¬HLogKeyÖмǼÁËдÈëÊý¾ÝµÄ¹éÊôÐÅÏ¢£¬³ýÁËtableºÍRegionÃû×ÖÍ⣬ͬʱ»¹°üÀ¨sequence numberºÍtimestamp,timestampÊÇ¡±Ð´Èëʱ¼ä¡±£¬sequence number µÄÆðʼֵΪ0£¬»òÕßÊÇ×î½üÒ»´Î´æÈëÎļþϵͳÖеÄsequence number¡£

HLog Sequence File µÄValueÊÇHBaseµÄKeyValue¶ÔÏ󰺣¬¼´¶ÔÓ¦HFileÖеÄKeyValue¡£

2) HRegion¶¨Î»

ͨ¹ýzkÀïµÄÎļþ/hbase/rsµÃµ½-ROOT-±íµÄλÖá£-ROOT-±íÖ»ÓÐÒ»¸öregion¡£

ͨ¹ý-ROOT-±í²éÕÒ.META.±íµÄµÚÒ»¸ö±íÖÐÏàÓ¦µÄregionµÄλÖá£Æäʵ-ROOT-±íÊÇ.META.±íµÄµÚÒ»¸öregion£».META.±íÖеÄÿһ¸öregion ÔÚ-ROOT-±íÖж¼ÊÇÒ»ÐмǼ¡£

ͨ¹ý.META.±íÕÒµ½ËùÒªµÄÓû§±íregionµÄλÖá£Óû§±íÖеÄÿ¸öregionÔÚ.META.±íÖж¼ÊÇÒ»ÐмǼ¡£

-ROOT-±íÓÀÔ¶²»»á±»·Ö¸ôΪ¶à¸öregion£¬±£Ö¤ÁË×î¶àÐèÒªÈý´ÎÌø×ª£¬¾ÍÄܶ¨Î»µ½ÈÎÒâµÄregion¡£client»á½«²éѯµÄλÖà ÐÅÏ¢±£´æ»º´æÆðÀ´£¬»º´æ²»»áÖ÷¶¯Ê§Ð§£¬Òò´ËÈç¹ûclientÉϵĻº´æÈ«²¿Ê§Ð§£¬ÔòÐèÒª½øÐÐ6´ÎÍøÂçÀ´»Ø£¬²ÅÄܶ¨Î»µ½ÕýÈ·µÄregion£¬ÆäÖÐÈý´ÎÓÃÀ´·¢ÏÖ »º´æÊ§Ð§£¬ÁíÍâÈý´ÎÓÃÀ´»ñȡλÖÃÐÅÏ¢¡£

Ìáʾ£º

-ROOT-±í£º±í°üº¬.META.±íËùÔÚµÄregionÁÐ±í£¬¸Ã±íÖ»ÓÐÒ»¸öRegion;ZookeeperÖмǼÁË-ROOT-±íµÄlocation

.META.±í£º±í°üº¬ËùÓеÄÓû§¿Õ¼äregionÁÐ±í£¬ÒÔ¼°Region ServerµÄ·þÎñÆ÷µØÖ·

hbase:meta±í£º¸ß°æ±¾ÖÐÒѾ­ÉáÆúÁËROOTºÍMETA±íÁË£¬²ÉÓÃÁËÕâ¸ö±í

ËÄ¡¢HBase¹¤×÷Á÷³Ì

HBaseµÄÁ÷³Ìͼ

Client

Ê×Ïȵ±Ò»¸öÇëÇó²úÉúʱ£¬HBase ClientʹÓÃRPC(Ô¶³Ì¹ý³Ìµ÷ÓÃ)»úÖÆÓëHMasterºÍHRegionServer½øÐÐͨÐÅ£¬¶ÔÓÚ¹ÜÀíÀà²Ù×÷£¬ClientÓëHMaster½øÐÐRPC;¶ÔÓÚÊý¾Ý¶Áд²Ù×÷£¬ClientÓëHRegionServer½øÐÐRPC¡£

Zookeeper

HBase ClientʹÓÃRPC(Ô¶³Ì¹ý³Ìµ÷ÓÃ)»úÖÆÓëHMasterºÍHRegionServer½øÐÐͨÐÅ£¬µ«ÈçºÎÑ°Ö·ÄØ£¿ÓÉÓÚZookeeperÖд洢ÁË-ROOT-±íµÄµØÖ·ºÍHMasterµÄµØÖ·£¬ËùÒÔÐèÒªÏȵ½ZookeeperÉϽøÐÐѰַ¡£

HRegionServerÒ²»á°Ñ×Ô¼ºÒÔEphemeral·½Ê½×¢²áµ½ZookeeperÖУ¬Ê¹HMaster¿ÉÒÔËæÊ±¸ÐÖªµ½¸÷¸öHRegionServerµÄ½¡¿µ×´Ì¬¡£´ËÍ⣬ZookeeperÒ²±ÜÃâÁËHMasterµÄµ¥µã¹ÊÕÏ¡£

HMaster

µ±Óû§ÐèÒª½øÐÐTableºÍRegionµÄ¹ÜÀí¹¤×÷ʱ£¬¾ÍÐèÒªºÍHMaster½øÐÐͨÐÅ¡£HBaseÖпÉÒÔÆô¶¯¶à¸öHMaster,ͨ¹ýZookeeperµÄMaster Eletion»úÖÆ±£Ö¤×ÜÓÐÒ»¸öMasterÔËÐС£

¹ÜÀíÓû§¶ÔTableµÄÔöɾ¸Ä²é²Ù×÷

¹ÜÀíHRegionServerµÄ¸ºÔؾùºâ£¬µ÷ÕûRegionµÄ·Ö²¼

ÔÚRegion Splitºó£¬¸ºÔðÐÂRegionµÄ·ÖÅä

ÔÚHRegionServerÍ£»úºó£¬¸ºÔðʧЧHRegionServerÉϵÄRegionsÇ¨ÒÆ

HRegionServer

µ±Óû§ÐèÒª¶ÔÊý¾Ý½øÐжÁд²Ù×÷ʱ£¬ÐèÒª·ÃÎÊHRegionServer¡£HRegionServer´æÈ¡Ò»¸ö×Ó±íʱ£¬»á´´½¨Ò»¸öHRegion¶ÔÏó£¬È»ºó¶Ô±íµÄÿ¸öÁÐ×å´´½¨Ò»¸öStoreʵÀý£¬Ã¿¸öStore¶¼»áÓÐÒ»¸ö MemStoreºÍ0¸ö»ò¶à¸öStoreFileÓëÖ®¶ÔÓ¦£¬Ã¿¸öStoreFile¶¼»á¶ÔÓ¦Ò»¸öHFile£¬ HFile¾ÍÊÇʵ¼ÊµÄ´æ´¢Îļþ¡£Òò´Ë£¬Ò»¸öHRegionÓжàÉÙ¸öÁÐ×å¾ÍÓжàÉÙ¸öStore¡£ Ò»¸öHRegionServer»áÓжà¸öHRegionºÍÒ»¸öHLog¡£

×¢Ò⣺HStore´æ´¢ÓÉÁ½²¿·Ö×é³É£ºMemStoreºÍStoreFiles¡£ MemStoreÊÇSorted Memory Buffer,Óû§ дÈëÊý¾ÝÊ×ÏÈ »á·ÅÔÚMemStore,µ±MemStoreÂúÁËÒÔºó»áFlush³ÉÒ»¸ö StoreFile£¨Êµ¼Ê´æ´¢ÔÚHDHSÉϵÄÊÇHFile£©£¬µ±StoreFileÎļþÊýÁ¿Ôö³¤µ½Ò»¶¨·§Öµ£¬¾Í»á´¥·¢CompactºÏ²¢²Ù×÷£¬²¢½«¶à¸öStoreFileºÏ²¢³ÉÒ»¸öStoreFile£¬ºÏ²¢¹ý³ÌÖÐ»á½øÐа汾ºÏ²¢ºÍÊý¾Ýɾ³ý£¬Òò´Ë¿ÉÒÔ¿´³öHBaseÆäʵֻÓÐÔö¼ÓÊý¾Ý£¬ËùÓеĸüкÍɾ³ý²Ù×÷¶¼ÊÇÔÚºóÐøµÄcompact¹ý³ÌÖнøÐеģ¬ÕâʹµÃÓû§µÄ ¶Áд²Ù×÷*Ö»Òª½øÈëÄÚ´æÖоͿÉÒÔÁ¢¼´·µ»Ø£¬±£Ö¤ÁËHBase I/OµÄ¸ßÐÔÄÜ¡£

Îå¡¢HBaseµÄ¸ß¿ÉÓÃ

HDFS»ú¼Üʶ±ð²ßÂÔ£ºµ±Êý¾ÝÎļþËð»µÊ±£¬»áÕÒÏàͬ»ú¼ÜÉϱ¸·ÝµÄÊý¾ÝÎļþ£¬Èç¹ûÏàͬ»ú¼ÜÉϵÄÊý¾ÝÎļþÒ²Ë𻵻áÕÒ²»Í¬»ú¼Ü±¸·ÝÊý¾ÝÎļþ¡£

HBaseµÄRegion¿ìËÙ»Ö¸´£ºµ±regionserverËð»µÊ±£¬master»á¶Ô¸ÃregionserverÉϵÄregion½øÐÐÖØÐ·ÖÅä£¬Ç¨ÒÆµ½ÆäËû¿ÉÓõÄregionserverÉϲ¢»Ö¸´region¡£

Master½ÚµãµÄHA»úÖÆ£ºMasterΪһÖ÷¶à±¸¡£µ±MasterÖ÷½Úµãå´»úºó£¬Ê£Ïµı¸½Úµãͨ¹ýÑ¡¾Ù£¬²úÉúÖ÷½Úµã¡£

Áù¡¢HBaseÔËά

ʱÖÓͬ²½

ÊÖ¶¯majorcompact

region holeÐÞ¸´

region overlapÐÞ¸´

¶Áд¼¯ÈºÅäÖÃ񻂿·Ö

memstore flushʱ»ú

   
2633 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

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

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

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