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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
HDFSºËÐļ¼ÊõÏê½â
 
  2719  次浏览      27
 2019-9-12
 
±à¼­ÍƼö:
±¾ÎÄÀ´×Ôcsdn,´ÓHDFSµÄ±³¾°¡¢»ù±¾¸ÅÄî ¿ªÊ¼£¬²½²½ÉîÈëÁ˽âHDFSµÄÉè¼ÆÄ¿±ê¡¢HDFSµÄ»ù±¾½á¹¹ÒÔ¼°HDFSµÄÏà¹Ø²Ù×÷µÈºËÐÄ֪ʶ¡£

HDFSºËÐļ¼ÊõÏê½â

ÎÒÃǶ¼ÖªµÀHadoop Ö÷ÒªÓÉHDFSºÍMapReduce Á½¸öºËÐIJ¿·Ö×é³É¡£ÆäÖÐ×îµ×²¿¾ÍÊÇHDFS£¬Ëü±»ÓÃÀ´´æ´¢Hadoop¼¯ÈºÖÐËùÓд洢½ÚµãÉϵÄÎļþ¡£

hadoopµÄºËÐÄ×ÓÏîÄ¿¡ª¡ªHDFS(·Ö²¼Ê½Îļþϵͳ)£¬ÏÂÃæ½«´ÓHDFSµÄ±³¾°¡¢»ù±¾¸ÅÄî ¿ªÊ¼£¬²½²½ÉîÈëÁ˽âHDFSµÄÉè¼ÆÄ¿±ê¡¢HDFSµÄ»ù±¾½á¹¹ÒÔ¼°HDFSµÄÏà¹Ø²Ù×÷µÈºËÐÄ֪ʶ£¡

(Ò»)HDFS µÄ²úÉú±³¾°£¿

Ëæ×ÅÊý¾ÝÁ¿Ô½À´Ô½´ó£¬ÔÚÒ»¸ö²Ù×÷ϵͳ¹ÜϽµÄ·¶Î§ÄÚ´æ²»ÏÂÁË£¬ÄÇô¾Í·ÖÅäµ½¸ü¶àµÄ²Ù ×÷ϵͳ¹ÜÀíµÄ´ÅÅÌÖУ¬µ«ÊDz»·½±ã¹ÜÀíºÍά»¤£¬ÆÈÇÐÐèÒªÒ»ÖÖϵͳÀ´¹ÜÀí¶ą̀»úÆ÷ÉϵÄÎÄ

¼þ£¬Õâ¾ÍÊÇ·Ö²¼Ê½Îļþ¹ÜÀíϵͳ¡£HDFSÖ»ÊÇ·Ö²¼Ê½Îļþ¹ÜÀíϵͳÖеÄÒ»ÖÖ¡£

(¶þ)HDFS µ½µ×ÊÇʲô£¿

HDFS£¨HadoopDistributedFileSystem£©ÊÇHadoopµÄºËÐÄ×ÓÏîÄ¿£¬ÊÇÒ»¸ö¿ÉÒÔÔËÐÐÔÚÆÕͨӲ¼þÉ豸Éϵķֲ¼Ê½Îļþϵͳ£¬ÊÇ·Ö²¼Ê½¼ÆËãÖÐÊý¾Ý´æ´¢ºÍ¹ÜÀíµÄ»ù´¡£¬ÊÇ»ùÓÚÁ÷ Êý¾Ýģʽ·ÃÎʺʹ¦Àí³¬´óÎļþµÄÐèÇó¶ø¿ª·¢µÄ¡£ËüËù¾ßÓеĸßÈÝ´í¡¢¸ß¿É¿¿ÐÔ¡¢¸ß¿ÉÀ©Õ¹ÐÔ¡¢¸ßÍÌÍÂÂʵÈÌØÕ÷Ϊº£Á¿Êý¾ÝÌṩÁ˲»Å¹ÊÕϵĴ洢£¬¸ø³¬´óÊý¾Ý¼¯£¨LargeDataSet£© µÄÓ¦Óô¦Àí´øÀ´Á˺ܶà±ãÀû¡£

(Èý)HDFS ´ÓºÎ¶øÀ´£¿

HDFSÔ´ÓÚ GoogleÔÚ2003Äê10Ô·ݷ¢±íµÄGFS£¨Google File System£©ÂÛÎÄ¡£ ËüÆäʵ¾ÍÊÇ GFSµÄÒ»¸ö¿Ë¡°æ±¾¡£

(ËÄ)HDFSµÄÉè¼ÆÄ¿±ê

1¡¢Ó²¼þ¹ÊÕÏÊdz£Ì¬£¬¶ø²»ÊÇÒì³£

2¡¢ÊʺÏÁ÷ʽÊý¾Ý·ÃÎÊ

3¡¢Êʺϴó¹æÄ£Êý¾Ý¼¯

4¡¢¼òµ¥µÄÒ»ÖÂÐÔÄ£ÐÍ

5¡¢Òƶ¯¼ÆËã±ÈÒÆ¶¯Êý¾Ý¸ü»®Ëã

6¡¢Çá±ãµÄ·ÃÎÊÒì¹¹µÄÈíÓ²¼þƽ̨

(Îå)HDFSµÄ¼Ü¹¹ºÍÊý¾Ý´æ´¢Ô­Àí

HDFSÊÇÒ»¸öÖ÷/´Ó£¨Mater/Slave£©Ìåϵ½á¹¹£¬´Ó×îÖÕÓû§µÄ½Ç¶ÈÀ´¿´£¬Ëü¾ÍÏñ´«Í³µÄ ÎļþϵͳһÑù£¬¿ÉÒÔͨ¹ýĿ¼·¾¶¶ÔÎļþÖ´ÐÐCRUD£¨Create¡¢Read¡¢UpdateºÍDelete£© ²Ù×÷¡£µ«ÓÉÓÚ·Ö²¼Ê½´æ´¢µÄÐÔÖÊ£¬HDFS¼¯ÈºÓµÓÐÒ»¸öNameNodeºÍһЩDataNode¡£

NameNode¹ÜÀíÎļþϵͳµÄÔªÊý¾Ý£¬DataNode´æ´¢Êµ¼ÊµÄÊý¾Ý¡£¿Í»§¶Ëͨ¹ýͬ

NameNodeºÍDataNodesµÄ½»»¥·ÃÎÊÎļþϵͳ¡£¿Í»§¶ËÁªÏµNameNodeÒÔ»ñÈ¡ÎļþµÄÔªÊý ¾Ý£¬¶øÕæÕýµÄÎļþI/O²Ù×÷ÊÇÖ±½ÓºÍDataNode½øÐн»»¥µÄ¡£

HDFSµÄ¼Ü¹¹Í¼

ÕâÖּܹ¹Ö÷ÒªÓÉËĸö²¿·Ö×é³É£¬·Ö±ðΪHDFS Client¡¢NameNode¡¢DataNodeºÍSecondary NameNode¡£ÏÂÃæÎÒÃÇ·Ö±ð½éÉÜÕâËĸö×é³É²¿·Ö¡£

