ÒýÑÔ¡ªHDFSµÄÖØÒªÐÔ£º
HadoopµÄ¶¨Ò壺ÊʺϴóÊý¾ÝµÄ·Ö²¼Ê½´æ´¢Óë¼ÆËãµÄÒ»¸öƽ̨£¬ÆäÖдóÊý¾ÝµÄ·Ö²¼Ê½´æ´¢¾ÍÊÇÓÉHDFSÀ´Íê³ÉµÄ£¬Òò´ËÕÆÎÕºÃHDFSµÄÏà¹Ø¸ÅÄîÓëÓ¦Ó÷dz£ÖØÒª£¡
±¾Æª²©¿Í½«´ÓÒÔϼ¸¸ö·½Ãæ½²ÊöHDFS£º
1¡¢·Ö²¼Ê½ÎļþϵͳÓëHDFS
2¡¢HDFSµÄÌåϵ½á¹¹
3¡¢HDFS¡ª-NameNodeÏà¹Ø¸ÅÄî
4¡¢HDFS¡ª-DataNodeÏà¹Ø¸ÅÄî
5¡¢HDFS¡ª-block¿éÏà¹Ø¸ÅÄî
6¡¢HDFS¡ª-¸±±¾ÊýÏà¹Ø¸ÅÄî
7¡¢HDFSµÄ¾ßÌå²Ù×÷·½Ê½
£¨Ò»£©·Ö²¼Ê½ÎļþϵͳÓëHDFS
¢Ù·Ö²¼Ê½ÎļþϵͳDFSµÄÓÉÀ´£º
Ëæ×ÅÎÒÃǵÄÊý¾ÝÁ¿Ô½À´Ô½´ó,ÔÚÒ»¸ö²Ù×÷ϵͳÖдæ·ÅÊý¾Ý¾Í·Å²»ÏÂÁË,Òò´ËÈç¹ûÊý¾ÝÔÚһ̨µçÄÔÉϷŲ»ÏÂÖ»Äܷŵ½ÁíÍâһ̨µçÄÔÉÏ,´ËʱÎÊÌâ¾ÍÓÐÁË:Èç¹û°ÑÊý¾Ý·ÖÉ¢µ½¶ą̀µçÄÔÉϵϰ,ÎÒÃǶÔÊý¾ÝµÄ¹ÜÀíÒ²¾Í±äµÃÔ½À´Ô½Âé·³ÁË£¬Õâ¸öÎÊÌâÈçºÎ½â¾ö£¿
ÆÚ´ýÒ»¸ö¹ÜÀíϵͳÄܹ»ÈÃÎÒÃÇÎÞ·ìµÄ¹ÜÀí¶ą̀²Ù×÷ϵͳÉÏÃæµÄÊý¾Ý,ÔÚ²Ù×÷¶ą̀µçÄÔÉÏÊý¾ÝµÄʱºò,¾ÍºÃÏñÊÇÔÚһ̨µçÄÔÉϲÙ×÷Ò»Ñù,Õâ¾ÍÊÇ·Ö²¼Ê½ÎļþϵͳµÄÓÉÀ´¡£

¢Ú·Ö²¼Ê½ÎļþϵͳµÄÓŵ㣺
1¡¢ÊÇÒ»ÖÖÔÊÐíÎļþͨ¹ýÍøÂçÔÚ¶ą̀Ö÷»úÉÏ·ÖÏíµÄÎļþϵͳ£¬¿ÉÒÔÈöą̀»úÆ÷ÉϵĶ໧»§·ÖÏíÎļþºÍ´æ´¢¿Õ¼ä¡£
2¡¢Í¨Í¸ÐÔ£ºÈÃʵ¼ÊÉÏÊÇͨ¹ýÍøÂçÀ´·ÃÎÊÎļþµÄ¶¯×÷£¬ÓɳÌÐòÓëÓû§¿´À´£¬¾ÍÏñÊÇ·ÃÎʱ¾µØ´ÅÅÌÒ»Ñù¡£
3¡¢ÈÝ´í£º¼´Ê¹ÏµÍ³ÖÐÓÐijЩ½Úµã¹Òµô£¬ÕûÌåÀ´ËµÏµÍ³ÈÔÈ»¿ÉÒÔ¼ÌÐøÔË×÷¶ø²»»áÓÐÊý¾ÝµÄ¶ªÊ§¡£

