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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
HDFS NameNodeÄÚ´æÏê½â
 
À´Ô´£ºÃÀÍŵãÆÀ¼¼ÊõÍÅ¶Ó ·¢²¼ÓÚ£º 2017-2-21
  2620  次浏览      27
 

ǰÑÔ

¡¶HDFS NameNodeÄÚ´æÈ«¾°¡·ÖУ¬ÎÒÃÇ´ÓNameNodeÄÚ²¿Êý¾Ý½á¹¹µÄÊӽǣ¬¶ÔËüµÄÄÚ´æÈ«¾°¼°¼¸¸ö¹Ø¼üÊý¾Ý½á¹¹½øÐÐÁ˼òµ¥½â¶Á£¬²¢½áºÏʵ¼Ê³¡¾°½éÉÜÁËNameNode¿ÉÄÜÓöµ½µÄÎÊÌ⣬»¹ÓÐÒµ½ç½øÐкáÏòÀ©Õ¹·½ÃæµÄ¶àÖÖ¿É½è¼ø½â¾ö·½°¸¡£

ÊÂʵÉÏ£¬¶ÔNameNodeʵʩºáÏòÀ©Õ¹Ç°£¬»áÃæÁÙ³£×¤ÄÚ´æËæÊý¾Ý¹æÄ£³ÖÐøÔö³¤µÄÇé¿ö£¬Îª´ËÐèÒª¾­Àú²»¶Ïµ÷ÕûNameNodeÄÚ´æµÄ¶Ñ¿Õ¼ä´óСµÄ¹ý³Ì£¬ÆÚ¼ä»áÓöµ½¼¸¸öÎÊÌ⣺

1.µ±Ç°ÄÚ´æ¿Õ¼äÔ¤ÆÚÄܹ»Ö§³Å¶à³¤Ê±¼ä¡£

2.ºÎʱµ÷Õû¶Ñ¿Õ¼äÒÔÓ¦¶ÔÊý¾Ý¹æÄ£Ôö³¤¡£

3.Ôö¼Ó¶à´ó¶Ñ¿Õ¼ä¡£

ÁíÒ»·½ÃæNameNode¶Ñ¿Õ¼äÓÖ²»ÄÜÎÞÖ¹¾³Ôö¼Ó£¬µ½´ïãÐÖµºó£¨Óë»úÐÍ¡¢JVM°æ±¾¡¢GC²ßÂÔµÈÏà¹Ø£©Í¬Ñù»á´æÔÚDZÔÚÎÊÌ⣺

1.ÖØÆôʱ¼ä±ä³¤¡£

2.DZÔÚµÄFGC·çÏÕ

Óɴ˿ɼû£¬¶ÔNameNodeÄÚ´æÊ¹ÓÃÇé¿öµÄϸÁ£¶ÈÕÆ¿Ø£¬¿ÉÒÔΪÓÅ»¯ÄÚ´æÊ¹Óûòµ÷ÕûÄÚ´æ´óСÌṩ¸üºÃµÄ¾ö²ßÖ§³Ö¡£

±¾ÎÄÔÚǰƪ¡¶HDFS NameNodeÄÚ´æÈ«¾°¡·ÎÄÕµĻù´¡ÉÏ£¬Õë¶ÔÇ°ÃæµÄ¼¸¸öÎÊÌ⣬½øÒ»²½¶ÔNameNodeºËÐÄÊý¾Ý½á¹¹µÄÄÚ´æÊ¹ÓÃÇé¿ö½øÐÐÏêϸ¶¨Á¿·ÖÎö£¬²¢¸ø³ö¿É¹©²Î¿¼µÄÄÚ´æÔ¤¹ÀÄ£ÐÍ¡£¸ù¾Ý·ÖÎö½á¹û¿ÉÓÐÕë¶ÔµÄÓÅ»¯¼¯Èº´æ´¢×ÊԴʹÓÃģʽ£¬Í¬Ê±ÀûÓÃÄÚ´æÔ¤¹ÀÄ£ÐÍ£¬¿ÉÒÔÌáǰ¶ÔÄÚ´æ×ÊÔ´½øÐкÏÀí¹æ»®£¬ÎªHDFSµÄ·¢Õ¹ÌṩÊý¾Ý²Î¿¼ÒÀ¾Ý¡£