Client£º¾ÍÊǿͻ§¶Ë¡£

1¡¢ÎļþÇз֡£ÎļþÉÏ´« HDFSµÄʱºò£¬Client½«ÎļþÇÐ·Ö³É Ò»¸öÒ»¸öµÄBlock£¬È»ºó½øÐд洢¡£

2¡¢Óë NameNode ½»»¥£¬»ñÈ¡ÎļþµÄλÖÃÐÅÏ¢¡£

3¡¢Óë DataNode ½»»¥£¬¶ÁÈ¡»òÕßдÈëÊý¾Ý¡£

4¡¢Client ÌṩһЩÃüÁîÀ´¹ÜÀí HDFS£¬±ÈÈçÆô¶¯»òÕ߹رÕHDFS¡£

5¡¢Client ¿ÉÒÔͨ¹ýһЩÃüÁîÀ´·ÃÎÊ HDFS¡£

NameNode£º¾ÍÊÇ master£¬ËüÊÇÒ»¸öÖ÷¹Ü¡¢¹ÜÀíÕß¡£

1¡¢¹ÜÀí HDFS µÄÃû³Æ¿Õ¼ä¡£

2¡¢¹ÜÀíÊý¾Ý¿é£¨Block£©Ó³ÉäÐÅÏ¢

3¡¢ÅäÖø±±¾²ßÂÔ

4¡¢´¦Àí¿Í»§¶Ë¶ÁдÇëÇó¡£

DataNode£º¾ÍÊÇSlave¡£NameNode Ï´ïÃüÁDataNode Ö´ÐÐʵ¼ÊµÄ²Ù×÷¡£

1¡¢´æ´¢Êµ¼ÊµÄÊý¾Ý¿é¡£

2¡¢Ö´ÐÐÊý¾Ý¿éµÄ¶Á/д²Ù×÷¡£

Secondary NameNode£º²¢·Ç NameNode µÄÈȱ¸¡£µ±NameNode ¹ÒµôµÄʱºò£¬Ëü²¢²»ÄÜÂíÉÏÌæ»» NameNode ²¢Ìṩ·þÎñ¡£

1¡¢¸¨Öú NameNode£¬·Öµ£Æä¹¤×÷Á¿¡£

2¡¢¶¨ÆÚºÏ²¢ fsimageºÍfsedits£¬²¢ÍÆË͸øNameNode¡£

3¡¢ÔÚ½ô¼±Çé¿öÏ£¬¿É¸¨Öú»Ö¸´ NameNode¡£

(Áù)ΪʲôѡÔñ HDFS ´æ´¢Êý¾Ý£¿

1¡¢Ö®ËùÒÔÑ¡Ôñ HDFS ´æ´¢Êý¾Ý£¬ÊÇÒòΪ HDFS ¾ßÓÐÒÔÏÂÓŵ㣺

(1)¸ßÈÝ´íÐÔ

1)Êý¾Ý×Ô¶¯±£´æ¶à¸ö¸±±¾¡£Ëüͨ¹ýÔö¼Ó¸±±¾µÄÐÎʽ£¬Ìá¸ßÈÝ´íÐÔ¡£

2)ijһ¸ö¸±±¾¶ªÊ§ÒÔºó£¬Ëü¿ÉÒÔ×Ô¶¯»Ö¸´£¬ÕâÊÇÓÉ HDFSÄÚ²¿»úÖÆÊµÏֵģ¬ÎÒÃDz»±Ø¹Ø

ÐÄ¡£

(2)ÊʺÏÅú´¦Àí

1)ËüÊÇͨ¹ýÒÆ¶¯¼ÆËã¶ø²»ÊÇÒÆ¶¯Êý¾Ý¡£

2)Ëü»á°ÑÊý¾ÝλÖñ©Â¶¸ø¼ÆËã¿ò¼Ü¡£

(3)ÊʺϴóÊý¾Ý´¦Àí

1)Êý¾Ý¹æÄ££ºÄܹ»´¦ÀíÊý¾Ý¹æÄ£´ïµ½ GB¡¢TB¡¢ÉõÖÁPB¼¶±ðµÄÊý¾Ý¡£

2)Îļþ¹æÄ££ºÄܹ»´¦Àí°ÙÍò¹æÄ£ÒÔÉϵÄÎļþÊýÁ¿£¬ÊýÁ¿Ï൱֮´ó¡£

3)½Úµã¹æÄ££ºÄܹ»´¦Àí10K½ÚµãµÄ¹æÄ£¡£

(4)Á÷ʽÊý¾Ý·ÃÎÊ

1)Ò»´ÎдÈ룬¶à´Î¶ÁÈ¡£¬²»ÄÜÐ޸ģ¬Ö»ÄÜ×·¼Ó¡£

2)ËüÄܱ£Ö¤Êý¾ÝµÄÒ»ÖÂÐÔ¡£

(5)¿É¹¹½¨ÔÚÁ®¼Û»úÆ÷ÉÏ

1)Ëüͨ¹ý¶à¸±±¾»úÖÆ£¬Ìá¸ß¿É¿¿ÐÔ¡£

2)ËüÌṩÁËÈÝ´íºÍ»Ö¸´»úÖÆ¡£±ÈÈçijһ¸ö¸±±¾¶ªÊ§£¬¿ÉÒÔͨ¹ýÆäËü¸±±¾À´»Ö¸´¡£

2¡¢µ±È» HDFS Ò²ÓÐËüµÄÁÓÊÆ£¬²¢²»ÊʺÏËùÓеij¡ºÏ£º

(1)²»ÊʺϵÍÑÓʱÊý¾Ý·ÃÎÊ

1)±ÈÈçºÁÃë¼¶µÄÀ´´æ´¢Êý¾Ý£¬ÕâÊDz»Ðеģ¬Ëü×ö²»µ½¡£

2)ËüÊʺϸßÍÌÍÂÂʵij¡¾°£¬¾ÍÊÇÔÚijһʱ¼äÄÚдÈë´óÁ¿µÄÊý¾Ý¡£µ«ÊÇËüÔÚµÍÑÓʱµÄÇé¿ö ÏÂÊDz»Ðе쬱ÈÈçºÁÃë¼¶ÒÔÄÚ¶ÁÈ¡Êý¾Ý£¬ÕâÑùËüÊǺÜÄÑ×öµ½µÄ¡£

¸Ä½ø²ßÂÔ

(2)ÎÞ·¨¸ßЧµÄ¶Ô´óÁ¿Ð¡Îļþ½øÐд洢

1)´æ´¢´óÁ¿Ð¡ÎļþµÄ»°£¬Ëü»áÕ¼Óà NameNode´óÁ¿µÄÄÚ´æÀ´´æ´¢Îļþ¡¢Ä¿Â¼ºÍ¿éÐÅÏ¢¡£ÕâÑùÊDz»¿ÉÈ¡µÄ£¬ÒòΪNameNodeµÄÄÚ´æ×ÜÊÇÓÐÏ޵ġ£

