±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚÔÆÆÜÉçÇø,±¾ÎÄÖ÷Òª´ÓHbaseµÄÀúÊ·¹æÄ£¿ªÊ¼Ì¸Æð£¬½ø¶øÁĵ½ÁËÓ¦Óó¡¾°£¬×ÅÖØ·ÖÏíÁËÎÊÌâºÍÓÅ»¯£¬×îºó¶ÔδÀ´½øÐÐÁËÕ¹Íû¡£
|
|
2017ÔÆÆÜ´ó»áHbaseר³¡£¬°¢Àï°Í°Í¸ß¼¶¼¼Êõר¼Ò¾ø¶¥´øÀ´HBaseÔÚ°¢ÀïËÑË÷ÍÆ¼öÖеÄÓ¦ÓõÄÑݽ²¡£±¾ÎÄÖ÷Òª´ÓHbaseµÄÀúÊ·¹æÄ£¿ªÊ¼Ì¸Æð£¬½ø¶øÁĵ½ÁËÓ¦Óó¡¾°£¬×ÅÖØ·ÖÏíÁËÎÊÌâºÍÓÅ»¯£¬×îºó¶ÔδÀ´½øÐÐÁËÕ¹Íû¡£
ÒÔÏÂÊǾ³£ÄÚÈÝÕûÀí£º
ÀúÊ·ºÍ¹æÄ£
ÆäʵÎÒÃÇ×öHBaseʱ¼äºÜÔ磬ËÑË÷Ö»Êǰ¢ÀOÍÅÀïÃæ×öHBaseµÄÒ»¸ö²¿ÃÅ¡£´Ó2010Ä꿪ʼ£¬ÎÒÃǾÀúÁËÊ®¸öÒÔÉϵİ汾¡£ÎÒÃDz»ÍƼöʹÓÃ1.0¡¢1.2°æ±¾£¬Ò»¶¨ÒªÊ¹ÓÃ×îеİ汾¡£¹ØÓÚ¼¯Èº¹æÄ££¬×ܽڵãÊý5000+£¬×î´ó¼¯Èº½Úµã2000+£¬ÈÕ³£ÍÌÍ£º¼¯Èº³¬¹ý5000Íò´Î£¯Ãë¡¢µ¥»ú·åÖµ³¬¹ý10Íò´Î£¯Ã룬ÎÒÃÇÏÖÔÚµÄÐÔÄÜ£¬Ò»¸öCPU¿ÉÒÔÖ§³Ö8000¸öQPS¡£
Ó¦Óó¡¾°

HBaseÔÚËÑË÷ÀïÃæÊÇÒ»¸öºËÐĵĴ洢ϵͳ£¬ºÍ¼ÆËãÒýÇæÊǽôÃܽáºÏµÄ£¬Ö÷Òª¹Ø×¢¸ßÍÌÍ¡¢µÍë´Ì¡£Ö®Ç°ÌÖÂÛHBaseÄܲ»ÄÜÓÃÔÚÔÚÏß»·¾³ÀïÃæ£¿ÆäʵHBaseµÄÑÓʱ´ÓÏßÉÏÇé¿öÀ´¿´»¹ÊDZȽϵ͵ģ¬Ö®ËùÒÔ²»ÄÜÓÃÔÚÏßÉÏ£¬ÒòΪ¹ÊÕϻָ´Ê±¼ä±È½Ï³¤¡£Ö÷Òª·þÎñµÄÊÇËÑË÷ºÍÍÆ¼öÒµÎñ£¬ËÑË÷Ö÷ÒªÊÇ´ÓÏßÉϵÄÊý¾ÝÔ´ÀïÃæ°ÑÌÔ±¦µÄÉÌÆ·¡¢Óû§µÄÊý¾Ý´æµ½HBase£¬ÔÙ¾¹ýһЩÊý¾ÝµÄÇåÀí¸øËÑË÷ÒýÇæÀ´Ê¹Óá£PORSHEÊÇÎÒÃǵÄÒ»¸ö»úÆ÷ѧϰƽ̨£¬ÎÒÃÇ»á°ÑһЩÓû§ÐÐΪͬ²½µ½HBase£¬Í¬Ê±»úÆ÷ѧϰƽ̨±¾ÉíÓÐһЩģÐͺÍÌØÕ÷µÄÊý¾Ý£¬Ò²ÊÇ´æÔÚHBaseÀËüÔÚ»úÆ÷ѧϰµÄ¹ý³Ìµ±ÖлáÓÐһЩ¸½±íµÄ¹ý³Ì£¬»á²úÉú·Ç³£´óÁ¿µÄÍÌÍ£¬·ÃÎÊÍêÁËÒÔºóµÄÊý¾ÝÒ²»áµ½ÏßÉÏ¡£´ó¼ÒËÑË÷Ò»¸öÊÖ»ú£¬Ç°Ò»´ÎËÑË÷µÄ½á¹û»áÓ°ÏìºóÒ»´ÎËÑË÷µÄÅÅÐò£¬ÏÈËÑË÷Ò»¿îÊÖ»ú£¬·¢ÏÖÕâ¿î²úÆ·²»ÊÇÏëÒªµÄ£¬ºóÒ»´ÎËÑË÷Ò»¶¨»áÒÔÇ°ÃæËÑË÷µÄÐÅÏ¢×÷Ϊ²Î¿¼¡£
Õâ¸öͼÊÇÖ÷ËÑË÷£¬ËÑË÷ÒýÇæË÷Òý¹¹½¨µÄ¹ý³Ì¡£ÕâЩÊý¾ÝÔÚHBaseÉÏÃæ»áÓÐһЩÀëÏߵĻòÕßʵʱµÄ´¦Àí£¬´¦ÀíÍêÁËÖ®ºóÔÙµ¼³öµ½ÔÚÏßµÄËÑË÷ÒýÇæÀïÀ´½øÐжÔÍâ·þÎñ¡£
>
»úÆ÷ѧϰ£¬ÔÚÕâ¸öÀïÃæHBaseÖ÷ÒªÁ½²¿·Ö£¬Ê×ÏȵÚÒ»¸ö£¬ÎÒÃÇ»ùÓÚHBase×öÁËÏûÏ¢¶ÓÁеķþÎñ¡£ÁíÒ»·½Ã棬´æ´¢ÕâЩģÐÍÒÔ¼°ÌØÕ÷µÄÊý¾Ý¡£
ÎÊÌâÓëÓÅ»¯
¿Í»§ºÍ·þÎñ¶Ë¿Ï¶¨ÊÇÓÐRPCµÄ·ÃÎÊ£¬ÔÚ·þÎñÆ÷²ãÃæÆäʵÓм¸¸ö´óµÄÄ£¿é£¬×îÖØÒªµÄµ±È»ÊÇCORE£¬COREÖ÷ÒªÀ´·þÎñ¶Áд£¬ÁíÍâ¾ÍÊÇһЩ·Ö²¼Ê½·þÎñ£¬°üÀ¨¹ÊÕϻָ´¡£µ×ÏÂÒ»¶¨»áÓÐÒ»¸öÎļþϵͳ¡£Õ⼸¸ö²¿·ÖÎÒÃǶ¼Óöµ½¹ýÎÊÌ⣬Ҳ¶¼½â¾ö¹ýÎÊÌâ¡£
Ê×ÏÈÊÇÔÚRPCµÄÆ¿¾±ºÍÓÅ»¯¡£Ëü»áÓÐÒ»¸öµ¥¶ÀµÄ·µ»Ø½á¹ûµÄÏÖ³¡£¬Èç¹û´ó¼ÒÔÚÏÖ³¡ÓÐÕâÖÖ¾ÑéµÄ»°£¬Ò»¸ö½ÚµãÉÏÓзdz£¸ßµÄ²¢·¢È¥·ÃÎÊijһ̨server£¬¿Ï¶¨ÒªÒ»¸ö¸ö·µ»Ø£¬ÔÚÄǸöµØ·½ÓÐÒ»°ÑËø£¬ÒÔǰÊÇÒ»°Ñͬ²½Ëø£¬µ¼ÖÂÊÇ´®Ð͵ķµ»Ø£¬Èç¹ûÓÐÊ®¸öÏÖ³¡Í¬Ê±ÐèÒª·µ»ØµÄ»°£¬Ò»¸öÏÖ³¡ÔÚ»ØÐ´£¬ÁíÍâ¾Å¸öÔڵȴý¡£
ÎÒÃǺóÀ´×öÁ˺ܶàÓÅ»¯£¬·¢ÏÖʹÓÃnettyµÄÄ£ÐÍÊDZȽϺõģ¬Netty¿ÉÒÔ¸ü¸ßЧµÄ¸´ÓÃỊ̈߳¬»ùÓÚNettyʵÏÖHBase
RpcServer£¬Ö÷ÒªºÃ´¦¾ÍÊÇÐÔÄܺã¬rpcƽ¾ùÏìӦʱ¼ä´Ó0.92msϽµµ½0.25ms£¬ÍÌÍÂÄÜÁ¦Ìá¸ßÁËÁ½±¶¡£
Òì²½ÓëÍÌÍÂ
ÎÒÃÇÔÚÁ÷ʽµÄ»·¾³ÏÂÃæÓÐÒ»¸öÊý¾ÝÔ´£¬Á÷ʽ¼ÆËã¶ÔÓÚʵʱÐÔµÄÒªÇóºÜ¸ß£¬½ÓÏÂÀ´ÓÐÈý¸öËã×Ó£¬HBaseÕâÖÖ·Ö²¼Ê½·ÃÎʺÜÄÑÈ¥±ÜÃâÓÐһЩÃ뼶ë´Ì£¬Ëü·¢ËÍÇëÇó·µ»ØÊ±¼ä»á±È½Ï³¤¡£ÓÅ»¯ÊÖ¶ÎΪ»ùÓÚnettyʵÏÖnon-blocking
clientÒÔ¼°»ùÓÚprotobufµÄnon-blocking Stub/RpcCallbackʵÏÖcallback»Øµ÷¡£¼ÙÈç˵ÊÇͬ²½·ÃÎʵϰ£¬ÒòΪÄãÊÇÒ»¸öÁ÷£¬ÔڵȽá¹ûµÄʱºò¾ÍÒªµÈ5Ã룬Õâ¸öÁ÷Õû¸ö¾ÍÒª×èÈû5Ãë¡£Ôõô½â¾öÕâ¸öÎÊÌ⣿Õâ¸úÄãµÄÒµÎñÂß¼ÓйØÏµ£¬Äã±¾ÉíµÄIOÂß¼²»×èÈûÖ÷ÏÖ³¡£¬¾Í°ÑIOÒì²½»¯£¬Ö÷ÏÖ³¡¾Í¿ÉÒÔÍùǰ×ߣ¬×öÍêÁËÒÔºó°Ñ½á¹û»ØÐ´¾Í¿ÉÒÔÁË¡£ÄãµÄIOÂß¼ºÍÖ÷Á÷³ÌûÓÐ×èÈû¹ØÏµµÄ»°£¬Òì²½»¯¿ÉÒԺܺõؽâ¾öÕâ¸öÎÊÌâ¡£µ«ÊÇÈç¹ûÓйØÏµ£¬ÆäʵÒì²½Ò²ÊÇÓÐ×÷Óõģ¬Õâ¸ö×÷ÓÃÌåÏÖÔÚÄĶù£¿Í¬²½µÄʱºò5ÃëÖ»ÄÜ´¦ÀíÒ»¸ö½á¹û£¬¼ÙÉèÎÒ×öÒ»°Ù¸öÇëÇóµÄ´°¿Ú£¬¶¼ÊÇÒì²½·¢£¬µÈÒ»°Ù¸öÇëÇó¶¼·µ»ØµÄÖ÷Á÷³ÌÍùÏÂ×ߣ¬Èç¹ûÓÐÒ»¸öë´ÌÊÇ5Ã룬ûÓйØÏµ£¬ÔÚ5ÃëµÄʱ¼äÀï´¦ÀíÁË100¸öÇëÇó£¬Òì²½ÍÌÍÂÌá¸ß100±¶£¬Òì²½ÊÇÒ»¸öÍ¦ÖØÒªµÄÐèÇó¡£ÊµÏÖÆðÀ´£¬»ù±¾ÉÏÊÇ»ùÓÚnetty£¬ÍÌÍÂÌá¸ßÁËÁ½±¶ÒÔÉÏ¡£
ë´ÌÊDz»¿É»Ø±ÜµÄ£¬ÒòΪHBaseÊÇjavaдµÄ£¬ÕâÊDz»ÄܻرܵÄÎÊÌâ¡£PCIe-SSDµÄ¸ßIOÍÌÍÂÄÜÁ¦Ï£¬¶ÁcacheµÄ»»Èë»»³öËÙÂÊ´ó·ùÌá¸ß¡£¶ÑÉϵÄcacheÄÚ´æ»ØÊÕ²»¼°Ê±£¬µ¼ÖÂÆµ·±µÄCMS
gcÉõÖÁfullGC¡£ÓÅ»¯ÊÖ¶ÎΪʵÏÖ¶Á·¾¶E2EµÄoffheap£¬ÎÒÃÇÊǰÑÉçÇøµÄ2.0µÄ¹¦Äܸ´ÖƵ½ÎÒÃǰ汾ÉÏ£¬ÎÒÃDZÜÃâÀ¬»ø³öÏÖ¡£
Èçͼ£¬ÍÌ͵ÄÇúÏß²¨¶¯±È½ÏÃ÷ÏÔ£¬µ×ÏÂÆ½»ººÜ¶à¡£
IO¸ôÀëºÍÓÅ»¯
HBase¶ÔIOÃô¸Ð£¬´ÅÅÌ´òÂú»áÔì³É´óÁ¿Ã«´Ì£¬Èç¹ûÎÒÃÇÔÚÔÆÉÏHBase¿ÉÒÔ×Ô¼º³ä·ÖµØÀûÓÃÒ»¸öÎïÀí»úÆ÷£¬ÎÒÃÇHBaseËÑË÷µÄ³¡¾°ÀïÃæ£¬HBaseµÄ»úÆ÷ºÍ¼ÆËãµÄ»úÆ÷ÊÇ»ìºÏ²¿ÊðµÄ£¬Ò»¸ö½ÚµãÉϼÈÓÐHBaseµÄ½Úµã£¬Ò²ÓÐsparkµÄ½Úµã¡£ÕâÖÖÇé¿öÏÂÔõô×öµ½HBaseµÄ¸ôÀ룬¼ÆËã´æ´¢»ì²¼£¬batch×÷Òµ²úÉú´óÁ¿µÄIO¡£HBase×ÔÉíÒ»ÊÇFlush£¬Ò»ÊÇCompaction¡£ÓÅ»¯ÊֶΣ¬ÀûÓÃHDFSµÄHeterogeneous
storage¹¦ÄÜ£¬¶ÔÓÚÑÝʾӰÏì·Ç³£´óµÄ¾Í´æÔÚssdÉÏ£¬Èç¹û¼¶±ðµÍÒ»µãµÄÒµÎñ¶Á°æ±¾·ÅÔÚssdÉÏ¡£
ÓÅ»¯ÊÖ¶ÎÓÐCompactionÏÞÁ÷¡¢FlushÏÞÁ÷¡¢Per-CF Flush¡£ÎÒÃǵĴ¦Àíʱ¼ä»ù±¾É϶¼ÊÇÔÚ40ºÁÃëÒÔÏ£¬Í¼ÎªÁ½Ç§¸ö¼¯ÈºµÄÇé¿ö¡£ÎÒÃÇÏìӦʱ¼ä99.9%µÄÇëÇóʱ¼ä¶¼²»³¬¹ý200ºÁÃ룬Õâ¸öÊý¾ÝÏÔʾÊÇÔÚ¼¯ÈºCPU¶Áµ½80%µÄÇé¿öÏ£¬ËüÊǻ첼µÄ¡£
IOÀûÓÃ
ʵ¼ÊÎÊÌâ°üÀ¨µ¥WALÎÞ·¨³ä·ÖʹÓôÅÅÌTO¡¢HDFSд3·Ý¸±±¾¡¢Í¨ÓûúÐÍÓÐ12¿éHDDÅÌÒÔ¼°SSDµÄIOÄÜÁ¦Ô¶Ô¶³¬¹ýHDD£¬ÄãÓò»Âú£¬ÄǾÍÊÇÀË·Ñ£¬¾ÍÒªÓÅ»¯¡£ÓÅ»¯ÊÖ¶ÎÖ§³Ö¶àWAL£º¶Ôregion·Ö×é²¢½øÐкÏÀíÓ³É䣬Õâ¸öÓ³Éä¹ØÏµ¿ÉÒÔËæ»úÓ³Éä¡£Ö§³Öapp¼äIO¸ôÀ룬»ùÓÚNamespaceµÄWAL·Ö×é¡£ÉÏÏßЧ¹ûÈ«HDDÅÌÏÂдÍÌÍÂÌá¸ß20%£¬È«SSDÅÌÏÂдÍÌÍÂÌá¸ß40%£»ÏßÉÏдÈëÆ½¾ùÏìÓ¦ÑÓʱ´Ó0.5msϽµµ½0.3ms¡£
¿ªÔ´ÓëδÀ´
ÎÒÃÇÔÚ°¢Àï×ö¿ªÔ´µÄÈË̬¶È¶¼ÊǷdz£¿ª·ÅµÄ£¬ÎÒÕâÀïÁгöÁË֮ǰ½²µÄËùÓÐÓÅ»¯£¬´ò¡°ÐÇ¡±ºÅÊÇÎÒÃǺÍÉçÇøÒ»Æð¿ª·¢£¬Ã»Óдò¡°ÐÇ¡±ºÅ¶¼ÊÇÎÒÃÇ×Ô¼º×öµÄ¡£ÎÒÃDz»»á×öÍêÁËÒÔºóÁ¢¿Ì·´À¡¸øÉçÇø£¬»ù±¾ÉÏͨ¹ý˫ʮһµÄÑéÖ¤Ö®ºó²Å»á·´À¡¸øÉçÇø¡£µ±È»£¬Èç¹ûÓÃÔÆHBase¾Í¿ÉÒÔÁ¢¿Ì¿´µÃµ½¡£
HBase2.0ÒѾÌá³öÀ´·Ç³£³¤Ê±¼ä£¬Ä¿Ç°µÄ¼Æ»®ÊǽñÄêÊ¥µ®½Ú·¢²¼£¬Òª×÷Ϊһ¸öÊ¥µ®ÀñÎï¸ø´ó¼Ò¡£2.0Ö÷ÒªÊÇÓм¸¸ö·½ÃæµÄÄÚÈÝ£º
ÓÐеÄAssignmentManager£¬»áÓÐÒ»¸ö״̬»ú£¬¶øÇÒÔÚZKÉϲ»ÔÙ´æ´¢Öмä״̬Êý¾Ý¡£ÎÒÃǻῴµ½¸üƽÎȵÄGC£¬¸üÉÙµÄë´Ì,²¢ÇÒ´ó´ó¼õÉÙд·Å´ó¡£»ù±¾ÉÏÏȽøµÄÊý¾Ý¿â¶¼ÊÇ»ùÓÚLSMµÄ£¬Ð´·Å´óºÃ²»ºÃ¾ö¶¨Êý¾Ý¿âºÃ²»ºÃ£¬×îÖ÷Òª¾ÍÊÇ¿ØÖÆÐ´·Å´ó£¬HBaseÔÚÕâ·½ÃæÒ²×öÁËIN¡ªmemory
Lsm£¬¸ø²»Í¬µÄÓ¦Ó÷Ö×飬һ×éÖ»·þÎñÒ»¸ö±í»òÕßÒ»Åú±í£¬Êµ¼ÊÉÏÔÚÔËάÉÏ»áÓкܺõÄÌáÉý¡£
δÀ´£¬ÎÒÃÇÓкܶà˼¿¼£º
д·¾¶ÓÅ»¯ÓëÖØ¹¹£¬SSDÏÖÔÚ·¢Õ¹µÃ·Ç³£¿ì£¬Ëæ×Å»úÐ͵ĸüУ¬Ð´ÍÌ͸ú²»ÉÏÓ²¼þµÄ·¢Õ¹£¬½×¶Î²ð·Ö+Òì²½´¦ÀíÓë»ØÐ´£¬²âÊÔ»·¾³ÏÂÍÌÍ¿ÉÌá¸ß3±¶ÒÔÉÏ£¬µ±È»ÕâÖ»ÊÇÔÐÍ£¬²¢Ã»ÓÐÉÏÏßÈ¥×ö¡£
MTTRµÄÓÅ»¯£¬HBaseµÄ»Ö¸´Ê±¼ä±È½Ï³¤¡£ÊDz»ÊÇ¿ÉÒÔÓиüºÃµÄÉè¼Æ£¿Äܲ»ÄÜÓÅ»¯µ½Ãë¼¶£¬ÕâÒ²ÊǺÜÖØÒªµÄ¡£
ÏìӦʱ¼äµÄƽÎÈÐÔ£¬HBaseµ×²ã¿ÉÒÔÓкܶàµÄÎļþϵͳ£¬µ«ÊDz»¹ÜÊÇʲôÎļþϵͳ£¬Ëü¶¼ÊÇÒ»¸öÍⲿµÄϵͳ£¬Äã·ÃÎÊËüµÄʱºò¾ÍÓпÉÄܲúÉúë´ÌºÍ²»ºÃµÄÏàÓ¦ÑÓʱ£¬ÈçºÎ¸üºÃµÄ¹æ±ÜHDFSë´ÌµÄÓ°Ïì¡£
|