±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁËHBaseÓëHadoopÖ®¼äµÄ¹ØÏµ¡¢HBaseµÄºËÐŦÄÜÄ£¿é¡¢HBaseµÄʹÓó¡¾°¡¢¾µä°¸Àý¼°Ê¹Óó¡¾°µÈ¡£
±¾ÎÄÀ´×ÔCSDN£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼¡¢ÍƼö¡£
|
|
Ò»¡¢HBaseÓëHadoopÖ®¼äµÄ¹ØÏµ
Hadoop¿ò¼ÜÖеÄHDFS·Ö²¼Ê½ÎļþϵͳΪHBaseÌṩÁ˿ɿ¿µÄµ×²ã´æ´¢Ö§³Ö¡£
Hadoop¿ò¼ÜÖеÄMapReduceΪHBaseÌṩÁ˸ßÐÔÄܵļÆËãÄÜÁ¦¡£

¶þ¡¢HBaseµÄºËÐŦÄÜÄ£¿é

1.Client
ClientÊÇÕû¸öHBaseϵͳµÄÈë¿Ú
¿Í»§¶ËʹÓÃRPCÐÒéÓëHMasterºÍRegionServer½øÐÐͨÐÅ
¶ÔÓÚ¹ÜÀíÀࣨ±íµÄÔöɾ£©²Ù×÷£¬ClientÓëHMaster½øÐÐRPCͨÐÅ
¶ÔÓÚÊý¾Ý¶ÁдÀà²Ù×÷ClientÓëRegionServer½øÐÐRPC½»»¥
¿Í»§¶Ë¿ÉÒÔÊǶà¸ö£¬Ò²¿ÉÒÔÒÔ²»Í¬ÐÎʽ·ÃÎÊ£¬ÈçJava½Ó¿Ú¡¢HBase shellÃüÁîÐС¢AvroµÈ
2.Zookeeper
Zookeeper¸ºÔðÏûϢе÷ͨÐÅ-------ÓÉÑÅ»¢¹«Ë¾¿ª·¢³öµÄ
ZookeeperÊÇÒ»¸ö¸ß¿ÉÓõķֲ¼Ê½Êý¾Ý¹ÜÀíÓëϵͳе÷¿ò¼Ü¡£
Zookeeperµ×²ã»ùÓÚPaxosËã·¨µÄʵÏÖ£¬Ê¹µÄ¸Ã¿ò¼Ü±£Ö¤ÁË·Ö²¼Ê½»·¾³ÖÐÊý¾ÝµÄÒ»ÖÂÐÔ¡£
HBaseÖÐZookeeperʵÀý¸ºÔðе÷¹¤×÷{
-´¢´æHbaseÔªÊý¾ÝÐÅÏ¢¡£
-ʵʱ¼à¿ØRegionServer
-´¢´æËùÓÐRegionµÄѰַÈë¿Ú
-±£Ö¤HBaseÖÐÖ»ÓÐÒ»¸öHMaster½Úµã£¨Í¨¹ýZoookeeperµÄÑ¡¾Ù»úÖÆÀ´Ñ¡³öHMaster£©
}
3.HMaster
-¹ÜÀíÓû§¶Ô±íµÄÔöɾ¸Ä²é²Ù×÷
-¹ÜÀíHRegionServerµÄ¸ºÔؾùºâ£¬µ÷ÕûRegion·Ö²¼
-ÔÚRegionSplitºó£¬¸ºÔðÐÂRegionµÄ·ÖÅä
-ÔÚHRegionServerÍ£»úºó£¬¸ºÔðʧЧ
-HRegionServerÉϵÄRegionsÇ¨ÒÆ

