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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
HDFS·Ö²¼Ê½Îļþϵͳ
 
×÷Õßêdzƣº²ËÄñ-´«Ææ
 
  1817  次浏览      31
2020-9-25 
 

±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½²½âÁËHDFS¸ÅÊö¡¢¼Ü¹¹¡¢¹Ø¼üÌØÐÔ¡¢ÅäÖô洢µÈÄÚÈÝ¡£

±¾ÎÄ×÷ÕßêdzƲËÄñ-´«Ææ£¬À´×Ô²©¿ÍÔ°£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼­¡¢ÍƼö¡£

 

ÎļþϵͳµÄ»ù±¾¸ÅÊö

Îļþϵͳ¶¨Ò壺ÎļþϵͳÊÇÒ»ÖÖ´æ´¢ºÍ×éÖ¯¼ÆËã»úÊý¾ÝµÄ·½·¨£¬ËüʹµÃ¶ÔÆä·ÃÎʺͲéÕÒ±äµÃÈÝÒס£

ÎļþÃû£ºÔÚÎļþϵͳÖУ¬ÎļþÃûÊÇÓÃÓÚ¶¨Î»´æ´¢Î»Öá£

ÔªÊý¾Ý£¨Metadata£©£º±£´æÎļþÊôÐÔµÄÊý¾Ý£¬ÈçÎļþÃû£¬Îļþ³¤¶È£¬ÎļþËùÊôÓû§×飬Îļþ´æ´¢Î»Öõȡ£

Êý¾Ý¿é£¨Block£©£º´æ´¢ÎļþµÄ×îСµ¥Ôª¡£¶Ô´æ´¢½éÖÊ»®·ÖÁ˹̶¨µÄÇøÓò£¬Ê¹ÓÃʱ°´ÕâÐ©ÇøÓò·ÖÅäʹÓá£

HDFSµÄ¸ÅÊö

HDFS(Hadoop Distributed File System)»ùÓÚGoogle·¢²¼µÄGFSÂÛÎÄÉè¼Æ¿ª·¢¡£

HDFSÊÇHadoop¼¼Êõ¿ò¼ÜÖеķֲ¼Ê½Îļþϵͳ£¬¶Ô²¿ÊðÔÚ¶ą̀¶ÀÁ¢ÎïÀí»úÆ÷ÉϵÄÎļþ½øÐйÜÀí¡£

¿ÉÓÃÓÚ¶àÖÖ³¡¾°£¬È磺 ÍøÕ¾Óû§ÐÐΪÊý¾Ý´æ´¢¡£ Éú̬ϵͳÊý¾Ý´æ´¢¡£ ÆøÏóÊý¾Ý´æ´¢¡£

HDFSµÄÓŵãºÍȱµã

Æä³ý¾ß±¸ÆäËü·Ö²¼Ê½ÎļþϵͳÏàÍ¬ÌØÐÔÍ⣬»¹ÓÐ×Ô¼ºÌØÓеÄÌØÐÔ£º

¸ßÈÝ´íÐÔ£ºÈÏΪӲ¼þ×ÜÊDz»¿É¿¿µÄ¡£

¸ßÍÌÍÂÁ¿£ºÎª´óÁ¿Êý¾Ý·ÃÎʵÄÓ¦ÓÃÌṩ¸ßÍÌÍÂÁ¿Ö§³Ö¡£

´óÎļþ´æ´¢£ºÖ§³Ö´æ´¢TB-PB¼¶±ðµÄÊý¾Ý¡£

²»ÊÊÓó¡¾°

[1] µÍʱ¼äÑÓ³ÙÊý¾Ý·ÃÎʵÄÓ¦Óã¬ÀýÈ缸ʮºÁÃ뷶Χ¡£

Ô­Òò£ºHDFSÊÇΪ¸ßÊý¾ÝÍÌÍÂÁ¿Ó¦ÓÃÓÅ»¯µÄ£¬ÕâÑù¾Í»áÔì³ÉÒÔ¸ßʱ¼äÑÓ³ÙΪ´ú¼Û¡£

[2] ´óÁ¿Ð¡Îļþ ¡£

Ô­Òò£ºNameNodeÆô¶¯Ê±£¬½«ÎļþϵͳµÄÔªÊý¾Ý¼ÓÔØµ½Äڴ棬Òò´ËÎļþϵͳËùÄÜ´æ´¢µÄÎļþ×ÜÊýÊÜÏÞÓÚNameNodeÄÚ´æÈÝÁ¿¡££¬ÄÇôÐèÒªµÄÄÚ´æ¿Õ¼ä½«ÊǷdz£´óµÄ¡£

[3] ¶àÓû§Ð´È룬ÈÎÒâÐÞ¸ÄÎļþ¡£

Ô­Òò£ºÏÖÔÚHDFSÎļþÖ»ÓÐÒ»¸öwriter£¬¶øÇÒд²Ù×÷×ÜÊÇдÔÚÎļþµÄĩβ¡£

Á÷ʽÊý¾Ý·ÃÎÊ

