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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
HBase¿ò¼Üѧϰ
 
  2067  次浏览      29
 2018-1-25  
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚÖÜÐñÁú,½éÉÜÁËHBase³öÏֵı³¾°¡¢HBaseÔÚHadoopÏîÄ¿ÖеÄλÖá¢Êý¾ÝÄ£ÐÍ¡¢ÏµÍ³¼Ü¹¹¡£

HBaseÊÇApache HadoopµÄÊý¾Ý¿â£¬Äܹ»¶Ô´óÐÍÊý¾ÝÌá¹©Ëæ»ú¡¢ÊµÊ±µÄ¶Áд·ÃÎÊ¡£HBaseµÄÄ¿±êÊÇ´æ´¢²¢´¦Àí´óÐ͵ÄÊý¾Ý¡£HBaseÊÇÒ»¸ö¿ªÔ´µÄ£¬·Ö²¼Ê½µÄ£¬¶à°æ±¾µÄ£¬ÃæÏòÁеĴ洢ģÐÍ£¬Ëü´æ´¢µÄÊÇËÉÉ¢ÐÍÊý¾Ý¡£

Ò»¡¢HBase£ºBigTableµÄ¿ªÔ´ÊµÏÖ

1.1 HBase³öÏֵı³¾°

£¨1£©Ëæ×ÅÊý¾Ý¹æÄ£Ô½À´Ô½´ó£¬´óÁ¿ÒµÎñ³¡¾°¿ªÊ¼¿¼ÂÇÊý¾Ý´æ´¢Ë®Æ½À©Õ¹£¬Ê¹µÃ´æ´¢·þÎñ¿ÉÒÔÔö¼Ó/ɾ³ý£¬¶øÄ¿Ç°µÄ¹ØÏµÐÍÊý¾Ý¿â¸üרעÓÚһ̨»úÆ÷¡£

£¨2£©º£Á¿Êý¾ÝÁ¿´æ´¢³ÉΪƿ¾±£¬µ¥Ì¨»úÆ÷ÎÞ·¨¸ºÔØ´óÁ¿Êý¾Ý¡£

£¨3£©µ¥Ì¨»úÆ÷IO¶ÁдÇëÇó³ÉΪº£Á¿Êý¾Ý´æ´¢Ê±ºò¸ß²¢·¢£¬´ó¹æÄ£ÇëÇóµÄÆ¿¾±¡£

£¨4£©µ±Êý¾Ý½øÐÐˮƽÀ©Õ¹Ê±ºò£¬ÈçºÎ½â¾öÊý¾ÝIO¸ßÒ»ÖÂÐÔÎÊÌâ¡£½áºÏMap/Reduce¼ÆËã¿ò¼Ü½øÐк£Á¿Êý¾ÝµÄÀëÏß·ÖÎö¡£

1.2 BigTable³É¾ÍÁËHBase

GoogleÕâ¸öÉñÆæµÄ¹«Ë¾ÒÔÆä²»±£ÊصÄ̬¶ÈÒÔѧÊõÂÛÎĵķ½Ê½¹«¿ªÁËÆäÔÆ¼ÆËãµÄÈý´ó·¨±¦£ºGFS¡¢MapReduceºÍBigTable£¬ÆäÖжÔÓÚBigTableµÄ¿ªÔ´ÊµÏÖHBaseÔòÊÇÓÉDoug CuttingÍê³ÉµÄ¡£

HBaseÊÇÒ»¸ö·Ö²¼Ê½µÄ¡¢ÃæÏòÁеĿªÔ´Êý¾Ý¿â£¬¸Ã¼¼ÊõÀ´Ô´ÓÚ Fay Chang Ëù׫дµÄGoogleÂÛÎÄ¡°Bigtable£ºÒ»¸ö½á¹¹»¯Êý¾ÝµÄ·Ö²¼Ê½´æ´¢ÏµÍ³¡±¡£¾ÍÏñBigtableÀûÓÃÁËGoogleÎļþϵͳ£¨File System£©ËùÌṩµÄ·Ö²¼Ê½Êý¾Ý´æ´¢Ò»Ñù£¬HBaseÔÚHadoopÖ®ÉÏÌṩÁËÀàËÆÓÚBigtableµÄÄÜÁ¦¡£HBaseÊÇApacheµÄHadoopÏîÄ¿µÄ×ÓÏîÄ¿¡£HBase²»Í¬ÓÚÒ»°ãµÄ¹ØÏµÊý¾Ý¿â£¬ËüÊÇÒ»¸öÊʺÏÓڷǽṹ»¯Êý¾Ý´æ´¢µÄÊý¾Ý¿â¡£ÁíÒ»¸ö²»Í¬µÄÊÇHBase»ùÓÚÁеĶø²»ÊÇ»ùÓÚÐеÄģʽ¡£