·Ö²¼Ê½Îļþ¹ÜÀíϵͳÓкܶ࣬HDFSÖ»ÊÇÆäÖеÄÒ»ÖÖ¡£ÊʺÏÓÚÒ»´ÎдÈë¶à´Î²éѯµÄµÄÇé¿ö£¬²»Ö§³Ö²¢·¢Ð´Çé¿ö£¬Ð¡Îļþ²»ºÏÊÊ¡£
Ò»¾ä»°ÃèÊöHDFS£º°Ñ¿Í»§¶ËµÄ´óÎļþ´æ·ÅÔںܶà½Úµã(·þÎñÆ÷)µÄÊý¾Ý¿éÖС£
£¨¶þ£©HDFSµÄÌåϵ½á¹¹
HDFSµÄÌåϵ½á¹¹ÊÇÒ»¸öÖ÷´Ó½á¹¹,Ö÷½ÚµãNamenodeÖ»ÓÐÒ»¸ö,´Ó½ÚµãDatanodeÓкܶà¸ö.Ö÷½ÚµãNamenodeÓë´Ó½ÚµãDatanodeʵ¼ÊÉÏÖ¸µÄÊDz»Í¬µÄÎïÀí»úÆ÷,¼´ÓÐÒ»¸ö»úÆ÷ÅܵĽø³ÌÊÇNamenode.ºÜ¶à»úÆ÷ÉÏÅܵĽø³ÌÊÇDatanode¡£

HDFSÌåϵ½á¹¹¡ª¡ªNameNode 
´ÓÉÏÃæµÄÔ´Âë¿ÉÒÔ¿´³ö£¬ÔÚÈκηֲ¼Ê½ÎļþϵͳµÄ²¿Êðµ±ÖÐÖ»´æÔÚÒ»¸öÔËÐеÄNameNode£¬³ý·Ç´æÔÚµÚ¶þ¸ö±¸·Ý»ò¹ÊÕÏ×ªÒÆNameNode¡£
NameNodeÖØÒªÐÔ£º
1>Namenode¸ºÔð½ÓÊÕÓû§µÄ²Ù×÷ÇëÇó,ÊÇÕû¸öÎļþϵͳµÄ¹ÜÀí½Úµã
2>ά»¤×ÅÕû¸öÎļþϵͳµÄĿ¼½á¹¹£¬ËùνĿ¼½á¹¹ÀàËÆÓÚwindowsÎļþ¼ÐµÄÌåϵ½á¹¹
3>»¹±£¹Ü×ÅÎÒÃÇÎļþ»òĿ¼µÄÔªÊý¾ÝÐÅÏ¢(metadata),ËùνԪÊý¾ÝÐÅÏ¢Ö¸µÄÊdzýÁËÊý¾Ý±¾ÉíÖ®ÍâÉæ¼°µ½Îļþ×ÔÉíµÄÏà¹ØÐÅÏ¢:ÐÞ¸Äʱ¼ä¡¢´óС¡¢·ÃÎÊȨÏÞ¡¢¸±±¾ÊýµÈµÈ