Á÷ʽÊý¾Ý·ÃÎÊ£ºÔÚÊý¾Ý¼¯Éú³Éºó£¬³¤Ê±¼äÔÚ´ËÊý¾Ý¼¯ÉϽøÐи÷ÖÖ·ÖÎö¡£Ã¿´Î·ÖÎö¶¼½«Éæ¼°¸ÃÊý¾Ý¼¯µÄ´ó²¿·ÖÊý¾ÝÉõÖÁÈ«²¿Êý¾Ý£¬Òò´Ë¶ÁÈ¡Õû¸öÊý¾Ý¼¯µÄʱ¼äÑӳٱȶÁÈ¡µÚÒ»Ìõ¼Ç¼µÄʱ¼äÑÓ³Ù¸üÖØÒª¡£

ÓëÁ÷Êý¾Ý·ÃÎʶÔÓ¦µÄÊÇËæ»úÊý¾Ý·ÃÎÊ£ºËüÒªÇó¶¨Î»¡¢²éѯ»òÐÞ¸ÄÊý¾ÝµÄÑÓ³Ù½ÏС£¬±È½ÏÊʺÏÓÚ´´½¨Êý¾ÝºóÔÙ¶à´Î¶ÁдµÄÇé¿ö£¬´«Í³¹ØÏµÐÍÊý¾Ý¿âºÜ·ûºÏÕâÒ»µã¡£

HDFSµÄ¼Ü¹¹

HDFS¼Ü¹¹°üº¬Èý¸ö²¿·Ö£ºNameNode£¬DataNode£¬Client¡£

NameNode£ºNameNodeÓÃÓÚ´æ´¢¡¢Éú³ÉÎļþϵͳµÄÔªÊý¾Ý¡£ÔËÐÐÒ»¸öʵÀý¡£

DataNode£ºDataNodeÓÃÓڴ洢ʵ¼ÊµÄÊý¾Ý£¬½«×Ô¼º¹ÜÀíµÄÊý¾Ý¿éÉϱ¨¸øNameNode £¬ÔËÐжà¸öʵÀý¡£

Client£ºÖ§³ÖÒµÎñ·ÃÎÊHDFS£¬´ÓNameNode ,DataNode»ñÈ¡Êý¾Ý·µ»Ø¸øÒµÎñ¡£¶à¸öʵÀý£¬ºÍÒµÎñÒ»ÆðÔËÐС£

HDFSÊý¾ÝµÄдÈëÁ÷³Ì

ÒµÎñÓ¦Óõ÷ÓÃHDFS ClientÌṩµÄAPI£¬ÇëÇóдÈëÎļþ¡£

HDFS ClientÁªÏµNameNode£¬NameNodeÔÚÔªÊý¾ÝÖд´½¨Îļþ½Úµã¡£

ÒµÎñÓ¦Óõ÷ÓÃwrite APIдÈëÎļþ¡£

HDFS ClientÊÕµ½ÒµÎñÊý¾Ýºó£¬´ÓNameNode»ñÈ¡µ½Êý¾Ý¿é±àºÅ¡¢Î»ÖÃÐÅÏ¢ºó£¬ÁªÏµDataNode£¬²¢½«ÐèҪдÈëÊý¾ÝµÄDataNode½¨Á¢ÆðÁ÷Ë®Ïß¡£Íê³Éºó£¬¿Í»§¶ËÔÙͨ¹ý×ÔÓÐЭÒéдÈëÊý¾Ýµ½DataNode1£¬ÔÙÓÉDataNode1¸´ÖƵ½DataNode2, DataNode3¡£

дÍêµÄÊý¾Ý£¬½«·µ»ØÈ·ÈÏÐÅÏ¢¸øHDFS Client¡£

ËùÓÐÊý¾ÝÈ·ÈÏÍê³Éºó£¬ÒµÎñµ÷ÓÃHDFS Client¹Ø±ÕÎļþ¡£

ÒµÎñµ÷ÓÃclose, flushºóHDFSClientÁªÏµNameNode£¬È·ÈÏÊý¾ÝдÍê³É£¬NameNode³Ö¾Ã»¯ÔªÊý¾Ý¡£

HDFSÊý¾ÝµÄ¶ÁÈ¡Á÷³Ì

ÒµÎñÓ¦Óõ÷ÓÃHDFS ClientÌṩµÄAPI´ò¿ªÎļþ¡£

HDFS ClientÁªÏµNameNode£¬»ñÈ¡µ½ÎļþÐÅÏ¢£¨Êý¾Ý¿é¡¢DataNodeλÖÃÐÅÏ¢£©¡£

ÒµÎñÓ¦Óõ÷ÓÃread API¶ÁÈ¡Îļþ¡£

HDFS Client¸ù¾Ý´ÓNameNode»ñÈ¡µ½µÄÐÅÏ¢£¬ÁªÏµDataNode£¬»ñÈ¡ÏàÓ¦µÄÊý¾Ý¿é¡£(Client²ÉÓþͽüÔ­Ôò¶ÁÈ¡Êý¾Ý)¡£

HDFS Client»áÓë¶à¸öDataNodeͨѶ»ñÈ¡Êý¾Ý¿é¡£

Êý¾Ý¶ÁÈ¡Íê³Éºó£¬ÒµÎñµ÷ÓÃclose¹Ø±ÕÁ¬½Ó¡£