ÄÚ´æ·ÖÎö

NetworkTopology

NameNodeͨ¹ýNetworkTopologyά»¤Õû¸ö¼¯ÈºµÄÊ÷×´ÍØÆË½á¹¹£¬µ±¼¯ÈºÆô¶¯¹ý³ÌÖУ¬Í¨¹ý»ú¼Ü¸ÐÖª£¨Í¨³£¶¼ÊÇÍⲿ½Å±¾¼ÆË㣩Öð½¥½¨Á¢ÆðÕû¸ö¼¯ÈºµÄ»ú¼ÜÍØÆË½á¹¹£¬Ò»°ãÔÚNameNodeµÄÉúÃüÖÜÆÚÄÚ²»»á·¢Éú´ó±ä»¯¡£ÍØÆË½á¹¹µÄÒ¶×Ó½ÚµãDatanodeDescriptorÊDZêʶDataNodeµÄ¹Ø¼ü½á¹¹£¬¸ÃÀà¼Ì³Ð¹ØÏµÈçͼ1Ëùʾ¡£

ͼ1 DatanodeDescriptor¼Ì³Ð¹ØÏµ

ÔÚ64λJVMÖУ¬DatanodeDescriptorÄÚ´æÊ¹ÓÃÇé¿öÈçͼ2Ëùʾ£¨³ýÌØÊâ˵Ã÷Í⣬ºóÐø¶ÔÆäËüÊý¾Ý½á¹¹µÄÄÚ´æÊ¹ÓÃÇé¿ö·ÖÎö¾ù»ùÓÚ64λJVM£©¡£

ͼ2 DatanodeDescriptorÄÚ´æÊ¹ÓÃÏê½â

ÓÉÓÚDataNode½ÚµãÒ»°ã»á¹ÒÔØ¶à¿é²»Í¬ÀàÐÍ´æ´¢µ¥Ôª£¬ÈçHDD¡¢SSDµÈ£¬Í¼2ÖÐstorageMapÃèÊöµÄÕýÊÇ´æ´¢½éÖÊDatanodeStorageInfo¼¯ºÏ£¬ÆäÏêϸÊý¾Ý½á¹¹Èçͼ3Ëùʾ¡£

ͼ3 DatanodeStorageInfoÄÚ´æÊ¹ÓÃÏê½â

³ý´ËÖ®Í⣬DatanodeDescriptor»¹°üÀ¨Ò»²¿·Ö¶¯Ì¬ÄÚ´æ¶ÔÏó£¬ÈçreplicateBlocks¡¢recoverBlocksºÍinvalidateBlocksµÈÓëÊý¾Ý¿é¶¯Ì¬µ÷ÕûÏà¹ØµÄÊý¾Ý½á¹¹£¬pendingCached¡¢cachedºÍpendingUncachedµÈÓ뼯ÖÐʽ»º´æÏà¹ØµÄÊý¾Ý½á¹¹¡£ÓÉÓÚÕâЩÊý¾Ý¾ùÊô¶¯Ì¬µÄÐÎʽÁÙʱ´æÔÚ£¬ËæÊ±»á·¢Éú±ä»¯£¬ËùÒÔÕâÀïûÓÐ×ö½øÒ»²½Ïêϸͳ¼Æ£¨½á¹û´æÔÚÉÙÐíÎó²î£©¡£

¸ù¾ÝÇ°ÃæµÄ·ÖÎö£¬¼ÙÉ輯ȺÖаüÀ¨2000¸öDataNode½Úµã£¬NameNodeά»¤Õⲿ·ÖÐÅÏ¢ÐèÒªÕ¼ÓõÄÄÚ´æ×ÜÁ¿£º

£¨64 + 114 + 56 + 109 ? 16£©? 2000 = ~4MB