2)СÎļþ´æ´¢µÄѰµÀʱ¼ä»á³¬¹ý¶Áȡʱ¼ä£¬ËüÎ¥·´ÁËHDFSµÄÉè¼ÆÄ¿±ê¡£ ¸Ä½ø²ßÂÔ

(3)²¢·¢Ð´Èë¡¢ÎļþËæ»úÐÞ¸Ä

1)Ò»¸öÎļþÖ»ÄÜÓÐÒ»¸öд£¬²»ÔÊÐí¶à¸öÏß³Ìͬʱд¡£

2)½öÖ§³ÖÊý¾Ý append£¨×·¼Ó£©£¬²»Ö§³ÖÎļþµÄËæ»úÐ޸ġ£

(Æß)HDFS ÈçºÎ¶ÁÈ¡Îļþ£¿

HDFSµÄÎļþ¶ÁȡԭÀí£¬Ö÷Òª°üÀ¨ÒÔϼ¸¸ö²½Ö裺

1¡¢Ê×Ïȵ÷ÓÃFileSystem¶ÔÏóµÄopen·½·¨£¬Æäʵ»ñÈ¡µÄÊÇÒ»¸öDistributedFileSystemµÄ ʵÀý¡£

2¡¢DistributedFileSystemͨ¹ýRPC(Ô¶³Ì¹ý³Ìµ÷ÓÃ)»ñµÃÎļþµÄµÚÒ»ÅúblockµÄ

locations£¬Í¬Ò»block°´ÕÕÖØ¸´Êý»á·µ»Ø¶à¸ölocations£¬ÕâЩlocations°´ÕÕhadoopÍØ ÆË½á¹¹ÅÅÐò£¬¾àÀë¿Í»§¶Ë½üµÄÅÅÔÚÇ°Ãæ¡£

3¡¢Ç°Á½²½»á·µ»ØÒ»¸öFSDataInputStream¶ÔÏ󣬸öÔÏó»á±»·â×°³É DFSInputStream ¶ÔÏó£¬DFSInputStream¿ÉÒÔ·½±ãµÄ¹ÜÀídatanodeºÍnamenodeÊý¾ÝÁ÷¡£¿Í»§¶Ëµ÷ÓÃ

read·½ ·¨£¬DFSInputStream¾Í»áÕÒ³öÀë¿Í»§¶Ë×î½üµÄdatanode²¢Á¬½Ódatanode¡£

4¡¢Êý¾Ý´ÓdatanodeÔ´Ô´²»¶ÏµÄÁ÷Ïò¿Í»§¶Ë¡£

5¡¢Èç¹ûµÚÒ»¸öblock¿éµÄÊý¾Ý¶ÁÍêÁË£¬¾Í»á¹Ø±ÕÖ¸ÏòµÚÒ»¸öblock¿éµÄdatanodeÁ¬½Ó£¬ ½Ó×ŶÁÈ¡ÏÂÒ»¸öblock¿é¡£ÕâЩ²Ù×÷¶Ô¿Í»§¶ËÀ´ËµÊÇ͸Ã÷µÄ£¬´Ó¿Í»§¶ËµÄ½Ç¶ÈÀ´¿´Ö»ÊÇ ¶ÁÒ»¸ö³ÖÐø²»¶ÏµÄÁ÷¡£

6¡¢Èç¹ûµÚÒ»Åúblock¶¼¶ÁÍêÁË£¬DFSInputStream¾Í»áÈ¥namenodeÄÃÏÂÒ»ÅúblocksµÄ

location£¬È»ºó¼ÌÐø¶Á£¬Èç¹ûËùÓеÄblock¿é¶¼¶ÁÍ꣬Õâʱ¾Í»á¹Ø±ÕµôËùÓеÄÁ÷¡£

(°Ë)HDFS ÈçºÎдÈëÎļþ£¿

HDFSµÄÎļþдÈëÔ­Àí£¬Ö÷Òª°üÀ¨ÒÔϼ¸¸ö²½Ö裺

1.¿Í»§¶Ëͨ¹ýµ÷Óà DistributedFileSystem µÄcreate·½·¨£¬´´½¨Ò»¸öеÄÎļþ¡£

2.DistributedFileSystemͨ¹ý RPC£¨Ô¶³Ì¹ý³Ìµ÷Ó㩵÷Óà NameNode£¬È¥´´½¨Ò»¸öûÓÐblocks¹ØÁªµÄÐÂÎļþ¡£´´½¨Ç°£¬NameNode »á×ö¸÷ÖÖУÑ飬±ÈÈçÎļþÊÇ·ñ´æÔÚ£¬ ¿Í»§¶ËÓÐÎÞȨÏÞÈ¥´´½¨µÈ¡£Èç¹ûУÑéͨ¹ý£¬NameNode ¾Í»á¼Ç¼ÏÂÐÂÎļþ£¬·ñÔò¾Í»áÅ׳öIOÒì³£¡£

3.ǰÁ½²½½áÊøºó»á·µ»Ø FSDataOutputStream µÄ¶ÔÏ󣬺ͶÁÎļþµÄʱºòÏàËÆ£¬

FSDataOutputStream ±»·â×°³É DFSOutputStream£¬DFSOutputStream ¿ÉÒÔЭµ÷

NameNodeºÍ DataNode¡£¿Í»§¶Ë¿ªÊ¼Ð´Êý¾Ýµ½

DFSOutputStream,DFSOutputStream»á°ÑÊý¾ÝÇгÉÒ»¸ö¸öСpacket£¬È»ºóÅųɶÓÁÐdata queue¡£

4.DataStreamer»áÈ¥´¦Àí½ÓÊÜ data queue£¬ËüÏÈÎÊѯ NameNodeÕâ¸öÐ嵀 block ×îÊʺϴ洢µÄÔÚÄöDataNodeÀ±ÈÈçÖØ¸´ÊýÊÇ3£¬ÄÇô¾ÍÕÒµ½3¸ö×îÊʺϵÄ

DataNode£¬°ÑËüÃÇÅųÉÒ»¸ö pipeline¡£DataStreamer°Ñ packet°´¶ÓÁÐÊä³öµ½¹ÜµÀµÄµÚÒ»¸ö DataNodeÖУ¬µÚÒ»¸ö DataNodeÓÖ°Ñ packetÊä³öµ½µÚ¶þ¸ö DataNode ÖУ¬ÒÔ´ËÀàÍÆ¡£

5.DFSOutputStream »¹ÓÐÒ»¸ö¶ÓÁнРack queue£¬Ò²ÊÇÓÉ packet ×é³É£¬µÈ´ý

DataNodeµÄÊÕµ½ÏìÓ¦£¬µ±pipelineÖеÄËùÓÐDataNode¶¼±íʾÒѾ­ÊÕµ½µÄʱºò£¬Õâʱakc queue²Å»á°Ñ¶ÔÓ¦µÄpacket°üÒÆ³ýµô¡£

6.¿Í»§¶ËÍê³ÉдÊý¾Ýºó£¬µ÷ÓÃclose·½·¨¹Ø±ÕдÈëÁ÷¡£