HDFSµÄ¹Ø¼üÌØÐÔ

HDFSµÄ¸ß¿É¿¿ÐÔ£¨HA£©

HDFSµÄ¸ß¿É¿¿ÐÔ£¨HA£©Ö÷ÒªÌåÏÖÔÚÀûÓÃzookeeperʵÏÖÖ÷±¸NameNode£¬ÒÔ½â¾öµ¥µãNameNode¹ÊÕÏÎÊÌâ¡£

ZooKeeperÖ÷ÒªÓÃÀ´´æ´¢HAϵÄ״̬Îļþ£¬Ö÷±¸ÐÅÏ¢¡£ZK¸öÊý½¨Òé3¸ö¼°ÒÔÉÏÇÒÎªÆæÊý¸ö¡£

NameNodeÖ÷±¸Ä£Ê½£¬Ö÷Ìṩ·þÎñ£¬±¸Í¬²½Ö÷ÔªÊý¾Ý²¢×÷ΪÖ÷µÄÈȱ¸¡£

ZKFC(ZooKeeper Failover Controller)ÓÃÓÚ¼à¿ØNameNode½ÚµãµÄÖ÷±¸×´Ì¬¡£

JN(JournalNode)ÓÃÓÚ´æ´¢Active NameNodeÉú³ÉµÄEditlog¡£Standby NameNode¼ÓÔØJNÉÏEditlog£¬Í¬²½ÔªÊý¾Ý¡£

ZKFC¿ØÖÆNameNodeÖ÷±¸ÖÙ²Ã

ZKFC×÷Ϊһ¸ö¾«¼òµÄÖٲôúÀí£¬ÆäÀûÓÃzookeeperµÄ·Ö²¼Ê½Ëø¹¦ÄÜ£¬ÊµÏÖÖ÷±¸Öٲã¬ÔÙͨ¹ýÃüÁîͨµÀ£¬¿ØÖÆNameNodeµÄÖ÷±¸×´Ì¬¡£ZKFCÓëNN²¿ÊðÔÚÒ»Æð£¬Á½Õ߸öÊýÏàͬ¡£

ÔªÊý¾Ýͬ²½

Ö÷NameNode¶ÔÍâÌṩ·þÎñ¡£Éú³ÉµÄEditlogͬʱдÈë±¾µØºÍJN£¬Í¬Ê±¸üÐÂÖ÷NameNodeÄÚ´æÖеÄÔªÊý¾Ý¡£

±¸NameNode¼à¿Øµ½JNÉÏEditlog±ä»¯Ê±£¬¼ÓÔØEditlog½øÄڴ棬Éú³ÉеÄÓëÖ÷NameNodeÒ»ÑùµÄÔªÊý¾Ý¡£ÔªÊý¾Ýͬ²½Íê³É¡£

Ö÷±¸µÄFSImageÈÔ±£´æÔÚ¸÷×ԵĴÅÅÌÖУ¬²»·¢Éú½»»¥¡£FSImageÊÇÄÚ´æÖÐÔªÊý¾Ý¶¨Ê±Ð´µ½±¾µØ´ÅÅ̵ĸ±±¾£¬Ò²½ÐÔªÊý¾Ý¾µÏñ¡£

ÔªÊý¾Ý³Ö¾Ã»¯

EditLog:¼Ç¼Óû§µÄ²Ù×÷ÈÕÖ¾£¬ÓÃÒÔÔÚFSImageµÄ»ù´¡ÉÏÉú³ÉеÄÎļþϵͳ¾µÏñ¡£

FSImage:ÓÃÒÔ½×¶ÎÐÔ±£´æÎļþ¾µÏñ¡£

FSImage.ckpt:ÔÚÄÚ´æÖжÔfsimageÎļþºÍEditLogÎļþºÏ²¢£¨merge£©ºó²úÉúеÄfsimage£¬Ð´µ½´ÅÅÌÉÏ£¬Õâ¸ö¹ý³Ì½Ðcheckpoint.¡£±¸ÓÃNameNode¼ÓÔØÍêfsimageºÍEditLogÎļþºó£¬»á½«mergeºóµÄ½á¹ûͬʱдµ½±¾µØ´ÅÅ̺ÍNFS¡£´Ëʱ´ÅÅÌÉÏÓÐÒ»·ÝԭʼµÄfsimageÎļþºÍÒ»·ÝÐÂÉú³ÉµÄcheckpointÎļþ£ºfsimage.ckpt. ¶øºó½«fsimage.ckpt¸ÄÃûΪfsimage£¨¸²¸ÇÔ­ÓеÄfsimage£©¡£

EditLog.new: NameNodeÿ¸ô1Сʱ»òEditlogÂú64MB¾Í´¥·¢ºÏ²¢,ºÏ²¢Ê±,½«Êý¾Ý´«µ½Standby NameNodeʱ,ÒòÊý¾Ý¶Áд²»ÄÜͬ²½½øÐÐ,´ËʱNameNode²úÉúÒ»¸öеÄÈÕÖ¾ÎļþEditlog.newÓÃÀ´´æ·ÅÕâ¶Îʱ¼äµÄ²Ù×÷ÈÕÖ¾¡£Standby NameNodeºÏ²¢³Éfsimageºó»Ø´«¸øÖ÷NameNodeÌæ»»µôÔ­ÓÐfsimage,²¢½«Editlog.new ÃüÃûΪEditlog¡£