ÔÚÊ÷×´»ú¼ÜÍØÆË½á¹¹ÖУ¬³ýÁËÒ¶×Ó½ÚµãDatanodeDescriptorÍ⣬»¹°üÀ¨ÄÚ²¿½ÚµãInnerNodeÃèÊö¼¯ÈºÍØÆË½á¹¹Öлú¼ÜÐÅÏ¢¡£

ͼ4 NetworkTopologyÍØÆË½á¹¹ÄÚ²¿½ÚµãÄÚ´æÊ¹ÓÃÏê½â

¶ÔÓÚÕⲿ·ÖÃèÊö»ú¼ÜÐÅÏ¢µÈ½ÚµãÐÅÏ¢£¬¼ÙÉ輯Ⱥ°üÀ¨80¸ö»ú¼ÜºÍ2000¸öDataNode½Úµã£¬NameNodeά»¤ÍØÆË½á¹¹ÖÐÄÚ²¿½ÚµãÐÅÏ¢ÐèÒªÕ¼ÓõÄÄÚ´æ×ÜÁ¿£º

£¨44 + 48) ? 80 + 8 ? 2000 = ~25KB

´ÓÉÏÃæµÄ·ÖÎö¿ÉÒÔ¿´µ½£¬ÎªÎ¬»¤¼¯ÈºµÄÍØÆË½á¹¹NetworkTopology£¬µ±¼¯Èº¹æÄ£Îª2000ʱ£¬ÐèÒªµÄÄÚ´æ¿Õ¼ä²»³¬¹ý5MB£¬°´ÕÕ½Ó½üÏßÐÔÔö³¤Ç÷ÊÆ£¬¼´Ê¹¼¯Èº¹æÄ£½Ó½ü10000£¬Õⲿ·ÖÄÚ´æ¿Õ¼ä~25MB£¬Ïà±ÈÕû¸öNameNode JVMµÄÄڴ濪Ïú΢ºõÆä΢¡£

NameSpace

Ó봫ͳµ¥»úÎļþϵͳÏàËÆ£¬HDFS¶ÔÎļþϵͳµÄĿ¼½á¹¹Ò²Êǰ´ÕÕÊ÷×´½á¹¹Î¬»¤£¬NameSpace±£´æµÄÕýÊÇÕû¸öĿ¼Ê÷¼°Ä¿Â¼Ê÷ÉÏÿ¸öĿ¼/Îļþ½ÚµãµÄÊôÐÔ£¬°üÀ¨£ºÃû³Æ£¨name£©£¬±àºÅ£¨id£©£¬ËùÊôÓû§£¨user£©£¬ËùÊô×飨group£©£¬È¨ÏÞ£¨permission£©£¬ÐÞ¸Äʱ¼ä£¨mtime£©£¬·ÃÎÊʱ¼ä£¨atime£©£¬×ÓĿ¼/Îļþ£¨children£©µÈÐÅÏ¢¡£

ÏÂͼ5ΪNamespaceÖÐINodeµÄÀàͼ½á¹¹£¬´ÓÀàͼ¿ÉÒÔ¿´³ö£¬ÎļþINodeFileºÍĿ¼INodeDirectoryµÄ¼Ì³Ð¹ØÏµ¡£ÆäÖÐĿ¼ÔÚÄÚ´æÖÐÓÉINodeDirectory¶ÔÏóÀ´±íʾ£¬²¢ÓÃList children³ÉÔ±ÁбíÀ´ÃèÊö¸ÃĿ¼ÏµÄ×ÓĿ¼»òÎļþ£»ÎļþÔÚÄÚ´æÖÐÔòÓÉINodeFileÀ´±íʾ£¬²¢ÓÃBlockInfo[] blocksÊý×é±íʾ¸ÃÎļþÓÉÄÄЩBlocks×é³É¡£ÆäËüÊôÐÔÓɼ̳йØÏµµÄ¸÷¸öÏàÓ¦×ÓÀà³ÉÔ±±äÁ¿±êʶ¡£

ͼ5 ÎļþºÍĿ¼¼Ì³Ð¹ØÏµ

Ŀ¼ºÍÎļþ½á¹¹Ôڼ̳йØÏµÖи÷ÊôÐÔµÄÄÚ´æÕ¼ÓÃÇé¿öÈçͼ6Ëùʾ¡£