4.HRegionServer
-Ö÷Òª¸ºÔðÏìÓ¦Óû§I/O£¬ÏòHDFS¶ÁдÊý¾Ý£¬ÊÇHBaseÖÐ×îºËÐĵÄÄ£¿é¡£
-HRegionServerÄÚ²¿¹ÜÀíÁËһϵÁеÄHRegion¶ÔÏó
-ÿ¸öHRegion¶ÔÓ¦Á˱íÖеÄÒ»¸öRegion
-HRegionÖÐÓɶà¸öHstore×é³É
-ÿ¸öHstore¶ÔÓ¦Á˱íÖеÄÒ»¸öColumnFamilyµÄ´æ´¢¡£
store´æ´¢ÊÇHBaseµÄ´æ´¢ºËÐÄ£¬ÓÉÁ½²¿·Ö×é³É
-MemStore£ºÓû§Ð´ÈëµÄÊý¾ÝÊ×ÏÈ»á·ÅÈëMemStore£¬MemStoreµÄ´óСΪ64MB
-StoreFiles:µ±MemStoreÂúÁËÒÔºó»áFlush³ÉÒ»¸öStoreFile£¨µ×²ãʵÏÖÊÇHFile£©
µ±Store FileÎļþÊýÁ¿Ôö³¤µ½Ò»¶¨ãÐÖµ£¬»á´¥·¢CompactºÏ²¢²Ù×÷£¬½«¶à¸öStoreFilesºÏ²¢³ÉÒ»¸öStoreFile£¬ºÏ²¢¹ý³ÌÖÐ»á½øÐа汾ºÏ²¢ºÍÊý¾Ýɾ³ý
HBaseÆäʵֻÓÐÔö¼ÓÊý¾Ý£¬ËùÓеĸüкÍɾ³ý²Ù×÷¶¼ÊÇÔÚºóÐøµÄcompact¹ý³ÌÖнøÐеÄ
Èý¡¢HBaseµÄʹÓó¡¾°
´æ´¢´óÁ¿µÄÊý¾Ý£¨>TB£©
ÐèÒªºÜ¸ßµÄÍÌÍÂÁ¿£¨È義¶«É̳ǻò12306¹ºÆ±£©
´ó¹æÄ£Êý¾Ý¼¯ºÜºÃÐÔÄܵÄËæ»ú·ÃÎÊ£¨°´ÁУ©
ÐèÒª½øÐÐÓÅÑŵÄÊý¾ÝÀ©Õ¹
½á¹¹»¯ºÍ°ë½á¹¹»¯µÄÊý¾Ý
²»ÐèҪȫ²¿µÄ¹ØÏµÊý¾Ý¿âÌØÐÔ£¬ÀýÈç½»²æÁС¢½»²æ±í£¬ÊÂÎñ£¬Á¬½ÓµÈµÈ¡£
ËÄ¡¢HBaseµÄ¾µä°¸Àý
ËÑË÷ÒýÇæÓ¦ÓÃ
ÅÀ³æ³ÖÐø²»¶ÏµÄÅÀÈ¡ÐÂÒ³Ãæ´æ´¢µ½HBaseÖÐ
ÔÚÕûÕűíÉÏʹÓÃMapReduce¼ÆËã²¢Éú³ÉË÷Òý£¬¹©ÍøÂçËÑË÷Ó¦ÓÃʹÓÃ
Óû§·¢ÆðÍøÂçËÑË÷ÇëÇó
ÍøÂçËÑË÷Ó¦Óòéѯ¼òÀúºÃµÄË÷Òý£¬»òÕßÖ±½Ó´ÓHBaseµÃµ½µ¥¸öÎĵµ
ËÑË÷½á¹ûÖ±½ÓÌá½»¸øÓû§
Îå¡¢HBaseµÄ»ù±¾¸ÅÄî
Êý¾ÝÄ£ÐÍ
Êý¾ÝÂ߼ģÐÍ


Êý¾ÝÎïÀíÄ£ÐÍ