ÃüÁdu -sh * 
4>ÖªµÀÎļþÓëblock¿éÐòÁÐÖ®¼äµÄ¶ÔÓ¦¹ØÏµ¡¢¸ºÔð¼Ç¼ÎļþÊÇÈçºÎ±»·Ö¸î³ÉÊý¾Ý¿éµÄ,ÒÔ¼°ÕâЩÊý¾Ý¿é·Ö±ð´æ´¢µ½ÄÄЩ½ÚµãÉϵÈ.
×ܽáÀ´Ëµ£ºNameNode¾ÍÊǸºÔð¹ÜÀí¹¤×÷µÄ¡£
NameNodeºËÐÄÔ´Âë·ÖÎö£º 
ͨ¹ýÔ´Âë¿ÉÒÔ·¢ÏÖ£ºNameNodeÕâ¸ö½Úµã¹ÜÀí×ÅÁ½ÕźËÐÄµÄ±í£¬µÚÒ»Õűí¹ÜÀí×ÅÎļþÓëblock¿éÐòÁÐÖ®¼äµÄ¶ÔÓ¦¹ØÏµ£¬µÚ¶þÕűí¹ÜÀí×Åblock¿éÓëDataNode½ÚµãÖ®¼äµÄ¶ÔÓ¦¹ØÏµ¡£
ÆäÖÐǰһÕűíÊǾ²Ì¬µÄ£¬ÊÇ´æ·ÅÔÚ´ÅÅÌÉϵģ¬Í¨¹ýfsimageºÍeditsÎļþÀ´Î¬»¤£¬ºóÒ»ÕűíÊǶ¯Ì¬µÄ£¬Ã¿µ±¼¯ÈºÆô¶¯µÄʱºò»á×Ô¶¯½¨Á¢Õâ¸öÐÅÏ¢¡£
ÏÂÃæÍ¨¹ýÒ»¸ö¾ßÌåµÄʵÀý²ûÊö¾ßÌ庬Ò壺 
´ËʱNameNodeµÄÁ½ÕźËÐıíÖн«¼ÇÔØ×ÅÈçÏÂÐÅÏ¢£º 
¼´µÚÒ»ÕűíÖйÜÀí×ÅÎļþÓëblock¿éÐòÁÐÖ®¼äµÄ¶ÔÓ¦¹ØÏµ£¬µÚ¶þÕűíÖйÜÀí×Åblock¿éÓëDataNode½ÚµãÖ®¼äµÄ¶ÔÓ¦¹ØÏµ¡£
fsimageÓëedits´æ·ÅµÄ·¾¶£º 
HDFSÌåϵ½á¹¹¡ª¨CSecondaryNameNode
SecondaryNameNodeµÄÖØÒªÐÔ£º
Secondnamenode×÷ΪÀ϶þ,Ö»×öÒ»¼þÊÂÇé:ºÏ²¢NamenodeÖеÄfsimage+edits
NamenodeÓëSecondnamenode±¾ÉíÊÇÁ½¸ö¶ÀÁ¢µÄJava½ø³Ì,ËüÃÇÖ®¼äÊý¾ÝµÄ½»»»ÊÇͨ¹ýÍøÂçhttp×ßµÄ.
ºÏ²¢µÄÖ´Ðйý³Ì:Secondnamenode»áÏȰÑNamenodeÖеÄfsimage+editsÕâЩԪÊý¾ÝÏÈ¿½±´µ½×Ô¼º½ø³ÌµÄÄÇÒ»¿é.È»ºó½«fsimageÓëedits½øÐкϲ¢,Éú³ÉеÄfsimage£¬Ëæºó½«ÐµÄfsimageËͻص½NamenodeÖÐ.Í¬Ê±ÖØÖÃNamenodeÖеÄedits.¼´½«ÔÀ´µÄeditsÖеÄÊý¾ÝÇå¿Õ¡£

HDFSÌåϵ½á¹¹¡ª¡ªDataNode
DataNodeÖØÒªÐÔ
1>DatanodeÖ»×öÒ»¼þÊÂÇé:´æ´¢Êý¾Ý£¬HDFSÖ®ËùÒÔ¿ÉÒÔ´æ´¢º£Á¿Êý¾Ýʵ¼ÊÉÏÖ¸µÄÊÇDatanodeÕâ¸ö½Úµã¿ÉÒÔ½øÐÐÀ©Õ¹.
2>DatanodeÊÇÒÔblock¿éµÄ·½Ê½À´´æ´¢Êý¾ÝµÄ.ÕâÒ»µã²»Í¬ÓÚÎÒÃǵÄwindows²Ù×÷ϵͳ£¬HDFSÖеÄÎļþÊDZ»ÇгÉblock¿éÀ´½øÐд洢µÄ¡£Ö®ËùÒÔ½«ÎļþÇзֳÉС¿éÀ´½øÐд洢,Ò²ÊÇΪÁ˱ãÓÚά»¤Óë¹ÜÀí.Ϊ±£Ö¤Êý¾Ý°²È«,block¿é»áÓжà¸ö¸±±¾£¬²¢ÇÒÕâЩ¸±±¾»á±»´æ´¢µ½²»Í¬µÄ»úÆ÷ÉÏÃæ¡£
DataNodeÖеÄblock¿éµ½µ×ÊÇ´æ·Åµ½ÄÄÀïÄØ£¿ÎÒÃÇ¿ÉÒÔͨ¹ýÅäÖÃÎļþhdfs-default.xml½øÐв鿴£º