7.DataStreamer °ÑÊ£ÓàµÄ°ü¶¼Ë¢µ½ pipeline ÀȻºóµÈ´ý ack ÐÅÏ¢£¬ÊÕµ½×îºóÒ»¸ö

ack ºó£¬Í¨Öª DataNode °ÑÎļþ±êʾΪÒÑÍê³É¡£

(¾Å)HDFS ¸±±¾´æ·Å²ßÂÔ

namenode ÈçºÎÑ¡ÔñÔÚÄĸö datanode ´æ´¢¸±±¾£¨replication£©£¿ÕâÀïÐèÒª¶Ô¿É¿¿

ÐÔ¡¢Ð´Èë´ø¿íºÍ¶ÁÈ¡´ø¿í½øÐÐȨºâ¡£ Hadoop¶Ô datanode´æ´¢¸±±¾ÓÐ×Ô¼ºµÄ¸±±¾²ßÂÔ£¬ÔÚÆä·¢Õ¹¹ý³ÌÖÐÒ»¹²ÓÐÁ½¸ö°æ±¾µÄ¸±±¾²ßÂÔ£¬·Ö±ðÈçÏÂËùʾ¡£

Hadoop 0.17֮ǰµÄ¸±±¾²ßÂÔ

µÚÒ»¸ö¸±±¾£º´æ´¢ÔÚͬ»ú¼ÜµÄ²»Í¬½ÚµãÉÏ¡£

µÚ¶þ¸ö¸±±¾£º´æ´¢ÔÚͬ»ú¼ÜµÄÁíÍâÒ»¸ö½ÚµãÉÏ¡£µÚÈý¸ö¸±±¾£º´æ´¢ÔÚ²»Í¬»ú¼ÜµÄÁíÍâÒ»¸ö½Úµã¡£ÆäËü¸±±¾£ºÑ¡ÔñËæ»ú´æ´¢¡£

Hadoop 0.17 Ö®ºóµÄ¸±±¾²ßÂÔ

µÚÒ»¸ö¸±±¾£º´æ´¢ÔÚͬ Client Ïàͬ½ÚµãÉÏ¡£µÚ¶þ¸ö¸±±¾£º´æ´¢ÔÚ²»Í¬»ú¼ÜµÄ½ÚµãÉÏ¡£

µÚÈý¸ö¸±±¾£º´æ´¢ÔÚµÚ¶þ¸ö¸±±¾»ú¼ÜÖеÄÁíÍâÒ»¸ö½ÚµãÉÏ¡£ÆäËü¸±±¾£ºÑ¡ÔñËæ»ú´æ´¢¡£

(Ê®)HDFSµÄÐÂÌØÐÔHA

(Ò»)HDFSµÄHA»úÖÆ

Hadoop2.2.0 °æ±¾Ö®Ç°£¬NameNodeÊÇHDFS¼¯ÈºµÄµ¥µã¹ÊÕϵ㣬ÿһ¸ö¼¯ÈºÖ»ÓÐÒ»¸öNameNode£¬Èç¹ûÕâ¸ö»úÆ÷»òÕß½ø³Ì²»¿ÉÓã¬Õû¸ö¼¯Èº¾ÍÎÞ·¨Ê¹Óã¬Ö±µ½ÖØÆô

NameNode»òÕßÐÂÖØÆôÒ»¸öNameNode½Úµã ¡£Ó°ÏìHDFS¼¯Èº²»¿ÉÓÃÖ÷Òª°üÀ¨ÒÔÏÂÁ½ÖÖÇé¿ö¡£

(1)ÀàËÆ»úÆ÷µøå´ÕâÑùµÄÒâÍâÇé¿ö½«µ¼Ö¼¯Èº²»¿ÉÓã¬Ö»ÓÐÖØÆôNameNodeÖ®ºó²Å¿ÉʹÓá£

(2)¼Æ»®ÄÚµÄÈí¼þ»òÓ²¼þÉý¼¶£¨NameNode½Úµã£©½«µ¼Ö¼¯ÈºÔÚ¶Ìʱ¼ä·¶Î§ÄÚ²»¿ÉÓá£

HDFSµÄ¸ß¿ÉÓÃÐÔ£¨HA,HighAvailability£©¾Í¿ÉÒÔ½â¾öÉÏÊöÎÊÌ⣬ͨ¹ýÌṩѡÔñÔËÐÐÔÚͬһ¼¯ÈºÖеÄÒ»¸öÈȱ¸ÓÃµÄ "Ö÷/±¸"Á½¸öÈßÓàNameNode£¬ÔÊÐíÔÚ»úÆ÷å´»ú»òϵͳά»¤µÄʱºò£¬ ¿ìËÙ×ªÒÆµ½ÁíÒ»¸öNameNode¡£

(¶þ)µäÐ͵ÄHA¼¯Èº

Ò»¸öµäÐ͵ÄHA¼¯Èº£¬Á½¸öµ¥¶ÀµÄ»úÆ÷ÅäÖÃΪNameNodes£¬ÔÚÈκÎʱºò£¬Ò»¸öNameNode ´¦Óڻ״̬£¬ÁíÒ»¸ö´¦ÓÚ´ý»ú״̬£¬»î¶¯µÄNameNode¸ºÔð´¦Àí¼¯ÈºÖÐËùÓпͻ§¶ËµÄ²Ù ×÷£¬´ý»úʱ½ö½ö×÷Ϊһ¸öslave£¬±£³Ö×ã¹»µÄ״̬£¬Èç¹ûÓбØÒªÌṩһ¸ö¿ìËٵĹÊÕÏ×ªÒÆ¡£

ΪÁ˱£³Ö±¸ÓýڵãÓë»î¶¯½Úµã״̬µÄͬ²½£¬Ä¿Ç°µÄʵÏÖÐèÒªÁ½¸ö½Úµãͬʱ·ÃÎÊÒ»¸ö¹²Ïí´æ´¢ É豸£¨ÀýÈç´ÓNASNFS¹ÒÔØ£©µ½Ò»¸öĿ¼¡£½«ÓпÉÄÜÔÚδÀ´µÄ°æ±¾Öзſí´ËÏÞÖÆ¡£

µ±»î¶¯½Úµã¶ÔÃüÃû¿Õ¼ä½øÐÐÈκÎÐ޸ģ¬Ëü½«°ÑÐ޸ļÇ¼дµ½¹²ÏíĿ¼ÏµÄÒ»¸öÈÕÖ¾Îļþ£¬±¸ Óýڵã»á¼àÌýÕâ¸öĿ¼£¬µ±·¢ÏÖ¸ü¸Äʱ£¬Ëü»á°ÑÐÞ¸ÄÄÚÈÝͬ²½µ½×Ô¼ºµÄÃüÃû¿Õ¼ä¡£±¸Óýڵã ÔÚ¹ÊÕÏ×ªÒÆÊ±£¬Ëü½«±£Ö¤ÒѾ­¶ÁÈ¡ÁËËùÓй²ÏíĿ¼Äڵĸü¸Ä¼Ç¼£¬±£Ö¤ÔÚ·¢Éú¹ÊÕÏǰµÄ״̬ Óë»î¶¯½Úµã±£³ÖÍêȫһÖ¡£