HDFSÁª°î£¨Federation£©

²úÉúÔ­Òò£ºµ¥Active NNµÄ¼Ü¹¹Ê¹µÃHDFSÔÚ¼¯ÈºÀ©Õ¹ÐÔºÍÐÔÄÜÉ϶¼ÓÐDZÔÚµÄÎÊÌ⣬µ±¼¯Èº´óµ½Ò»¶¨³Ì¶Èºó£¬NN½ø³ÌʹÓõÄÄÚ´æ¿ÉÄÜ»á´ïµ½ÉϰÙG£¬NN³ÉΪÁËÐÔÄܵį¿¾±¡£

Ó¦Óó¡¾°£º³¬´ó¹æÄ£Îļþ´æ´¢¡£È绥ÁªÍø¹«Ë¾´æ´¢Óû§ÐÐΪÊý¾Ý¡¢µçÐÅÀúÊ·Êý¾Ý¡¢ÓïÒôÊý¾ÝµÈ³¬´ó¹æÄ£Êý¾Ý´æ´¢¡£´ËʱNameNodeµÄÄÚ´æ²»×ãÒÔÖ§³ÅÈç´ËÅÓ´óµÄ¼¯Èº¡£³£ÓõĹÀË㹫ʽΪ1G¶ÔÓ¦1°ÙÍò¸ö¿é£¬°´È±Ê¡¿é´óС¼ÆËãµÄ»°£¬´ó¸ÅÊÇ128T (Õâ¸ö¹ÀËã±ÈÀýÊÇÓбȽϴóµÄ¸»Ô£µÄ£¬Æäʵ£¬¼´Ê¹ÊÇÿ¸öÎļþÖ»ÓÐÒ»¸ö¿é£¬ËùÓÐÔªÊý¾ÝÐÅÏ¢Ò²²»»áÓÐ1KB/block)¡£

Federation¼òµ¥Àí½â£º¸÷NameNode¸ºÔð×Ô¼ºËùÊôµÄĿ¼¡£ÓëLinux¹ÒÔØ´ÅÅ̵½Ä¿Â¼ÀàËÆ£¬´Ëʱÿ¸öNameNodeÖ»¸ºÔðÕû¸öhdfs¼¯ÈºÖв¿·ÖĿ¼¡£ÈçNameNode1¸ºÔð/databaseĿ¼£¬ÄÇôÔÚ/databaseĿ¼ÏµÄÎļþÔªÊý¾Ý¶¼ÓÉNameNode1¸ºÔ𡣸÷NameNode¼äÔªÊý¾Ý²»¹²Ïí£¬Ã¿¸öNameNode¶¼ÓжÔÓ¦µÄstandby¡£

¿é³Ø£¨block pool£©:ÊôÓÚijһÃüÃû¿Õ¼ä(NS)µÄÒ»×éÎļþ¿é¡£Áª°î»·¾³Ï£¬Ã¿¸önamenodeά»¤Ò»¸öÃüÃû¿Õ¼ä¾í£¨namespace volume£©£¬°üÀ¨ÃüÃû¿Õ¼äµÄÔªÊý¾ÝºÍÔڸÿռäϵÄÎļþµÄËùÓÐÊý¾Ý¿éµÄ¿é³Ø¡£

namenodeÖ®¼äÊÇÏ໥¶ÀÁ¢µÄ£¬Á½Á½Ö®¼ä²¢²»»¥ÏàͨÐÅ£¬Ò»¸öʧЧҲ²»»áÓ°ÏìÆäËûnamenode¡£

datanodeÏò¼¯ÈºÖÐËùÓÐnamenode×¢²á£¬Îª¼¯ÈºÖеÄËùÓÐ¿é³Ø´æ´¢Êý¾Ý¡£

NameSpace£¨NS£©£ºÃüÃû¿Õ¼ä¡£ HDFSµÄÃüÃû¿Õ¼ä°üº¬Ä¿Â¼¡¢ÎļþºÍ¿é¡£¿ÉÒÔÀí½âΪNameNodeËùÊôµÄÂß¼­Ä¿Â¼¡£

Êý¾Ý¸±±¾»úÖÆ

¸±±¾¾àÀë¼ÆË㹫ʽ£º

Distance(Rack1/D1, Rack1/D1)=0£¬Í¬Ò»Ì¨·þÎñÆ÷µÄ¾àÀëΪ0¡£

Distance(Rack1/D1, Rack1/D3)=2£¬Í¬Ò»»ú¼Ü²»Í¬µÄ·þÎñÆ÷¾àÀëΪ2¡£

Distance(Rack1/D1, Rack2/D1)=4£¬²»Í¬»ú¼ÜµÄ·þÎñÆ÷¾àÀëΪ4¡£

¸±±¾·ÅÖòßÂÔ£º

µÚÒ»¸ö¸±±¾ÔÚ±¾½Úµã¡£