ÆäÖвÎÊýdfs.data.dirµÄÊýÖµ¾ÍÊÇblock¿é´æ·ÅÔÚLinuxÎļþϵͳÖеÄλÖ㬲ÎÊý${hadoop.tmp.dir}µÄÊýÖµÎÒÃÇ×Ô¼º¿ÉÒÔ½øÐÐÅäÖã¬ÎÒÅäÖõÄ·¾¶Îª£º/usr/local/hadoop/tmp,Òò´Ëblock¿é´æ·ÅµÄ¾ßÌå·¾¶ÊÇ£º
/usr/local/hadoop/tmp/dfs/data.Òò´Ëͨ¹ýlinuxÃüÁîÎÒÃÇ¿ÉÒÔ¶ÔÊý¾Ý¿é½øÐÐÏàÓ¦µÄ²é¿´£º

˼¿¼£º¼ÈÈ»½«Êý¾Ýͨ¹ýlinuxÉÏ´«µ½HDFSÖ®ºó,Datanode×îÖÕ»¹ÊǰÑÊý¾Ý·Åµ½ÁËlinuxÎļþϵͳµÄĿ¼ÏÂ,Ϊʲô²»Ö±½Ó½«Êý¾Ý·Åµ½/usr/local/hadoop/tmp/dfs/dataÕâ¸öĿ¼ÏÂÃæ?
1>»»½Ç¶È˼¿¼£ºÊý¾Ý¿âOracleÊÇ´æ´¢Êý¾ÝµÄ,¾ÍºÃÏñHDFSÒ²ÊÇ´æ´¢Êý¾ÝµÄÒ»Ñù,µ«ÊÇÊý¾Ý¿âµÄÊý¾Ý×îÖÕ»¹ÊÇ´æ·ÅÔÚÁËwindowsÉÏÃæ.ÎÒÃÇÖ®ËùÒÔʹÓÃÊý¾Ý¿â½ö½öÊÇΪÁ˽â¾öÊý¾ÝÁìÓòÖеÄÒ»¸öÎÊÌâ:²éѯ£¬¶øHDFSºÍÊý¾Ý¿âÒ»Ñù,Ò²½ö½öÊÇΪÁ˽â¾öÊý¾ÝÁìÓòÖеÄÒ»¸öÎÊÌâ:º£Á¿Êý¾ÝµÄ´æ´¢
2>Èç¹ûÖ±½Óͨ¹ýÊÖ¹¤½«Êý¾ÝÉÏ´«µ½DatanodeÖдæ·ÅÊý¾ÝµÄÄǸöĿ¼ÏÂÃæ,ÄÇôͨ¹ýhadoop
fs -ls /Õâ¸öÃüÁîÊDz鲻µ½Õâ¸öÎļþµÄ.ÒòΪÈôÊÖ¹¤ÉÏ´«,NamenodeÊDz»ÖªµÀµÄ,¼´ÊÖ¹¤ÉÏ´«µÄÊý¾ÝHDFSÊDz»ÈϵÄ.
HDFS¡ª¡ªblockÏà¹Ø¸ÅÄî
block¿éÊÇHDFS×î»ù±¾µÄ´æ´¢µ¥Î»£¬HDFS»á½«ÎļþÇзֳÉblock¿éÀ´½øÐд洢£¬Ä¬ÈϵÄblock¿é´óСÊÇ64M£¬ÒÔÒ»¸ö256MÎļþ´óСΪÀý£¬¹²»á±»ÇзֳÉ256/64=4¸öblock
block¿éµÄĬÈÏ´óС£º
<property>
<name>dfs.block.size</name> <value>67108864</value>
<description>The default block size for
new files.</description>
</property> |
HDFS¡ª-¸±±¾ÊýÏà¹Ø¸ÅÄî
ÔÚHDFS´æ´¢Êý¾ÝʱΪÁËÈ·±£Êý¾ÝµÄ°²È«ÐÔ£¬ÒýÈëÁ˸±±¾µÄ»úÖÆ£¬Ä¬Èϵĸ±±¾ÊýΪ3,ÎÒÃÇÔÚÅäÖÃÎļþhdfs-defaule.xmlÖпÉÒÔ½øÐв鿴£º

µ±È»¸±±¾µÄÊýÁ¿ÎÒÃÇ¿ÉÒÔÔÚhdfs-site.xmlÖнøÐÐÐ޸ĵģº

ÏÂÃæÎÒÃÇͨ¹ýÒ»¸ö¾ßÌåµÄʵÀý²ûÊöHDFS´æ´¢ÔÀí£º
1¡¢¼ÙÉèij¸öÓû§ÒªÉÏ´«Ò»¸ö´óСÊÇ192MµÄÎļþ,Ê×ÏÈNameNode½«»á½ÓÊÕµ½Óû§ÉÏ´«Êý¾ÝµÄÇëÇó£º

2¡¢Ëæºó192MµÄÕû¸öÎļþ½«»á±»ÇгÉ3¸öblock¿é·Ö±ð´æ´¢ÔÚ3̨²»Í¬µÄ»úÆ÷ÉÏ£¬¼´DataNodeÉÏÃæ¡£Óë´ËͬʱNameNode½«»á¼Ç¼ÕâЩÊý¾Ý¿é´æ´¢µ½ÄÄЩDatanodeÉÏÃæ¡¢ÎļþÓëblockÐòÁÐÖ®¼äµÄ¶ÔÓ¦¹ØÏµµÈµÈ¡£

3¡¢È»ºóHDFSÔÚ½ÚµãÖ®¼ä¸´ÖÆÕâЩÊý¾Ý¿é£¬×îºóÕâÈý¿éÔÚ¶à¸ö½ÚµãÖзֲ¼ÈçÏ£ºÃ¿Ò»¸öblock¿é±»¿½±´³ÉÁË3¸ö¸±±¾£¬±£Ö¤ÁËÊý¾ÝµÄ°²È«ÐÔ¡£

ÕýÈçÉÏÃæÊµÀýËùʾ£º
1>NameNode¼ÇÔØ×ÅÎļþÓëblockÐòÁÐÖ®¼äµÄ¶ÔÓ¦¹ØÏµ¡¢¼Ç¼×Åblock¿é´æ´¢ÔÚÄÄЩ½ÚµãÉϵȵÈ
2>DataNode¾ÍÊÇ´æ´¢Êý¾ÝµÄ£¬¼´block¿éµÄ
3>¸±±¾»úÖÆÈ·±£ÁËÊý¾ÝµÄ°²È«ÐÔ
£¨Èý£©HDFSµÄ²Ù×÷·½Ê½
HDFSµÄ¾ßÌå²Ù×÷·½Ê½£ºshell²Ù×÷ÓëJavaApi²Ù×÷Á½ÖÖ·½Ê½
shell²Ù×÷£º
hadoop fs ¡¡-ls¡¡ / £º²é¿´HDFSµÄĿ¼½á¹¹
hadoop fs ¡¡-lsr / £ºµÝ¹é²é¿´HDFSµÄĿ¼½á¹¹
hadoop fs -mkdir /d1 ¡¡£ºÔÚHDFSÉÏÃæ´´½¨Îļþ¼Ð
hadoop fs -put¡¡¡¡¡¡ £ºÉÏ´«Êý¾ÝÎļþ
hadoop fs ¡¡-get £ºÏÂÔØÊý¾ÝÎļþ
hadoop fs -rmr £ºÉ¾³ýHDFSÖеÄÎļþ¼Ð»òÕßÎļþ
JavaApi²Ù×÷£º
JavaApi¶ÔHDFSµÄ²Ù×÷Ö»Òª»òµÃÒ»¸öfileSystem¶ÔÏó¾Í¿ÉÒÔÁË¡£
FileSystem fileSystem = FileSystem.get(new URI(path0)
, new Configuration()); 
ͨ¹ýFileSystemÓû§¿ÉÒÔÓëNameNode½øÐÐͨÐÅ¡£ |