ͼ6 Ŀ¼ºÍÎļþÄÚ´æÊ¹ÓÃÏê½â

³ýͼÖÐÌáµ½µÄÊôÐÔÐÅÏ¢Í⣬һЩ¸½¼ÓÈçACLµÈ·ÇͨÓÃÊôÐÔ£¬Ã»ÓÐÔÚͳ¼Æ·¶Î§ÄÚ¡£ÔÚĬÈϳ¡¾°Ï£¬INodeFileºÍINodeDirectory.withQuotaFeatureÊÇÏà¶ÔͨÓú͹㷺ʹÓõ½µÄÁ½¸ö½á¹¹¡£

¸ù¾ÝÇ°ÃæµÄ·ÖÎö£¬¼ÙÉèHDFSĿ¼ºÍÎļþÊý·Ö±ðΪ1ÒÚ£¬Block×ÜÁ¿ÔÚ1ÒÚÇé¿öÏ£¬Õû¸öNamespaceÔÚJVMÖÐÄÚ´æÊ¹ÓÃÇé¿ö£º

Total(Directory) = (24 + 96 + 44 + 48) ? 100M + 8 ? num(total children)

Total(Files) = (24 + 96 + 48) ? 100M + 8 ? num(total blocks)

Total = (24 + 96 + 44 + 48) ? 100M + 8 ? num(total children) + (24 + 96 + 48) ? 100M + 8 ? num(total blocks) = ~38GB

¹ØÓÚÔ¤¹À·½·¨µÄ¼¸µã˵Ã÷£º

1.¶ÔĿ¼Ê÷½á¹¹ÖÐËùÓеÄDirectory¾ù°´ÕÕĬÈÏINodeDirectory.withQuotaFeature½á¹¹½øÐйÀË㣬Èç¹û¼¯Èº¿ªÆôACL/SnapshotdµÈÌØÐÔ£¬ÐèÔö¼ÓÕⲿ·ÖÄڴ濪Ïú¡£

2.¶ÔĿ¼Ê÷½á¹¹ÖÐËùÓеÄFile°´ÕÕINodeFile½øÐйÀËã¡£

3.´ÓÕû¸öĿ¼Ê÷µÄ¸¸×Ó¹ØÏµÉÏ¿´£¬num(total children)¾ÍÊÇĿ¼½ÚµãÊýºÍÎļþ½ÚµãÊýÖ®ºÍ¡£

4.²¿·ÖÊý¾Ý½á¹¹ÖаüÀ¨ÁË×Ö·û´®£¬°´ÕÕ¾ùÖµ³¤¶ÈΪ8½øÐÐÔ¤¹À£¬Êµ¼ÊÇé¿ö¿ÉÄÜ»áÉÔ´ó¡£

NamespaceÔÚJVM¶ÑÄÚ´æ¿Õ¼äÖг£×¤£¬ÔÚNameNodeµÄÕû¸öÉúÃüÖÜÆÚÒ»Ö±ÔÚÄÚ´æ´æÔÚ£¬Í¬Ê±Îª±£Ö¤Êý¾ÝµÄ¿É¿¿ÐÔ£¬NameNode»á¶¨ÆÚ¶ÔÆä½øÐÐCheckpoint£¬½«NamespaceÎﻯµ½Íⲿ´æ´¢É豸¡£Ëæ×ÅÊý¾Ý¹æÄ£µÄÔö¼Ó£¬ÎļþÊý/Ŀ¼Ê÷Ò²»áËæÖ®Ôö¼Ó£¬Õû¸öNamespaceËùÕ¼ÓõÄJVMÄÚ´æ¿Õ¼äÒ²»á»ù±¾±£³ÖÏßÐÔͬ²½Ôö¼Ó¡£

BlocksMap