HBaseÖеıíÒ»°ãÓÐÕâÑùµÄÌØµã£º

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

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

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

PS£ºÊ²Ã´ÊÇÁд洢£¿

Áд洢²»Í¬ÓÚ´«Í³µÄ¹ØÏµÐÍÊý¾Ý¿â£¬ÆäÊý¾ÝÔÚ±íÖÐÊǰ´Ðд洢µÄ£¬Áз½Ê½Ëù´øÀ´µÄÖØÒªºÃ´¦Ö®Ò»¾ÍÊÇ£¬ÓÉÓÚ²éѯÖеÄÑ¡Ôñ¹æÔòÊÇͨ¹ýÁÐÀ´¶¨ÒåµÄ£¬Òò´ËÕû¸öÊý¾Ý¿âÊÇ×Ô¶¯Ë÷Òý»¯µÄ¡£°´Áд洢ÿ¸ö×ֶεÄÊý¾Ý¾Û¼¯´æ´¢£¬ÔÚ²éѯֻÐèÒªÉÙÊý¼¸¸ö×ֶεÄʱºò£¬ÄÜ´ó´ó¼õÉÙ¶ÁÈ¡µÄÊý¾ÝÁ¿£¬Ò»¸ö×ֶεÄÊý¾Ý¾Û¼¯´æ´¢£¬ÄǾ͸üÈÝÒ×ΪÕâÖÖ¾Û¼¯´æ´¢Éè¼Æ¸üºÃµÄѹËõ/½âѹËã·¨¡£ÏÂͼ½²ÊöÁË´«Í³µÄÐд洢ºÍÁд洢µÄÇø±ð£º

1.3 HBaseÔÚHadoopÏîÄ¿ÖеÄλÖÃ

ÓëFUJITSU CliqµÈÉÌÓôóÊý¾Ý²úÆ·²»Í¬£¬HBaseÊÇGoogle BigtableµÄ¿ªÔ´ÊµÏÖ£¬ÀàËÆGoogle BigtableÀûÓÃGFS×÷ΪÆäÎļþ´æ´¢ÏµÍ³£¬HBaseÀûÓÃHadoop HDFS×÷ΪÆäÎļþ´æ´¢ÏµÍ³£»GoogleÔËÐÐMapReduceÀ´´¦ÀíBigtableÖеĺ£Á¿Êý¾Ý£¬HBaseͬÑùÀûÓÃHadoop MapReduceÀ´´¦ÀíHBaseÖеĺ£Á¿Êý¾Ý£»Google BigtableÀûÓà Chubby×÷ΪЭͬ·þÎñ£¬HBaseÀûÓÃZookeeper×÷Ϊ¶ÔÓ¦¡£

ÏÂͼչʾÁËHBaseÔÚHadoopÉú̬ϵͳÌåϵ½á¹¹ÖÐËù´¦µÄλÖãº

ÉÏͼÃèÊöÁËHadoopÉú̬ϵͳÖеĸ÷²ãϵͳ¡£ÆäÖУ¬HBaseλÓڽṹ»¯´æ´¢²ã£¬Hadoop HDFSΪHBaseÌṩÁ˸߿ɿ¿ÐÔµÄµ×²ã´æ´¢Ö§³Ö£¬Hadoop MapReduceΪHBaseÌṩÁ˸ßÐÔÄܵļÆËãÄÜÁ¦£¬ZookeeperΪHBaseÌṩÁËÎȶ¨·þÎñºÍÊ§Ð§×ªÒÆ£¨FailOver£©»úÖÆ¡£

´ËÍ⣬PigºÍHive»¹ÎªHBaseÌṩÁ˸߲ãÓïÑÔÖ§³Ö£¬Ê¹µÃÔÚHBaseÉϽøÐÐÊý¾Ýͳ¼Æ´¦Àí±äµÄ·Ç³£¼òµ¥¡£ SqoopÔòΪHBaseÌṩÁË·½±ãµÄRDBMSÊý¾Ýµ¼È빦ÄÜ£¬Ê¹µÃ´«Í³Êý¾Ý¿âÊý¾ÝÏòHBaseÖÐÇ¨ÒÆ±äµÄ·Ç³£·½±ã¡£

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

HBASEÖеÄÿһÕÅ±í£¬¾ÍÊÇËùνµÄBigTable£¬Ò»ÕÅÏ¡Êè±í¡£RowKey ºÍ ColumnKey ÊǶþ½øÖÆÖµbyte[]£¬°´×Öµä˳ÐòÅÅÐò£»Timestamp ÊÇÒ»¸ö 64 λÕûÊý£»value ÊÇÒ»¸öδ½âÊ͵Ä×Ö½ÚÊý×ébyte[]¡£±íÖеIJ»Í¬ÐпÉÒÔÓµÓв»Í¬ÊýÁ¿µÄ³ÉÔ±¡£¼´Ö§³Ö¡°¶¯Ì¬Ä£Ê½¡°Ä£ÐÍ¡£