Â߼ģÐ͵ÄÖØÒª¸ÅÄî
Table--------±í
Rowkey---------Ðмü£¨ÀàËÆ¹ØÏµÐÍÊý¾Ý¿âµÄÖ÷¼ü£©
Column family------------ÁÐ×å/Áдأ¨HBaseÖÐÁÐ×åÊÇһЩÁеļ¯ºÏ£©
Timestamp----------ʱ¼ä´Á£¨Ã¿¸öʱ¼ä´Á¶ÔÓ¦²»Í¬µÄ°æ±¾£©
Cell----------------µ¥Ôª¸ñ£¨Í¨¹ýÐмü¡¢ÁдغÍÁдØÃû¡¢°æ±¾ºÅÀ´È·¶¨¾ßÌåµÄÒ»¸öµ¥Ôª¸ñÄÚÈÝ£©Î¨Ò»È·¶¨£¬ÎÞÊý¾ÝÀàÐÍ£¬È«²¿ÊÇ×Ö½ÚÂëÐÎʽ
µ¥Ôª¸ñµÄÄÚÈÝÊDz»¿ÉÔÙ·Ö¸îµÄ×Ö½ÚÊý×é
ÿ¸öµ¥Ôª¸ñ±£´æ×Åͬһ·ÝÊý¾ÝµÄ¶à¸ö°æ±¾
²»Í¬Ê±¼ä°æ±¾µÄÊý¾Ý°´ÕÕʱ¼ä˳Ðòµ¹ÐòÅÅÐò
ÊÂÎñÌØÐÔACID
´«Í³SQLÊý¾Ý¿âͨ³£¶¼Ö§³ÖACIDµÄÇ¿ÊÂÎñ»úÖÆ
HBase NoSQLÊý¾Ý¿â½öÌṩ¶ÔÐм¶±ðµÄÔ×ÓÐÔ±£Ö¤¡£
-ͬʱ¶Ôͬһ¸ökeyϵÄÊý¾Ý½øÐÐÁ½¸ö²Ù×÷£¬ÔÚʵ¼ÊÖ´ÐеĹý³ÌÖлᴮÐвÙ×÷£¬±£Ö¤Ã¿Ò»¸ökeyvalue¶Ô²»»á±»ÆÆ»µ
-¶ÔͬһÐеÄËùÓÐÁеIJÙ×÷ÊÇÔ×ÓÐԵ쬶ÔÓÚ¸ÃÐеÄPut²Ù×÷ҪôÕûÌå³É¹¦ÒªÃ´ÕûÌåʧ°Ü¡£
ģʽÉè¼Æ
Êý¾Ý¿âµÄģʽÉè¼Æ²»ÊÇÒ»¸öиÅÄϵͳ¶¼´æÔÚģʽÉè¼ÆÎÊÌâ¡£Ö»Òª³ÆÎªÊý¾Ý¿â
HBaseµÄģʽ½á¹¹°üÀ¨±í¡¢Rowkey¡¢ÁÐ×å¡¢Timestamp£¨Ê±¼ä´Á/ʱ¼ä°æ±¾£©
ģʽÊÇÒ»¸öÈýάÓÐÐò½á¹¹£¬±í£¬Rowkey£¬ÁÐ×åÈý¸öά¶ÈÈ·¶¨Ò»ÐÐÊý¾Ý
HBaseģʽÉè¼Æ¹ý³ÌÖÐÐèÒª¹Ø×¢µÄÎÊÌâ
-±íÓ¦¸ÃÓжàÉÙ¸öÁÐ×壬ÁÐ×åʹÓÃʲôÊý¾Ý£¬Ã¿¸öÁÐ×åÓ¦¸ÃÓжàÉÙÁÐ
-ÁÐÃûÊÇʲô£¬µ¥ÔªÓ¦¸Ã´æ´¢Ê²Ã´Êý¾Ý£¬Ã¿¸öµ¥Ôª´æ´¢¶àÉÙ¸öʱ¼ä°æ±¾
-Ðмü½á¹¹ÊÇʲô£¬Ó¦¸Ã°üº¬ÄÄЩÐÅÏ¢¡£
Rowkey-ÐмüÉè¼Æ
RowkeyÊDz»¿É·Ö¸îµÄ×Ö½ÚÊý£¬°´ÕÕ×ÖµäÅÅÐòÓɵ͵½¸ß´æ´¢ÔÚ±íÖÐ
RowkeyÓ¦¸Ã»ùÓÚÔ¤ÆÚµÄ·ÃÎÊģʽÀ´ÎªRowkey½¨Ä£
Rowkey¾ö¶¨ÁË·ÃÎÊHBase±íʱ¿ÉÒԵõ½µÄÐÔÄÜ
HBaseÖ»ÄÜÔÚRowkeyÉϽ¨Á¢Ë÷Òý£¬ÔÚ²»Çå³þRowkeyµÄǰÌáÏ·ÃÎÊ±í£¬¿ÉÒÔʹÓÃɨÃèÈ«±í¡£
-ÔÉúHBaseÖ»Ö§³ÖRowkeyÒÔ×Öµä˳Ðò´ÓСµ½´ó
-Rowkey=Integer.MAX_VALUE-Rowkey ת»»ÎªÒÔ×Öµä˳Ðò´Ó´óµ½Ð¡µÄÅÅÐò
-Rowkey¾¡Á¿É¢ÁÐRowkeyÉè¼Æ
-±£Ö¤É¢ÁУ¬¾Í»á±£Ö¤ËùÓеÄÊý¾Ý²»ÊÇÔÚÒ»¸öRegionÉÏ£¬±ÜÃâ¶Áдʱ¸ºÔػἯÖÐÔÚ¸ö±ðRegionÉÏ
-RowkeyµÄ³¤¶È¾¡Á¿¶Ì
-Èç¹ûRowkeyÌ«³¤£¬´æ´¢¿ªÏúÔö¼Ó£¬Ó°Ïì´æ´¢Ð§ÂÊ
ColumnFamily-ÁÐ×嶨Òå
ÁÐ×壬ÊÇһЩÁеļ¯ºÏ
-Ò»¸öÁÐ×åµÄËùÓгÉÔ±¶¼ÓÐ×ÅÏàͬµÄǰ׺¡£
ÔÚÎïÀíÉÏ£¬ÁÐ×åµÄ³ÉÔ±ÔÚÎļþϵͳÉ϶¼´æ´¢ÔÚÒ»Æð¡£
¶à¸öÁÐ×åÔÚÖ´ÐÐflushºÍcompactionʱ£¬Ôì³ÉºÜ¶àIO¸ºÔØ
-FlushºÍcompaction²Ù×÷ÊÇÕë¶ÔÒ»¸öRegionµÄ£¬µ±Ò»¸öÁÐ×å²Ù×÷´óÁ¿Êý¾Ýʱ»áÒý·¢Ò»¸öflush£¬ÄÇЩ²»Ïà¹ØµÄÁÐ×åÒ²Òª½øÐÐflush£¬»áÔì³ÉºÜ¶àûÓõÄI/O¸ºÔØ¡£
-¾¡Á¿ÔÚÓ¦ÓÃÖÐʹÓÃÒ»¸öÁÐ×å |