µÚ¶þ¸ö¸±±¾ÔÚÔ¶¶Ë»ú¼ÜµÄ½Úµã¡£

µÚÈý¸ö¸±±¾¿´Ö®Ç°µÄÁ½¸ö¸±±¾ÊÇ·ñÔÚͬһ»ú¼Ü£¬Èç¹ûÊÇÔòÑ¡ÔñÆäËû»ú¼Ü£¬·ñÔòÑ¡ÔñºÍµÚÒ»¸ö¸±±¾Ïàͬ»ú¼ÜµÄ²»Í¬½Úµã£¬µÚËĸö¼°ÒÔÉÏ£¬Ëæ»úÑ¡Ôñ¸±±¾´æ·ÅλÖá£

Èç¹ûдÇëÇó·½ËùÔÚ»úÆ÷ÊÇÆäÖÐÒ»¸öDataNode,ÔòÖ±½Ó´æ·ÅÔÚ±¾µØ,·ñÔòËæ»úÔÚ¼¯ÈºÖÐÑ¡ÔñÒ»¸öDataNode¡£

Rack1£º±íʾ»ú¼Ü1¡£

D1£º±íʾDataNode½Úµã1¡£

B1£º±íʾ½ÚµãÉϵÄblock¿é1¡£

ÅäÖÃHDFSÊý¾Ý´æ´¢²ßÂÔ

ĬÈÏÇé¿öÏ£¬HDFS NameNode×Ô¶¯Ñ¡ÔñDataNode±£´æÊý¾ÝµÄ¸±±¾¡£ÔÚʵ¼ÊÒµÎñÖУ¬´æÔÚÒÔϳ¡¾°£º

DataNodeÉÏ´æÔڵIJ»Í¬µÄ´æ´¢É豸£¬Êý¾ÝÐèҪѡÔñÒ»¸öºÏÊʵĴ洢É豸·Ö¼¶´æ´¢Êý¾Ý¡£

DataNode²»Í¬Ä¿Â¼ÖеÄÊý¾ÝÖØÒª³Ì¶È²»Í¬£¬Êý¾ÝÐèÒª¸ù¾ÝĿ¼±êǩѡÔñÒ»¸öºÏÊʵÄDataNode½Úµã±£´æ¡£

DataNode¼¯ÈºÊ¹ÓÃÁËÒì¹¹·þÎñÆ÷£¬¹Ø¼üÊý¾ÝÐèÒª±£´æÔÚ¾ßÓи߶ȿɿ¿ÐԵĽڵã×éÖС£

ÅäÖÃHDFSÊý¾Ý´æ´¢²ßÂÔ--·Ö¼¶´æ´¢

ÅäÖÃDataNodeʹÓ÷ּ¶´æ´¢

HDFSµÄ·Ö¼¶´æ´¢¿ò¼ÜÌṩÁËRAM_DISK£¨ÄÚ´æÅÌ£©¡¢DISK£¨»úеӲÅÌ£©¡¢ARCHIVE£¨¸ßÃܶȵͳɱ¾´æ´¢½éÖÊ£©¡¢SSD£¨¹Ì̬ӲÅÌ£©ËÄÖÖ´æ´¢ÀàÐ͵Ĵ洢É豸¡£

ͨ¹ý¶ÔËÄÖÖ´æ´¢ÀàÐͽøÐкÏÀí×éºÏ£¬¼´¿ÉÐγÉÊÊÓÃÓÚ²»Í¬³¡¾°µÄ´æ´¢²ßÂÔ¡£

ÅäÖÃHDFSÊý¾Ý´æ´¢²ßÂÔ--±êÇ©´æ´¢

ÅäÖÃDataNodeʹÓñêÇ©´æ´¢£º

Óû§ÐèҪͨ¹ýÊý¾ÝÌØÕ÷Áé»îÅäÖÃHDFSÎļþÊý¾Ý¿éµÄ´æ´¢½Úµã¡£Í¨¹ýÉèÖÃHDFSÄ¿ ¼/Îļþ¶ÔÓ¦Ò»¸ö±êÇ©±í´ïʽ£¬Í¬Ê±ÉèÖÃÿ¸öDatanode¶ÔÓ¦Ò»¸ö»ò¶à¸ö±êÇ©£¬´Ó¶ø¸øÎļþµÄÊý¾Ý¿é´æ´¢Ö¸¶¨ÁËÌØ¶¨·¶Î§µÄDatanode¡£

µ±Ê¹ÓûùÓÚ±êÇ©µÄÊý¾Ý¿é°Ú·Å²ßÂÔ£¬ÎªÖ¸¶¨µÄÎļþÑ¡ÔñDataNode½Úµã½øÐдæ·Åʱ£¬»á¸ù¾ÝÎļþµÄ±êÇ©±í´ïʽѡÔñ³ö½«Òª´æ·ÅµÄDatanode½Úµã·¶Î§£¬È»ºóÔÚÕâЩDatanode½Úµã·¶Î§ÄÚ£¬Ñ¡Ôñ³öºÏÊʵĴæ·Å½Úµã¡£

Ö§³ÖÓû§½«Êý¾Ý¿éµÄ¸÷¸ö¸±±¾´æ·ÅÔÚÖ¸¶¨¾ßÓв»Í¬±êÇ©µÄ½Úµã£¬Èçij¸öÎļþµÄÊý¾Ý¿éµÄ2¸ö¸±±¾·ÅÖÃÔÚ±êÇ©L1¶ÔÓ¦½ÚµãÖУ¬¸ÃÊý¾Ý¿éµÄÆäËû¸±±¾·ÅÖÃÔÚ±êÇ©L2¶ÔÓ¦µÄ½ÚµãÖС£

Ö§³ÖÑ¡Ôñ½Úµãʧ°ÜÇé¿öϵIJßÂÔ£¬ÈçËæ»ú´ÓÈ«²¿½ÚµãÖÐѡһ¸ö¡£

¼òµ¥µÄ˵£º¸øDataNodeÉèÖñêÇ©£¬±»´æ´¢µÄÊý¾ÝÒ²ÓбêÇ©¡£µ±´æ´¢Êý¾Ýʱ£¬Êý¾Ý¾Í»á´æ´¢µ½±êÇ©ÏàͬµÄDataNodeÖС£

ÅäÖÃHDFSÊý¾Ý´æ´¢²ßÂÔ--½Úµã×é´æ´¢

ÅäÖÃDataNodeʹÓýڵã×é´æ´¢£º

¹Ø¼üÊý¾Ý¸ù¾Ýʵ¼ÊÒµÎñÐèÒª±£´æÔÚ¾ßÓи߶ȿɿ¿ÐԵĽڵãÖУ¬Í¨¹ýÐÞ¸ÄDataNodeµÄ´æ´¢²ßÂÔ£¬ÏµÍ³¿ÉÒÔ½«Êý¾ÝÇ¿ÖÆ±£´æÔÚÖ¸¶¨µÄ½Úµã×éÖС£

ʹÓÃÔ¼Êø£º

µÚÒ»·Ý¸±±¾½«´ÓÇ¿ÖÆ»ú¼Ü×飨»ú¼Ü×é2£©ÖÐÑ¡³ö£¬Èç¹ûÔÚÇ¿ÖÆ»ú¼Ü×éÖÐûÓпÉÓýڵ㣬ÔòдÈëʧ°Ü¡£

µÚ¶þ·Ý¸±±¾½«´Ó±¾µØ¿Í»§¶Ë»úÆ÷»ò»ú¼Ü×éÖеÄËæ»ú½ÚµãÖУ¨µ±¿Í»§¶Ë»úÆ÷»ú¼Ü×é²»ÎªÇ¿ÖÆ»ú¼Ü×éʱ£©Ñ¡³ö¡£

µÚÈý·Ý¸±±¾½«´ÓÆäËû»ú¼Ü×éÖÐÑ¡³ö¡£

¸÷¸±±¾Ó¦´æ·ÅÔÚ²»Í¬µÄ»ú¼Ü×éÖС£Èç¹ûËùÐ踱±¾µÄÊýÁ¿´óÓÚ¿ÉÓõĻú¼Ü×éÊýÁ¿£¬Ôò»á½«¶à³öµÄ¸±±¾´æ·ÅÔÚËæ»ú»ú¼Ü×éÖС£

ÓÉÓÚ¸±±¾ÊýÁ¿µÄÔö¼Ó»òÊý¾Ý¿éÊÜËðµ¼ÖÂÔٴα¸·Ýʱ£¬Èç¹ûÓÐÒ»·ÝÒÔÉϵĸ±±¾È±Ê§»òÎÞ·¨´æ·ÅÖÁÇ¿ÖÆ»ú¼Ü×飬½«²»»á½øÐÐÔٴα¸·Ý¡£ÏµÍ³½«»á¼ÌÐø³¢ÊÔ½øÐÐÖØÐ±¸·Ý£¬Ö±ÖÁÇ¿ÖÆ×éÖÐÓÐÕý³£½Úµã»Ö¸´¿ÉÓÃ״̬¡£

¼òµ¥µÄ˵£º¾ÍÊÇÇ¿ÖÆÄ³Ð©¹Ø¼üÊý¾Ý´æ´¢µ½Ö¸¶¨·þÎñÆ÷ÖС£

Colocationͬ·Ö²¼

ͬ·Ö²¼(Colocation)µÄ¶¨Ò壺½«´æÔÚ¹ØÁª¹ØÏµµÄÊý¾Ý»ò¿ÉÄÜÒª½øÐйØÁª²Ù×÷µÄÊý¾Ý´æ´¢ÔÚÏàͬµÄ´æ´¢½ÚµãÉÏ¡£

°´ÕÕÏÂͼ´æ·Å£¬¼ÙÉèÒª½«ÎļþAºÍÎļþD½øÐйØÁª²Ù×÷£¬´Ëʱ²»¿É±ÜÃâµØÒª½øÐдóÁ¿µÄÊý¾Ý°áǨ£¬Õû¸ö¼¯Èº½«ÓÉÓÚÊý¾Ý´«ÊäÕ¼¾Ý´óÁ¿ÍøÂç´ø¿í£¬ÑÏÖØÓ°Ïì´óÊý¾ÝµÄ´¦ÀíËÙ¶ÈÓëϵͳÐÔÄÜ¡£