HDFS½«Îļþ°´ÕÕÒ»¶¨µÄ´óСÇгɶà¸öBlock£¬ÎªÁ˱£Ö¤Êý¾Ý¿É¿¿ÐÔ£¬Ã¿¸öBlock¶ÔÓ¦¶à¸ö¸±±¾£¬´æ´¢ÔÚ²»Í¬DataNodeÉÏ¡£NameNode³ýÐèҪά»¤Block±¾ÉíµÄÐÅÏ¢Í⣬»¹ÐèҪά»¤´ÓBlockµ½DataNodeÁбíµÄ¶ÔÓ¦¹ØÏµ£¬ÓÃÓÚÃèÊöÿһ¸öBlock¸±±¾Êµ¼Ê´æ´¢µÄÎïÀíλÖã¬BlockManagerÖÐBlocksMap½á¹¹¼´ÓÃÓÚBlockµ½DataNodeÁбíµÄÓ³Éä¹ØÏµ¡£BlocksMapÄÚ²¿Êý¾Ý½á¹¹Èçͼ7Ëùʾ¡£

ͼ7 BlockInfo¼Ì³Ð¹ØÏµ

BlocksMap¾­¹ý¶à´ÎÓÅ»¯Ðγɵ±Ç°½á¹¹£¬×î³õ°æ±¾Ö±½ÓʹÓÃHashMap½â¾ö´ÓBlockµ½BlockInfoµÄÓ³Éä¡£ÓÉÓÚÔÚÄÚ´æÊ¹Óá¢Åöײ³åÍ»½â¾öºÍÐÔÄܵȷ½Ãæ´æÔÚÎÊÌ⣬֮ºóʹÓÃÖØÐÂʵÏÖµÄLightWeightGSet´úÌæHashMap£¬¸ÃÊý¾Ý½á¹¹±¾ÖÊÉÏÒ²ÊÇÀûÓÃÁ´±í½â¾öÅöײ³åÍ»µÄHashTable£¬µ«ÊÇÔÚÒ×ÓÃÐÔ¡¢ÄÚ´æÕ¼ÓúÍÐÔÄܵȷ½Ãæ±íÏÖ¸üºÃ¡£¹ØÓÚÒýÈëLightWeightGSetϸ½Ú¿É²Î¿¼HDFS-1114¡£

ÓëHashMapÏà±È£¬ÎªÁ˾¡¿ÉÄܱÜÃâÅöײ³åÍ»£¬BlocksMapÔÚ³õʼ»¯Ê±Ö±½Ó·ÖÅäÕû¸öJVM¶Ñ¿Õ¼äµÄ2%×÷ΪLightWeightGSetµÄË÷Òý¿Õ¼ä£¬µ±È»2%²»ÊǾø¶ÔÖµ£¬Èç¹û2%ÄÚ´æ¿Õ¼ä¿É³ÐÔØµÄË÷ÒýÏ³öÁËInteger.MAX_VALUE/8£¨×¢£ºObject.hashCode()½á¹ûÊÇint£¬¶ÔÓÚ64λJVMµÄ¶ÔÏóÒýÓÃÕ¼ÓÃ8Bytes£©»á½«Æä×Ô¶¯µ÷Õûµ½ãÐÖµÉÏÏÞ¡£ÏÞ¶¨JVM¶Ñ¿Õ¼äµÄ2%»ù±¾ÉÏÀ´×Ô¾­ÑéÖµ£¬¼Ù¶¨¶ÔÓÚ64λJVM»·¾³£¬Èç¹ûÌṩ64GBÄÚ´æ´óС£¬Ë÷ÒýÏî¿É³¬¹ý1ÒÚ£¬Èç¹ûHashº¯ÊýÊʵ±£¬»ù±¾¿ÉÒÔ±ÜÃâÅöײ³åÍ»¡£

BlocksMapµÄºËÐŦÄÜÊÇͨ¹ýBlockID¿ìËÙ¶¨Î»µ½¾ßÌåµÄBlockInfo£¬¹ØÓÚBlockInfoÏêϸµÄÊý¾Ý½á¹¹Èçͼ8Ëùʾ¡£BlockInfo¼Ì³Ð×ÔBlock£¬³ýÁËBlock¶ÔÏóÖÐBlockID£¬numbytesºÍtimestampÐÅÏ¢Í⣬×îÖØÒªµÄÊǸÃBlockÎïÀí´æ´¢ËùÔڵĶÔÓ¦DataNodeÁбíÐÅÏ¢triplets¡£