ΪÁËÌṩ¿ìËٵĹÊÕÏ×ªÒÆ£¬±ØÐë±£Ö¤±¸ÓýڵãÓÐ×îеļ¯ÈºÖпéµÄλÖÃÐÅÏ¢£¬ÎªÁË´ïµ½ÕâÒ» µã£¬Datanode½ÚµãÐèÒªÅäÖÃÁ½¸önameNodeµÄλÖã¬Í¬Ê±·¢ËÍ¿éµÄλÖÃÐÅÏ¢ºÍÐÄÌøÐÅÏ¢µ½ Á½¸önameNode¡£

ÈκÎʱºòÖ»ÓÐÒ»¸önamenode´¦Óڻ״̬£¬¶ÔÓÚHA¼¯ÈºµÄ²Ù×÷ÊÇÖÁ¹ØÖØÒªµÄ£¬·ñÔòÁ½¸ö½Ú µãÖ®¼äµÄ״̬¾Í»á²úÉú³åÍ»£¬Êý¾Ý¶ªÊ§»òÆäËü²»ÕýÈ·µÄ½á¹û£¬ÎªÁË´ïµ½Õâ¸öÄ¿µÄ»òÕßËùν

µÄ¡°ÁÑÄÔ³¡¾°¡±³öÏÖ£¬¹ÜÀíÔ±±ØÐëΪ¹²Ïí´æ´¢ÅäÖÃÖÁÉÙÒ»¸ö£¨fencing£©·½·¨¡£ÔÚå´»úÆÚ¼ä£¬ Èç¹û²»ÄÜÈ·¶¨Ö®¼äµÄ»î¶¯½ÚµãÒѾ­·ÅÆú»î¶¯×´Ì¬£¬fencing½ø³Ì¸ºÔðÖжÏÒÔǰµÄ»î¶¯½Úµã±à¼­ ´æ´¢µÄ¹²Ïí·ÃÎÊ¡£Õâ¿ÉÒÔ·ÀÖ¹ÈκνøÒ»²½µÄÐÞ¸ÄÃüÃû¿Õ¼ä£¬ÔÊÐíеĻ½Úµã°²È«µØ½øÐÐ¹Ê ÕÏ×ªÒÆ¡£

(Èý)HA¼Ü¹¹

HA¼Ü¹¹½âÊÍÈçÏ£º

1¡¢Ö»ÓÐÒ»¸öNameNodeÊÇActiveµÄ£¬²¢ÇÒÖ»ÓÐÕâ¸öActiveNameNodeÄÜÌṩ·þÎñ£¬¸Ä±ä

NameNode¡£ÒÔºó¿ÉÒÔ¿¼ÂÇÈÃStandbyNameNodeÌṩ¶Á·þÎñ¡£

2¡¢ÌṩÊÖ¶¯Failover£¬ÔÚÉý¼¶¹ý³ÌÖУ¬FailoverÔÚNameNode-DataNodeÖ®¼äд²»±äµÄÇé ¿öϲÅÄÜÉúЧ¡£

3¡¢ÔÚ֮ǰµÄNameNodeÖØÐ»ָ´Ö®ºó£¬²»ÄÜÌṩfailback¡£

4¡¢Êý¾ÝÒ»ÖÂÐÔ±ÈFailover¸üÖØÒª¡£

5¡¢¾¡Á¿ÉÙÓÃÌØÊâµÄÓ²¼þ¡£

6¡¢HAµÄÉèÖúÍFailover¶¼Ó¦¸Ã±£Ö¤ÔÚÁ½Õß²Ù×÷´íÎó»òÕßÅäÖôíÎóµÄʱºò£¬²»µÃµ¼ÖÂÊý¾ÝËð »µ¡£

7¡¢NameNodeµÄ¶ÌÆÚÀ¬»ø»ØÊÕ²»Ó¦¸Ã´¥·¢Failover¡£

8¡¢DataNode»áͬʱÏòNameNodeActiveºÍNameNodeStandby»ã±¨¿éµÄÐÅÏ¢¡£

NameNodeActiveºÍNameNodeStandbyͨ¹ýNFS±¸·ÝMetaDataÐÅÏ¢µ½Ò»¸ö´ÅÅÌÉÏÃæ¡£

(ËÄ)Ϊʲô»áÓÐHA»úÖÆ

1¡¢µ¥µã¹ÊÕÏ

ÔÚHadoop 2.0֮ǰ£¬Ò²ÓÐÈô¸É¼¼ÊõÊÔͼ½â¾öµ¥µã¹ÊÕϵÄÎÊÌ⣬ÎÒÃÇÔÚÕâÀï×ö¸ö¼ò¶ÌµÄ

×ܽá

A¡¢Secondary NameNode¡£Ëü²»ÊÇHA£¬ËüÖ»Êǽ׶ÎÐԵĺϲ¢editsºÍfsimage£¬ÒÔËõ¶Ì¼¯ÈºÆô¶¯µÄʱ¼ä¡£µ±NameNode(ÒÔϼò³ÆNN)ʧЧµÄʱºò£¬Secondary NN²¢ÎÞ·¨Á¢¿ÌÌṩ·þÎñ£¬Secondary NNÉõÖÁÎÞ·¨±£Ö¤Êý¾ÝÍêÕûÐÔ£ºÈç¹ûNNÊý¾Ý¶ªÊ§µÄ»°£¬ÔÚÉÏÒ»´ÎºÏ²¢ºóµÄÎļþϵͳµÄ¸Ä¶¯»á¶ªÊ§¡£

B¡¢Backup NameNode (HADOOP-4539)¡£ËüÔÚÄÚ´æÖи´ÖÆÁËNNµÄµ±Ç°×´Ì¬£¬ËãÊÇWarm

Standby£¬¿ÉÒ²¾Í½öÏÞÓÚ´Ë£¬²¢Ã»ÓÐfailoverµÈ¡£ËüͬÑùÊǽ׶ÎÐÔµÄ×öcheckpoint£¬Ò²ÎÞ·¨±£ Ö¤Êý¾ÝÍêÕûÐÔ¡£

C¡¢ÊÖ¶¯°Ñname.dirÖ¸ÏòNFS¡£ÕâÊǰ²È«µÄCold Standby£¬¿ÉÒÔ±£Ö¤ÔªÊý¾Ý²»¶ªÊ§£¬µ«¼¯ÈºµÄ»Ö¸´ÔòÍêÈ«¿¿ÊÖ¶¯¡£

D¡¢Facebook AvatarNode¡£FacebookÓÐÇ¿´óµÄÔËά×öºó¶Ü£¬ËùÒÔAvatarnodeÖ»ÊÇHot

Standby£¬²¢Ã»ÓÐ×Ô¶¯Çл»£¬µ±Ö÷NNʧЧµÄʱºò£¬ÐèÒª¹ÜÀíԱȷÈÏ£¬È»ºóÊÖ¶¯°Ñ¶ÔÍâÌṩ·þ ÎñµÄÐéÄâIPÓ³Éäµ½StandbyNN£¬ÕâÑù×öµÄºÃ´¦ÊÇÈ·±£²»»á·¢ÉúÄÔÁѵij¡¾°¡£ÆäijЩÉè¼ÆË¼ÏëºÍHadoop2.0ÀïµÄHA·Ç³£ÏàËÆ£¬´Óʱ¼äÉÏÀ´¿´£¬Hadoop2.0Ó¦¸ÃÊÇ½è¼øÁËFacebookµÄ×ö·¨¡£

E¡¢»¹ÓÐÈô¸É½â¾ö·½°¸£¬»ù±¾¶¼ÊÇÒÀÀµÍⲿµÄHA»úÖÆ£¬Æ©ÈçDRBD£¬Linux HA£¬VMwareµÄ

FTµÈµÈ¡£

2¡¢¼¯ÈºÈÝÁ¿ºÍ¼¯ÈºÐÔÄÜ

µ¥NNµÄ¼Ü¹¹Ê¹µÃHDFSÔÚ¼¯ÈºÀ©Õ¹ÐÔºÍÐÔÄÜÉ϶¼ÓÐDZÔÚµÄÎÊÌ⣬µ±¼¯Èº´óµ½Ò»¶¨³Ì¶È ºó£¬NN½ø³ÌʹÓõÄÄÚ´æ¿ÉÄÜ»á´ïµ½ÉϰÙG£¬³£ÓõĹÀË㹫ʽΪ1G¶ÔÓ¦1°ÙÍò¸ö¿é£¬°´È±Ê¡¿é ´óС¼ÆËãµÄ»°£¬´ó¸ÅÊÇ64T(Õâ¸ö¹ÀËã±ÈÀýÊÇÓбȽϴóµÄ¸»Ô£µÄ£¬Æäʵ£¬¼´Ê¹ÊÇÿ¸öÎļþÖ»ÓÐÒ»¸ö¿é£¬ËùÓÐÔªÊý¾ÝÐÅÏ¢Ò²²»»áÓÐ1KB/block)¡£Í¬Ê±£¬ËùÓеÄÔªÊý¾ÝÐÅÏ¢µÄ¶ÁÈ¡ºÍ²Ù×÷¶¼Ðè ÒªÓëNN½øÐÐͨÐÅ£¬Æ©Èç¿Í»§¶ËµÄaddBlock¡¢getBlockLocations£¬»¹ÓÐDataNodeµÄ

blockRecieved¡¢sendHeartbeat¡¢blockReport£¬ÔÚ¼¯Èº¹æÄ£±ä´óºó£¬NN³ÉΪÁËÐÔÄܵį¿ ¾±¡£Hadoop2.0ÀïµÄHDFSFederation¾ÍÊÇΪÁ˽â¾öÕâÁ½¸öÎÊÌâ¶ø¿ª·¢µÄ¡£

(ʮһ)HDFSµÄÐÂÌØÐÔFederation

(Ò»)µ¥¸öNamenodeµÄHDFS¼Ü¹¹µÄ¾ÖÏÞÐÔ

1.Namespace£¨ÃüÃû¿Õ¼ä£©µÄÏÞÖÆ

ÓÉÓÚNamenodeÔÚÄÚ´æÖд洢ËùÓеÄÔªÊý¾Ý£¨metadata£©£¬Òò´Ëµ¥¸öNamenodeËùÄÜ´æ´¢ µÄ¶ÔÏó£¨Îļþ+¿é£©ÊýÄ¿Êܵ½NamenodeËùÔÚJVMµÄheapsizeµÄÏÞÖÆ¡£50GµÄheapÄܹ»´æ´¢20ÒÚ£¨200million£©¸ö¶ÔÏó£¬Õâ20ÒÚ¸ö¶ÔÏóÖ§³Ö4000¸ödatanode£¬12PBµÄ´æ´¢£¨¼ÙÉèÎļþƽ¾ù´óСΪ40MB£©¡£ Ëæ×ÅÊý¾ÝµÄ·ÉËÙÔö³¤£¬´æ´¢µÄÐèÇóÒ²ËæÖ®Ôö³¤¡£µ¥¸ödatanode´Ó

4TÔö³¤µ½36T£¬¼¯ÈºµÄ³ß´çÔö³¤µ½8000¸ödatanode¡£´æ´¢µÄÐèÇó´Ó12PBÔö³¤µ½´óÓÚ

100PB¡£

2.ÐÔÄܵį¿¾±

ÓÉÓÚÊǵ¥¸öNamenodeµÄHDFS¼Ü¹¹£¬Òò´ËÕû¸öHDFSÎļþϵͳµÄÍÌÍÂÁ¿ÊÜÏÞÓÚµ¥¸ö

NamenodeµÄÍÌÍÂÁ¿¡£ºÁÎÞÒÉÎÊ£¬Õ⽫³ÉΪÏÂÒ»´úMapReduceµÄÆ¿¾±¡£

3.¸ôÀëÎÊÌâ

ÓÉÓÚHDFS½öÓÐÒ»¸öNamenode£¬ÎÞ·¨¸ôÀë¸÷¸ö³ÌÐò£¬Òò´ËHDFSÉϵÄÒ»¸öʵÑé³ÌÐò¾ÍºÜÓÐ¿É ÄÜÓ°ÏìÕû¸öHDFSÉÏÔËÐеijÌÐò¡£ÄÇôÔÚHDFSFederationÖУ¬¿ÉÒÔÓò»Í¬µÄNamespaceÀ´ ¸ôÀ벻ͬµÄÓû§Ó¦ÓóÌÐò£¬Ê¹µÃ²»Í¬NamespaceVolumeÖеijÌÐòÏ໥²»Ó°Ïì¡£

4.¼¯ÈºµÄ¿ÉÓÃÐÔ

ÔÚÖ»ÓÐÒ»¸öNamenodeµÄHDFSÖУ¬´ËNamenodeµÄå´»úÎÞÒɻᵼÖÂÕû¸ö¼¯Èº²»¿ÉÓá£

5.NamespaceºÍBlockManagementµÄ½ôÃÜñîºÏ

µ±Ç°ÔÚNamenodeÖеÄNamespaceºÍBlock Management×éºÏµÄ½ôÃÜñîºÏ¹ØÏµ»áµ¼ÖÂÈç¹ûÏëҪʵÏÖÁíÍâÒ»Ì×Namenode·½°¸±È½ÏÀ§ÄÑ£¬¶øÇÒÒ²ÏÞÖÆÁËÆäËûÏëÒªÖ±½ÓʹÓÃ¿é´æ´¢µÄÓ¦Óá£

6.Ϊʲô×ÝÏòÀ©Õ¹Ä¿Ç°µÄNamenode²»¿ÉÐУ¿±ÈÈ罫NamenodeµÄHeap¿Õ¼äÀ©´óµ½

512GB¡£

ÕâÑù×ÝÏòÀ©Õ¹´øÀ´µÄµÚÒ»¸öÎÊÌâ¾ÍÊÇÆô¶¯ÎÊÌ⣬Æô¶¯»¨·ÑµÄʱ¼äÌ«³¤¡£µ±Ç°¾ßÓÐ50GB Heap

NamenodeµÄHDFSÆô¶¯Ò»´Î´ó¸ÅÐèÒª30·ÖÖÓµ½2Сʱ£¬ÄÇ512GBµÄÐèÒª¶à¾Ã£¿ µÚ¶þ¸öDZÔÚµÄÎÊÌâ¾ÍÊÇNamenodeÔÚFullGCʱ£¬Èç¹û·¢Éú´íÎ󽫻ᵼÖÂÕû¸ö¼¯Èºå´»ú¡£ µÚÈý¸öÎÊÌâÊǶԴóJVM Heap½øÐе÷ÊԱȽÏÀ§ÄÑ¡£ÓÅ»¯NamenodeµÄÄÚ´æÊ¹ÓÃÐԼ۱ȱȽϵ͡£

(¶þ) ΪʲôҪÒýÈëFederation

ÒýÈëFederationµÄ×îÖ÷ÒªÔ­ÒòÊǼòµ¥£¬Æä¼òµ¥ÐÔÊÇÓëÕæÕýµÄ·Ö²¼Ê½NamenodeÏà±È¶øÑԵġ£

FederationÄܹ»¿ìËٵĽâ¾öÁ˴󲿷ֵ¥Namenode HDFSµÄÎÊÌâ¡£

FederationÊǼòµ¥Â³°ôµÄÉè¼Æ£¬ÓÉÓÚÁªÃËÖи÷¸öNamenodeÖ®¼äÊÇÏ໥¶ÀÁ¢µÄ¡£Federation Õû¸öºËÐÄÉè¼ÆÊµÏÖ´ó¸ÅÓÃÁË3.5¸öÔ¡£´ó²¿·Ö¸Ä±äÊÇÔÚDatanode¡¢ConfigºÍTools£¬¶ø

Namenode±¾ÉíµÄ¸Ä¶¯·Ç³£ÉÙ£¬ÕâÑùNamenodeÔ­Ïȵij°ôÐÔ²»»áÊܵ½Ó°Ïì¡£±È·Ö²¼Ê½µÄ

Namenode¼òµ¥£¬ËäÈ»ÕâÖÖʵÏÖµÄÀ©Õ¹ÐÔ±ÈÆðÕæÕýµÄ·Ö²¼Ê½µÄNamenodeҪСЩ£¬µ«ÊÇ¿ÉÒÔ Ñ¸ËÙÂú×ãÐèÇó¡£ÁíÍâÒ»¸öÔ­ÒòÊÇFederationÁ¼ºÃµÄÏòºó¼æÈÝÐÔ£¬ÒÑÓеĵ¥NamenodeµÄ²¿Êð ÅäÖò»ÐèÒªÈκθıä¾Í¿ÉÒÔ¼ÌÐø¹¤×÷¡£

Òò´ËFederation£¨ÁªÃË£©ÊÇδÀ´¿ÉÑ¡µÄ·½°¸Ö®Ò»¡£ÔÚFederation¼Ü¹¹ÖпÉÒÔÎÞ·ìµÄÖ§³ÖĿǰ µ¥Namenode¼Ü¹¹ÖеÄÅäÖá£

(Èý)HDFSµÄFederation»úÖÆ

HDFS FederationʹÓÃÁ˶à¸ö¶ÀÁ¢µÄNamenode/namespaceÀ´Ê¹µÃHDFSµÄÃüÃû·þÎñÄܹ»Ë®Æ½À©Õ¹¡£ÔÚHDFS FederationÖеÄNamenodeÖ®¼äÊÇÁªÃ˹ØÏµ£¬ËûÃÇÖ®¼äÏ໥¶ÀÁ¢ÇÒ²»ÐèÒªÏ໥Эµ÷¡£HDFS FederationÖеÄNamenodeÌṩÁËÌṩÁËÃüÃû¿Õ¼äºÍ¿é¹ÜÀí¹¦ÄÜ¡£HDFS FederationÖеÄdatanode±»ËùÓеÄNamenodeÓÃ×÷¹«¹²´æ´¢¿éµÄµØ·½¡£Ã¿Ò»¸ö

datanode¶¼»áÏòËùÔÚ¼¯ÈºÖÐËùÓеÄNamenode×¢²á£¬²¢ÇÒ»áÖÜÆÚÐԵķ¢ËÍÐÄÌøºÍ¿éÐÅÏ¢±¨ ¸æ£¬Í¬Ê±´¦ÀíÀ´×ÔNamenodeµÄÖ¸Áî¡£

(ËÄ)Federation HDFSÓ뵱ǰHDFSµÄ±È½Ï¼°¸Ä½ø

µ±Ç°HDFSÖ»ÓÐÒ»¸öÃüÃû¿Õ¼ä£¨Namespace£©£¬ËüʹÓÃÈ«²¿µÄ¿é¡£¶øFederationHDFSÖÐÓжà¸ö¶ÀÁ¢µÄÃüÃû¿Õ¼ä£¨Namespace£©£¬²¢ÇÒÿһ¸öÃüÃû¿Õ¼äʹÓÃÒ»¸ö¿é³Ø£¨blockpool£©¡£

µ±Ç°HDFSÖÐÖ»ÓÐÒ»×é¿é¡£¶øFederation HDFSÖÐÓжà×é¶ÀÁ¢µÄ¿é¡£¿é³Ø£¨block pool£©¾ÍÊÇÊôÓÚͬһ¸öÃüÃû¿Õ¼äµÄÒ»×é¿é¡£

µ±Ç°HDFSÓÉÒ»¸öNamenodeºÍÒ»×édatanode×é³É¡£¶øFederation HDFSÓɶà¸ö

NamenodeºÍÒ»×édatanode£¬Ã¿Ò»¸ödatanode»áΪ¶à¸ö¿é³Ø£¨block pool£©´æ´¢¿é¡£1.Block Pool(¿é³Ø)

ËùνBlockpool(¿é³Ø)¾ÍÊÇÊôÓÚµ¥¸öÃüÃû¿Õ¼äµÄÒ»×éblock(¿é)¡£Ã¿Ò»¸ödatanodeΪËùÓеÄblockpool´æ´¢¿é¡£DatanodeÊÇÒ»¸öÎïÀí¸ÅÄ¶øblockpoolÊÇÒ»¸öÖØÐ½«block»®·ÖµÄÂß¼­¸ÅÄͬһ¸ödatanodeÖпÉÒÔ´æ×ÅÊôÓÚ¶à¸öblockpoolµÄ¶à¸ö¿é¡£BlockpoolÔÊÐíÒ»¸öÃüÃû¿Õ¼äÔÚ²»Í¨ÖªÆäËûÃüÃû¿Õ¼äµÄÇé¿öÏÂΪһ¸öеÄblock´´½¨BlockID¡£Í¬Ê±£¬Ò»¸ö

NamenodeʧЧ²»»áÓ°ÏìÆäϵÄdatanodeΪÆäËûNamenodeµÄ·þÎñ¡£ µ±datanodeÓë

Namenode½¨Á¢ÁªÏµ²¢¿ªÊ¼»á»°ºó×Ô¶¯½¨Á¢Blockpool¡£Ã¿¸öblock¶¼ÓÐÒ»¸öΨһµÄ±êʶ£¬ Õâ¸ö±êʶÎÒÃdzÆÖ®ÎªÀ©Õ¹µÄ¿éID£¨ExtendedBlockID£©=BlockID+BlockID¡£Õâ¸öÀ©Õ¹µÄ¿é

IDÔÚHDFS¼¯ÈºÖ®¼ä¶¼ÊÇΨһµÄ£¬ÕâΪÒÔºó¼¯Èº¹é²¢´´ÔìÁËÌõ¼þ¡£

DatanodeÖеÄÊý¾Ý½á¹¹¶¼Í¨¹ý¿é³ØID£¨BlockPoolID£©Ë÷Òý£¬¼´datanodeÖеÄ

BlockMap£¬storageµÈ¶¼Í¨¹ýBPIDË÷Òý¡£ ÔÚHDFSÖУ¬ËùÓеĸüС¢»Ø¹ö¶¼ÊÇÒÔ

NamenodeºÍBlockPoolΪµ¥Ôª·¢ÉúµÄ¡£¼´Í¬Ò»HDFS FederationÖв»Í¬µÄ

Namenode/BlockPoolÖ®¼äûÓÐʲô¹ØÏµ¡£ Hadoop V0.23°æ±¾ÖÐBlock PoolµÄ¹ÜÀí¹¦ÄÜÒÀÈ»·ÅÔÚÁËNamenodeÖУ¬½«À´µÄ°æ±¾ÖлὫBlock PoolµÄ¹ÜÀí¹¦ÄÜÒÆ¶¯µÄÐµĹ¦ÄܽڵãÖС£

2.DatanodeµÄ¸Ä½ø

ÔÚdatanodeÖУ¬¶ÔÓ¦ÓÚÿ¸öNamnode¶¼ÓÐÒ»ÌõÏàÓ¦µÄÏ̡߳£Ã¿¸ödatanode»áȥÿһ¸ö

Namenode×¢²á£¬²¢ÇÒÖÜÆÚÐԵĸøËùÓеÄNamenode·¢ËÍÐÄÌø¼°datanodeµÄʹÓñ¨¸æ¡£

Datanode»¹»á¸øNamenode·¢ËÍÆäËùÔÚµÄblockpoolµÄblockreport£¨¿é±¨¸æ£©¡£ÓÉÓÚÓжà¸öNamenodeͬʱ´æÔÚ£¬Òò´ËÈκÎÒ»¸öNamenode¶¼¿ÉÒÔËæÊ±¶¯Ì¬¼ÓÈ롢ɾ³ýºÍ¸üС£

3.FederationÖÐµÄÆäËû·½ÃæµÄ¸Ä½ø

ÌṩÁ˹¤¾ß£¬¶ÔÓÚNamenodeµÄ³õʼ»¯ºÍÍËÒÛµÄ¼à¿ØºÍ¹ÜÀí¡£ ÔÊÐíÔÚdatanode¼¶±ð»òÕßblock pool¼¶±ðµÄ¸ºÔؾùºâ¡£ DatanodeµÄºóÌ¨ÊØ»¤½ø³Ì£¬ÎªFederationËù×öµÄ´ÅÅ̺ÍĿ¼ɨÃè¡£ ÌṩÁËÏÔʾNamenodeµÄBlock poolµÄʹÓÃ״̬µÄWeb UI¡£ »¹ÌṩÁ˶ÔÈ«²¿¼¯Èº´æ´¢Ê¹ÓÃ״̬µÄUIչʾ¡£ ÔÚWeb UIÖÐÁгöÁËËùÓеÄNamenode¼°Æäϸ½Ú£¬ÈçNamenode-

BlockPoolIDºÍ´æ´¢µÄʹÓÃ״̬£¬Ê§È¥ÁªÏµµÄ¡¢»îµÄºÍËÀµÄ¿éÐÅÏ¢¡£»¹ÓÐǰÍù¸÷¸öNamenode Web UIµÄÁ´½Ó¡£ DatanodeÍËÒÛ״̬µÄչʾ¡£

4.¶àÃüÃû¿Õ¼äµÄ¹ÜÀíÎÊÌâ

ÔÚÒ»¸ö¼¯ÈºÖÐÐèҪΨһµÄÃüÃû¿Õ¼ä»¹ÊǶà¸öÃüÃû¿Õ¼ä£¬ºËÐÄÎÊÌâÃüÃû¿Õ¼äÖÐÊý¾ÝµÄ¹²ÏíºÍ·Ã ÎʵÄÎÊÌ⡣ʹÓÃÈ«¾ÖΨһµÄÃüÃû¿Õ¼äÊǽâ¾öÊý¾Ý¹²ÏíºÍ·ÃÎʵÄÒ»ÖÖ·½·¨¡£ÔÚ¶àÃüÃû¿Õ¼äÏ£¬ ÎÒÃÇ»¹¿ÉÒÔʹÓÃClientSideMountTable·½Ê½×öµ½Êý¾Ý¹²ÏíºÍ·ÃÎÊ¡£

5.NamespaceVolume£¨ÃüÃû¿Õ¼ä¾í£©

Ò»¸öNamespaceºÍËüµÄBlock PoolºÏÔÚÒ»Æð³Æ×÷Namespace Volume¡£Namespace

VolumeÊÇÒ»¸ö¶ÀÁ¢ÍêÕûµÄ¹ÜÀíµ¥Ôª¡£µ±Ò»¸öNamenode/Namespace±»É¾³ý£¬ÓëÖ®Ïà¶ÔÓ¦ µÄBlockPoolÒ²Ò²±»É¾³ý¡£ÔÚÉý¼¶Ê±Ã¿Ò»¸öNamespaceVolumeÒ²»áÕûÌå×÷Ϊһ¸öµ¥Ôª¡£

6.ClusterID

ÔÚHDFSFederationÖÐÌí¼ÓÁËClusterIDÓÃÀ´Çø·Ö¼¯ÈºÖеÄÿ¸ö½Úµã¡£µ±¸ñʽ»¯Ò»¸ö

Namenodeʱ£¬Õâ¸öClusterID»á×Ô¶¯Éú³É»òÕßÊÖ¶¯Ìṩ¡£ÔÚ¸ñʽ»¯Í¬Ò»¼¯ÈºÖÐÆäËû

Namenodeʱ»áÓõ½Õâ¸öClusterID¡£

7.HDFSFederation¶ÔÀϰ汾µÄHDFSÊǼæÈݵÄ

ÕâÖÖ¼æÈÝÐÔ¿ÉÒÔʹµÃÒÑÓеÄNamenodeÅäÖò»ÐèÒªÈκθıä¼ÌÐø¹¤×÷¡£

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

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

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

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