HDFSÎļþͬ·Ö²¼µÄÌØÐÔ£¬½«ÄÇЩÐè½øÐйØÁª²Ù×÷µÄÎļþ´æ·ÅÔÚÏàͬÊý¾Ý½ÚµãÉÏ£¬ÔÚ½øÐйØÁª²Ù×÷¼ÆËãʱ±ÜÃâÁ˵½ÆäËûµÄÊý¾Ý½ÚµãÉÏ»ñÈ¡Êý¾Ý£¬´ó´ó½µµÍÍøÂç´ø¿íµÄÕ¼Óá£

ʹÓÃͬ·Ö²¼ÌØÐÔ£¬ÎļþA¡¢D½øÐÐjoinʱ£¬ÓÉÓÚÆä¶ÔÓ¦µÄblock¶¼ÔÚÏàͬ½Úµã£¬Òò´Ë´ó´ó½µµÍ×ÊÔ´ÏûºÄ¡£

HadoopʵÏÖÎļþͬ·Ö²¼£¬¼´´æÔÚÏà¹ØÁªµÄ¶à¸öÎļþµÄËùÓп鶼·Ö²¼ÔÚͬһ´æ´¢½ÚµãÉÏ¡£Îļþ¼¶Í¬·Ö²¼ÊµÏÖÎļþµÄ¿ìËÙ·ÃÎÊ£¬±ÜÃâÁËÒòÊý¾Ý°áǨ´øÀ´µÄ´óÁ¿ÍøÂ翪Ïú¡£

HDFSÊý¾ÝÍêÕûÐÔ±£ÕÏ

HDFSÖ÷ҪĿµÄÊDZ£Ö¤´æ´¢Êý¾ÝÍêÕûÐÔ£¬¶ÔÓÚ¸÷×é¼þµÄʧЧ£¬×öÁ˿ɿ¿ÐÔ´¦Àí¡£

ÖØ½¨Ê§Ð§Êý¾ÝÅ̵ĸ±±¾Êý¾Ý

DataNodeÏòNameNodeÖÜÆÚÉϱ¨Ê§°Üʱ£¬NameNode·¢Æð¸±±¾Öؽ¨¶¯×÷ÒÔ»Ö¸´¶ªÊ§¸±±¾¡£

¼¯ÈºÊý¾Ý¾ùºâ

HDFS¼Ü¹¹Éè¼ÆÁËÊý¾Ý¾ùºâ»úÖÆ£¬´Ë»úÖÆ±£Ö¤Êý¾ÝÔÚ¸÷¸öDataNodeÉÏ·Ö²¼ÊÇÆ½¾ùµÄ¡£

ÔªÊý¾Ý¿É¿¿ÐÔ±£Ö¤

²ÉÓÃÈÕÖ¾»úÖÆ²Ù×÷ÔªÊý¾Ý£¬Í¬Ê±ÔªÊý¾Ý´æ·ÅÔÚÖ÷±¸NameNodeÉÏ¡£

¿ìÕÕ»úÖÆÊµÏÖÁËÎļþϵͳ³£¼ûµÄ¿ìÕÕ»úÖÆ£¬±£Ö¤Êý¾ÝÎó²Ù×÷ʱ£¬Äܼ°Ê±»Ö¸´¡£

°²È«Ä£Ê½

HDFSÌṩ¶ÀÓа²È«Ä£Ê½»úÖÆ£¬ÔÚÊý¾Ý½Úµã¹ÊÕÏ£¬Ó²Å̹ÊÕÏʱ£¬ÄÜ·ÀÖ¹¹ÊÕÏÀ©É¢¡£

ÖØ½¨Ê§Ð§Êý¾ÝÅ̵ĸ±±¾Êý¾Ý

DataNodeÓëNameNodeÖ®¼äͨ¹ýÐÄÌøÖÜÆÚ»ã±¨Êý¾Ý״̬£¬NameNode¹ÜÀíÊý¾Ý¿éÊÇ·ñÉϱ¨ÍêÕû£¬Èç¹ûDataNodeÒòÓ²ÅÌËð»µÎ´Éϱ¨Êý¾Ý¿é£¬

NameNode½«·¢Æð¸±±¾Öؽ¨¶¯×÷ÒÔ»Ö¸´¶ªÊ§µÄ¸±±¾¡£

°²È«Ä£Ê½·ÀÖ¹¹ÊÕÏÀ©É¢

µ±½ÚµãÓ²Å̹ÊÕÏʱ£¬½øÈ밲ȫģʽ£¬HDFSÖ»Ö§³Ö·ÃÎÊÔªÊý¾Ý£¬´ËʱHDFS ÉϵÄÊý¾ÝÊÇÖ»¶ÁµÄ£¬ÆäËûµÄ²Ù×÷Èç´´½¨¡¢É¾³ýÎļþµÈ²Ù×÷¶¼»áµ¼ÖÂʧ°Ü¡£´ýÓ²ÅÌÎÊÌâ½â¾ö¡¢Êý¾Ý»Ö¸´ºó£¬ÔÙÍ˳ö°²È«Ä£Ê½¡£

HDFS¼Ü¹¹ÆäËû¹Ø¼üÉè¼ÆÒªµã˵Ã÷

ͳһµÄÎļþϵͳ£º

HDFS¶ÔÍâ½ö³ÊÏÖÒ»¸öͳһµÄÎļþϵͳ¡£

¿Õ¼ä»ØÊÕ»úÖÆ£º

Ö§³Ö»ØÊÕÕ¾»úÖÆ£¬ÒÔ¼°¸±±¾ÊýµÄ¶¯Ì¬ÉèÖûúÖÆ¡£

Êý¾Ý×éÖ¯£º

Êý¾Ý´æ´¢ÒÔÊý¾Ý¿éΪµ¥Î»£¬´æ´¢ÔÚ²Ù×÷ϵͳµÄHDFSÎļþϵͳÉÏ¡£

·ÃÎÊ·½Ê½£º

ÌṩJAVA API£¬HTTP·½Ê½£¬SHELL·½Ê½·ÃÎÊHDFSÊý¾Ý¡£

´ÅÅÌʹÓÃÂÊ£º

±ÈÈç´ÅÅÌ100G£¬ÓÃÁË30G£¬Ê¹ÓÃÂÊ30%¡£

¸ºÔؾùºâ±ÜÃâÁ˽ڵã¼äÊý¾Ý·Ö²¼²»¾ùÔÈ£¬µ¼ÖÂÈȵã½ÚµãÎÊÌâ¡£

˼¿¼Ìâ

£±HDFSÊÇʲô£¬ÊʺÏÓÚ×öʲô£¿

ÔËÐÐÔÚͨÓÃÓ²¼þÉϵķֲ¼Ê½Îļþϵͳ¡£ÊʺÏÓÚ´óÎļþ´æ´¢Óë·ÃÎÊ¡¢Á÷ʽÊý¾Ý·ÃÎÊ¡£

£²HDFS°üº¬ÄÇЩ½ÇÉ«£¿

NameNode¡¢DataNode¡¢Client¡£

3 Çë¼òÊöHDFSµÄ¶ÁдÁ÷¡£

¶ÁÈ¡£ºClientÁªÏµNameNode£¬»ñÈ¡ÎļþÐÅÏ¢¡£Client¸ù¾Ý´ÓNameNode»ñÈ¡µ½µÄÐÅÏ¢£¬ÁªÏµDataNode£¬»ñÈ¡ÏàÓ¦µÄÊý¾Ý¿é£»Êý¾Ý¶ÁÈ¡Íê³Éºó£¬ÒµÎñµ÷ÓÃclose¹Ø±ÕÁ¬½Ó¡£

дÈ룺ClientÁªÏµNameNode£¬NameNodeÔÚÔªÊý¾ÝÖд´½¨Îļþ½Úµã£»ClientÁªÏµDataNode²¢½¨Á¢Á÷Ë®Ïߣ¬Íê³Éºó£¬¿Í»§¶ËÔÙͨ¹ý×ÔÓÐЭÒéдÈëÊý¾Ýµ½ DataNode1£¬ÔÙÓÉDataNode1¸´ÖƵ½DataNode2,DataNode3£»ÒµÎñµ÷ÓÃclose¹Ø ±ÕÁ¬½Ó£»ClientÁªÏµNameNode£¬È·ÈÏÊý¾ÝдÍê³É¡£

 

 
   
1817 ´Îä¯ÀÀ       31
Ïà¹ØÎÄÕÂ

»ùÓÚ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[±±¾©]
 
×îÐÂÎÄÕÂ
´óÊý¾Ýƽ̨ϵÄÊý¾ÝÖÎÀí
ÈçºÎÉè¼ÆÊµÊ±Êý¾Ýƽ̨£¨¼¼Êõƪ£©
´óÊý¾Ý×ʲú¹ÜÀí×ÜÌå¿ò¼Ü¸ÅÊö
Kafka¼Ü¹¹ºÍÔ­Àí
ELK¶àÖּܹ¹¼°ÓÅÁÓ
×îпγÌ
´óÊý¾Ýƽ̨´î½¨Óë¸ßÐÔÄܼÆËã
´óÊý¾Ýƽ̨¼Ü¹¹ÓëÓ¦ÓÃʵս
´óÊý¾ÝϵͳÔËά
´óÊý¾Ý·ÖÎöÓë¹ÜÀí
Python¼°Êý¾Ý·ÖÎö
³É¹¦°¸Àý
ijͨÐÅÉ豸ÆóÒµ PythonÊý¾Ý·ÖÎöÓëÍÚ¾ò
Ä³ÒøÐÐ È˹¤ÖÇÄÜ+Python+´óÊý¾Ý
±±¾© Python¼°Êý¾Ý·ÖÎö
ÉñÁúÆû³µ ´óÊý¾Ý¼¼Êõƽ̨-Hadoop
ÖйúµçÐÅ ´óÊý¾Ýʱ´úÓëÏÖ´úÆóÒµµÄÊý¾Ý»¯ÔËӪʵ¼ù