ͼ8 BlocksMapÄÚ´æÊ¹ÓÃÏê½â

ÆäÖÐLightWeightGSet¶ÔÓ¦µÄÄÚ´æ¿Õ¼äÈ«¾ÖΨһ¡£¾¡¹Ü¾­¹ýLightWeightGSetÓÅ»¯ÄÚ´æÕ¼Ó㬵«ÊÇBlocksMapÈÔȻռÓÃÁË´óÁ¿JVMÄÚ´æ¿Õ¼ä£¬¼ÙÉ輯ȺÖй²1ÒÚBlock£¬NameNode¿ÉÓÃÄÚ´æ¿Õ¼ä¹Ì¶¨´óС128GB£¬ÔòBlocksMapÕ¼ÓÃÄÚ´æÇé¿ö£º

16 + 24 + 2% ? 128GB +£¨ 40 + 128 £©? 100M = ~20GB

BlocksMapÊý¾ÝÔÚNameNodeÕû¸öÉúÃüÖÜÆÚÄÚ³£×¤ÄÚ´æ£¬Ëæ×ÅÊý¾Ý¹æÄ£µÄÔö¼Ó£¬¶ÔÓ¦BlockÊý»áËæÖ®Ôö¶à£¬BlocksMapËùÕ¼ÓõÄJVM¶ÑÄÚ´æ¿Õ¼äÒ²»á»ù±¾±£³ÖÏßÐÔͬ²½Ôö¼Ó¡£

С½á

NameNodeÄÚ´æÊý¾Ý½á¹¹·Ç³£·á¸»£¬³ýÁËÇ°ÃæÏêϸ·ÖÎöµÄºËÐÄÊý¾Ý½á¹¹Í⣬Æäʵ»¹°üÀ¨ÈçLeaseManager/SnapShotManager/CacheManagerµÈ¹ÜÀíµÄÊý¾Ý£¬ÓÉÓÚÄÚ´æÊ¹Ó÷dz£ÓÐÏÞ£¬»òÌØÐÔδÎȶ¨Ã»ÓпªÆô£¬»òûÓÐͨÓÃÐÔ£¬ÕâÀï¶¼²»ÔÙÕ¹¿ª¡£

¸ù¾ÝǰÊö¶ÔNameNodeÄÚ´æµÄÔ¤¹À£¬¶Ô±ÈHadoop¼¯ÈºÀúʷʵ¼ÊÊý¾Ý£ºÎļþĿ¼×ÜÁ¿~140M£¬Êý¾Ý¿é×ÜÁ¿~160M£¬NameNode JVMÅäÖÃ72GB£¬Ô¤¹ÀÄÚ´æÊ¹ÓÃÇé¿ö£º

Namespace£º(24 + 96 + 44 + 48) ? 70M + 8 ? 140M + (24 + 96 + 48) ? 70M + 8 ? 160M = ~27GB

BlocksMap£º16 + 24 + 2% ? 72GB +£¨ 40 + 128 £©? 160M = ~26GB

˵Ã÷£ºÕâÀï°´ÕÕĿ¼ÎļþÊýÕ¼±È1:1½øÐÐÁ˼ò»¯£¬»ù±¾Óëʵ¼ÊÇé¿öÎǺϣ¬ÇÒ¼ò»¯¶ÔÄÚ´æÔ¤¹À½á¹ûÓ°Ïì·Ç³£Ð¡¡£

¶þÕß×éºÏ½á¹û~53GB£¬½á¹ûÓë¼à¿ØÊý¾ÝÏÔʾ³£×¤ÄÚ´æ~52GB»ù±¾Ïàͬ£¬·ûºÏʵ¼ÊÇé¿ö¡£

