±à¼ÍƼö: |
±¾ÎÄÀ´×Ô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ÅäÖò»ÐèÒªÈκθıä¼ÌÐø¹¤×÷¡£
|