2.1 Âß¼­Ä£ÐÍ

Table & Column Family

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

Row Key: Ðмü£¬TableµÄÖ÷¼ü£¬TableÖеļǼ°´ÕÕRow KeyÅÅÐò

Timestamp: ʱ¼ä´Á£¬Ã¿´ÎÊý¾Ý²Ù×÷¶ÔÓ¦µÄʱ¼ä´Á£¬¿ÉÒÔ¿´×÷ÊÇÊý¾ÝµÄversion number

Column Family£ºÁдأ¬TableÔÚˮƽ·½ÏòÓÐÒ»¸ö»òÕß¶à¸öColumn Family×é³É£¬Ò»¸öColumn FamilyÖпÉÒÔÓÉÈÎÒâ¶à¸öColumn×é³É£¬¼´Column FamilyÖ§³Ö¶¯Ì¬À©Õ¹£¬ÎÞÐèÔ¤Ïȶ¨ÒåColumnµÄÊýÁ¿ÒÔ¼°ÀàÐÍ£¬ËùÓÐColumn¾ùÒÔ¶þ½øÖƸñʽ´æ´¢£¬Óû§ÐèÒª×ÔÐнøÐÐÀàÐÍת»»¡£

2.2 ÎïÀíÄ£ÐÍ

£¨1£©ÎïÀí´æ´¢±íʾ

½«Âß¼­Ä£ÐÍÖеÄÒ»¸öRow·Ö¸îΪ¸ù¾ÝColumn family´æ´¢µÄÎïÀíÄ£ÐÍ£¬ÈçÏÂͼËùʾ£º

£¨2£©Table & Region

µ±TableËæ×żÇ¼Êý²»¶ÏÔö¼Ó¶ø±ä´óºó£¬»áÖð½¥·ÖÁѳɶà·Ýsplits£¬³ÉΪregions£¬Ò»¸öregionÓÉ[startkey,endkey)±íʾ£¬²»Í¬µÄregion»á±»Master·ÖÅ䏸ÏàÓ¦µÄRegionServer½øÐйÜÀí£¬ÈçÏÂͼËùʾ£º

ÓÉÉÏ¿ÉÖª£¬HBaseµÄÉìËõÐÔÖ÷ÒªÒÀÀµÓÚÆä¿É·ÖÁѵÄHRegion¼°¿ÉÉìËõµÄ·Ö²¼Ê½ÎļþϵͳHDFS£¬ÏÂÃæ½éÉÜÒ»ÏÂHBaseÈçºÎʵÏÖÉìËõÐÔ£º

¢ÙHBaseÖÐÊý¾ÝÒÔHRegionΪµ¥Î»½øÐйÜÀí£¬Ò²¾ÍÊÇ˵ӦÓóÌÐòÈç¹ûÏëÒª·ÃÎÊÒ»¸öÊý¾Ý£¬±ØÐëÏÈÕÒµ½HRegion£¬È»ºó½«Êý¾Ý¶Áд²Ù×÷Ìá½»¸øHRegion£¬ÓÉHRegionÍê³É´æ´¢²ãÃæµÄÊý¾Ý²Ù×÷¡£

¢Úÿ¸öHRegionÖд洢һ¶ÎKeyÇø¼ä£¨ÀýÈ磺[Key1,Key2)£©µÄÊý¾Ý£¬HRegionServerÊÇÎïÀí·þÎñÆ÷£¬Ã¿¸öHRegionServerÉÏ¿ÉÒÔÆô¶¯¶à¸öHRegionʵÀý¡£µ±Ò»¸öHRegionÖÐдÈëµÄÊý¾ÝÌ«¶à£¬´ïµ½ÅäÖõķ§ÖµÊ±£¬HRegion»á·ÖÁѳÉÁ½¸öHRegion£¬²¢½«HRegionÔÚÕû¸ö¼¯ÈºÖнøÐÐÇ¨ÒÆ£¬ÒÔʹHRegionServerµÄ¸ºÔؾùºâ¡£

¢ÛËùÓеÄHRegionµÄÐÅÏ¢¶¼£¨ÀýÈ磺´æ´¢µÄKeyÖµÇø¼ä¡¢ËùÔÚHRegionServerµÄIPµØÖ·ºÍ¶Ë¿ÚºÅµÈ£©¼Ç¼ÔÚHMaster·þÎñÆ÷ÉÏ¡£Í¬Ê±ÎªÁ˱£Ö¤¸ß¿ÉÓã¬HBaseÆô¶¯Á˶à¸öHMaster£¬²¢Í¨¹ýZooKeeper£¨Ò»¸öÖ§³Ö·Ö²¼Ê½Ò»ÖÂÐÔµÄÊý¾Ý¹ÜÀí·þÎñ£©Ñ¡¾Ù³öÒ»¸öÖ÷·þÎñÆ÷£¬Í¨¹ýÕâ¸öÖ÷HMaster·þÎñÆ÷»ñµÃKeyÖµËùÔÚµÄHRegionServer£¬×îºóÇëÇó¸ÃHRegionServerÉϵÄHRegionʵÀý£¬»ñµÃÐèÒªµÄÊý¾Ý¡£Æä¾ßÌåµÄÊý¾ÝѰַ·ÃÎÊÁ÷³ÌÈçÏÂͼËùʾ£º

Èý¡¢HBaseµÄϵͳ¼Ü¹¹

3.1 Client

°üº¬·ÃÎÊhbaseµÄ½Ó¿Ú£¬Clientά»¤×ÅһЩcacheÀ´¼Ó¿ì¶ÔhbaseµÄ·ÃÎÊ£¬±ÈÈçregioneµÄλÖÃÐÅÏ¢¡£

3.2 ZooKeeper

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

£¨2£© ´æÖüËùÓÐRegionµÄѰַÈë¿Ú¡£

£¨3£© ʵʱ¼à¿ØRegion ServerµÄ״̬£¬½«Region serverµÄÉÏÏߺÍÏÂÏßÐÅϢʵʱ֪ͨ¸øMaster

£¨4£© ´æ´¢HbaseµÄschema,°üÀ¨ÓÐÄÄЩtable£¬Ã¿¸ötableÓÐÄÄЩcolumn family

3.3 HMaster

£¨1£©ÎªRegion Server·ÖÅäRegion

£¨2£©¸ºÔðRegion ServerµÄ¸ºÔؾùºâ

£¨3£©·¢ÏÖʧЧµÄRegion Server²¢ÖØÐ·ÖÅäÆäÉϵÄRegion

£¨4£©GFSÉϵÄÀ¬»øÎļþ»ØÊÕ

£¨5£©´¦ÀíSchema¸üÐÂÇëÇó

HMasterÖ÷Òª×÷ÓÃÔÚÓÚ£¬Í¨¹ýHMasterά»¤ÏµÍ³±í-ROOT-,.META.£¬¼Ç¼regionserverËù¶ÔÓ¦region±ä»¯ÐÅÏ¢¡£´ËÍ⻹¸ºÔð¼à¿Ø´¦Àíµ±Ç°hbase clusterÖÐregionserver״̬±ä»¯ÐÅÏ¢¡£

PS£ºÁ½ÕÅÉñÆæµÄ±í£º-ROOT-ºÍ.META

¢Ù.META.£º¼Ç¼ÁËÓû§±íµÄRegionÐÅÏ¢£¬.META.¿ÉÒÔÓжà¸öregoin

¢Ú-ROOT-£º¼Ç¼ÁË.META.±íµÄRegionÐÅÏ¢£¬-ROOT-Ö»ÓÐÒ»¸öregion

ZookeeperÖмǼÁË-ROOT-±íµÄlocation

Client·ÃÎÊÓû§Êý¾Ý֮ǰÐèÒªÊ×ÏÈ·ÃÎÊZookeeper£¬È»ºó·ÃÎÊ-ROOT-±í£¬½Ó×Å·ÃÎÊ.META.±í£¬×îºó²ÅÄÜÕÒµ½Óû§Êý¾ÝµÄλÖÃÈ¥·ÃÎÊ£º

3.4 Region Server

£¨1£©Region Serverά»¤HMaster·ÖÅ䏸ËüµÄRegion£¬´¦Àí¶ÔÕâЩRegionµÄIOÇëÇó

£¨2£©Region Server¸ºÔðÇзÖÔÚÔËÐйý³ÌÖбäµÃ¹ý´óµÄRegion

¿ÉÒÔ¿´³ö£¬client ·ÃÎÊhbase ÉÏÊý¾ÝµÄ¹ý³Ì²¢²»ÐèÒªmaster ²ÎÓ룬Ѱַ·ÃÎÊzookeeper ºÍregion server£¬Êý¾Ý¶Áд·ÃÎÊregioneserver¡£HRegionServerÖ÷Òª¸ºÔðÏìÓ¦Óû§I/OÇëÇó£¬ÏòHDFSÎļþϵͳÖжÁдÊý¾Ý£¬ÊÇHBaseÖÐ×îºËÐĵÄÄ£¿é¡£

 

   
2067 ´Îä¯ÀÀ       29
Ïà¹ØÎÄÕÂ

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

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

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