´ÓÇ°ÃæÌÖÂÛ¿ÉÒÔ¿´³ö£¬Õû¸öNameNode¶ÑÄÚ´æÖУ¬Õ¼¿Õ¼ä×î´óµÄÁ½¸ö½á¹¹ÎªNamespaceºÍBlocksMap£¬µ±Êý¾Ý¹æÄ£Ôö¼Óºó£¬¾Þ´óµÄÄÚ´æÕ¼ÓÃÊÆ±Ø»á¸øJVMÄÚ´æ¹ÜÀí´øÀ´ÌôÕ½£¬ÉõÖÁ¿ÉÄÜÖÆÔ¼NameNode·þÎñÄÜÁ¦±ß½ç¡£

Õë¶ÔNamespaceºÍBlocksMapµÄ¿Õ¼äÕ¼ÓùæÄ££¬ÓÐÁ½¸öÓÅ»¯·½Ïò£º

1.ºÏ²¢Ð¡Îļþ¡£Ê¹ÓÃHive×öÊý¾ÝÉú²úʱ£¬Îª±ÜÃâÑÏÖØµÄÊý¾ÝÇãб¡¢ÈËΪµ÷С·ÖÇøÁ£¶ÈµÈÒ»Ð©ÌØÊâÔ­Òò£¬¿ÉÄÜ»áÔÚHDFSÉÏдÈë´óÁ¿Ð¡Îļþ£¬»á¸øNameNode´øÀ´Ç±ÔÚµÄÓ°Ïì¡£¼°Ê±ºÏ²¢Ð¡Îļþ£¬±£³ÖÎȶ¨µÄĿ¼ÎļþÔö³¤Ç÷ÊÆ£¬¿ÉÓÐЧ±ÜÃâNameNodeÄÚ´æ¶¶¶¯¡£

2. Êʵ±µ÷ÕûBlockSize¡£ÈçǰÊö£¬¸üÉÙµÄBlockÊýÒ²¿É½µµÍÄÚ´æÊ¹Ó㬲»¹ýBlockSizeµ÷Õû»á¼ä½ÓÓ°Ïìµ½¼ÆËãÈÎÎñ£¬ÐèÒª½øÐÐÊʵ±µÄȨºâ¡£

¶Ô±ÈÆäËûJava·þÎñ£¬NameNode³¡¾°Ïà¶ÔÌØÊ⣬ÐèÒª¶ÔJVM²¿·ÖĬÈϲÎÊý½øÐÐÊʵ±µ÷Õû¡£±ÈÈçYoung/Old¿Õ¼ä±ÈÀý£¬Îª±ÜÃâCMS GC½µ¼¶µ½FGCÓ°Ïì·þÎñ¿ÉÓÃÐÔ£¬Êʵ±µ÷Õû´¥·¢CMS GC¿ªÊ¼µÄãÐÖµµÈµÈ¡£¹ØÓÚJVMÏà¹Ø²ÎÊýµ÷Õû²ßÂÔµÄϸ½Ú½¨Òé²Î¿¼¹Ù·½Ê¹ÓÃÎĵµ¡£

ÕâÀ±ÊÕ߸ù¾Ýʵ¼ùÌṩ¼¸µãNameNodeÄÚ´æÏà¹ØµÄ¾­Ñ鹩²Î¿¼£º

1.¸ù¾ÝÔªÊý¾ÝÔö³¤Ç÷ÊÆ£¬²Î¿¼±¾ÎÄǰÊöµÄÄÚ´æ¿Õ¼äÕ¼ÓÃÔ¤¹À·½·¨£¬Äܹ»´óÌåµÃµ½NameNode³£×¤ÄÚ´æ´óС£¬Ò»°ã°´ÕÕ³£×¤ÄÚ´æÕ¼ÄÚ´æ×ÜÁ¿~60%µ÷ÕûJVMÄÚ´æ´óС¿É»ù±¾Âú×ãÐèÇó¡£

2.Ϊ±ÜÃâGC³öÏÖ½µ¼¶µÄÎÊÌ⣬¿É½«CMSInitiatingOccupancyFractionµ÷Õûµ½~70¡£

3.NameNodeÖØÆô¹ý³ÌÖУ¬ÓÈÆäÊÇDataNode½øÐÐBlockReport¹ý³ÌÖУ¬»á´´½¨´óÁ¿ÁÙʱ¶ÔÏó£¬Îª±ÜÃâÆä½úÉýµ½OldÇøµ¼ÖÂÆµ·±GCÉõÖÁÓÕ·¢FGC£¬¿ÉÊʵ±µ÷´óYoungÇø£¨-XX:NewRatio£©µ½10~15?

¾ÝÁ˽⣬Õë¶ÔNameNodeµÄʹÓó¡¾°£¬Ê¹ÓÃCMSÄÚ´æ»ØÊÕ²ßÂÔ£¬½«HotSpot JVMÄÚ´æ¿Õ¼äµ÷Õûµ½180GB£¬¿ÉÌṩÎȶ¨·þÎñ¡£¼ÌÐøÉϵ÷ÓпÉÄܶÔJVMÄÚ´æ¹ÜÀíÄÜÁ¦´øÀ´ÌôÕ½£¬ÓÈÆäÊÇÄÚ´æ»ØÊÕ·½Ã棬һµ©·¢ÉúFGC¶ÔÓ¦ÓÃÊÇÖÂÃüµÄ¡£ÕâÀïÌáµ½180GB´óС²¢²»ÊǾø¶ÔÖµ£¬ÄÜ·ñÔÚ´Ë»ù´¡ÉϼÌÐøµ÷´óÇÒÄܹ»Îȶ¨·þÎñ²»ÔÚ±¾ÎĵÄÌÖÂÛ·¶Î§¡£½áºÏǰÊöµÄÔ¤¹À·½·¨£¬µ±¿ÉÓÃJVMÄÚ´æ´ï180GBʱ£¬¿É¹ÜÀíÔªÊý¾Ý×ÜÁ¿´ï~700M£¬»ù±¾Äܹ»Âú×ãÖÐС¹æÄ£ÒÔϼ¯ÈºÐèÇó¡£

×ܽá

±¾ÎÄÔÚ¡¶HDFS NameNodeÄÚ´æÈ«¾°¡·»ù´¡ÉÏ£¬¶ÔNameNodeÄÚ´æÊ¹ÓÃÕ¼±È½Ï¸ßµÄ¼¸¸öºËÐÄÊý¾Ý½á¹¹½øÐÐÁËÏêϸµÄ½éÉÜ¡£ÔÚ´Ë»ù´¡ÉÏ£¬ÌṩÁ˿ɹ©²Î¿¼µÄNameNodeÄÚ´æÊý¾Ý¿Õ¼äÕ¼ÓÃÔ¤¹ÀÄ£ÐÍ£º

Total = 198 ? num(Directory + Files) + 176 ? num(blocks) + 2% ? size(JVM Memory Size)

ͨ¹ý¶ÔNameNodeÄÚ´æÊ¹ÓÃÇé¿öµÄ¶¨Á¿·ÖÎö£¬¿ÉΪHDFSÓÅ»¯ºÍ·¢Õ¹¹æ»®Ìṩ¿É½è¼øµÄÊý¾Ý²Î¿¼ÒÀ¾Ý¡£

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

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

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

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

APPÍÆ¹ãÖ®ÇÉÓù¤¾ß½øÐÐÊý¾Ý·ÖÎö
Hadoop Hive»ù´¡sqlÓï·¨
Ó¦Óö༶»º´æÄ£Ê½Ö§³Åº£Á¿¶Á·þÎñ
HBase ³¬Ïêϸ½éÉÜ
HBase¼¼ÊõÏêϸ½éÉÜ
Spark¶¯Ì¬×ÊÔ´·ÖÅä

HadoopÓëSpark´óÊý¾Ý¼Ü¹¹
HadoopÔ­ÀíÓë¸ß¼¶Êµ¼ù
HadoopÔ­Àí¡¢Ó¦ÓÃÓëÓÅ»¯
´óÊý¾ÝÌåϵ¿ò¼ÜÓëÓ¦ÓÃ
´óÊý¾ÝµÄ¼¼ÊõÓëʵ¼ù
Spark´óÊý¾Ý´¦Àí¼¼Êõ

GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí