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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÄãÏëÁ˽âµÄ·Ö²¼Ê½ÎļþϵͳHDFS£¬¿´Õâһƪ¾Í¹»ÁË
 
×÷ÕߣºÓëÀî
 
  2684  次浏览      30
2020-10-15  
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁË·Ö²¼Ê½Îļþϵͳ¡¢HDFS¼ò½é¡¢HDFSÏà¹Ø¸ÅÄî¡¢HDFSÌåϵ½á¹¹¡¢HDFS´æ´¢Ô­ÀíµÈÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×Ô²©¿ÍÔ°£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

1¡¢·Ö²¼Ê½Îļþϵͳ

¼ÆËã»ú¼¯Èº½á¹¹

·Ö²¼Ê½Îļþϵͳ°ÑÎļþ·Ö²¼´æ´¢µ½¶à¸ö½Úµã£¨¼ÆËã»ú£©ÉÏ£¬³ÉǧÉÏÍòµÄ¼ÆËã»ú½Úµã¹¹³É¼ÆËã»ú¼¯Èº¡£

·Ö²¼Ê½ÎļþϵͳʹÓõļÆËã»ú¼¯Èº£¬ÆäÅäÖö¼ÊÇÓÉÆÕͨӲ¼þ¹¹³ÉµÄ£¬ÓëÓöà¸ö´¦ÀíÆ÷ºÍרÓø߼¶Ó²¼þµÄ²¢Ðл¯´¦Àí×°ÖÃÏà±È£¬Ç°Õß´ó´ó½µµÍÁËÓ²¼þÉϵĿªÏú¡£

·Ö²¼Ê½ÎļþϵͳµÄ½á¹¹

·Ö²¼Ê½ÎļþϵͳÔÚÎïÀí½á¹¹ÉÏÊÇÓÉÖÚ¶à½×¶Î¼°½Úµã¹¹³ÉµÄ£¬¶øÕâЩ½ÚµãÖзÖΪÁ½Àà¡£Ò»ÀàÊÇÖ÷½Úµã£¨Master Node£©£¬ÓÖ±»³ÆÎªÃû³Æ½Úµã£¨NameNode£©£¬ÁíÒ»ÀàÊǴӽڵ㣨Slave Node£©£¬ÓÖ±»³ÆÎªÊý¾Ý½Úµã£¨DataNode£©¡£

2¡¢HDFS¼ò½é

¹Ù·½Óû§Ö¸ÄÏ

HadoopÊÇÓÉHDFSºÍMapReduceÁ½´ó×é¼þ×é³ÉµÄ£¬HDFSÈ«³ÆÎªHadoop Distributed File System£¨Hadoop ·Ö²¼Ê½Îļþϵͳ£©¡£

ËüºÍÏÖÓеķֲ¼Ê½ÎļþϵͳÓкܶ๲ͬµã¡£µ«Í¬Ê±£¬ËüºÍÆäËûµÄ·Ö²¼Ê½ÎļþϵͳµÄÇø±ðÒ²ÊǺÜÃ÷ÏԵġ£HDFSÊÇÒ»¸ö¸ß¶ÈÈÝ´íÐÔµÄϵͳ£¬Êʺϲ¿ÊðÔÚÁ®¼ÛµÄ»úÆ÷ÉÏ¡£HDFSÄÜÌṩ¸ßÍÌÍÂÁ¿µÄÊý¾Ý·ÃÎÊ£¬·Ç³£Êʺϴó¹æÄ£Êý¾Ý¼¯ÉϵÄÓ¦Óá£

HDFSҪʵÏÖµÄÄ¿±ê£º

¼æÈÝÁ®¼ÛµÄÓ²¼þÉ豸

Á÷Êý¾Ý¶Áд

´óÊý¾Ý¼¯

¼òµ¥µÄÎļþÀàÐÍ

Ç¿´óµÄ¿çƽ̨¼æÈÝÐÔ

HDFS¾ÖÏÞÐÔ£º

²»ÊʺϵÍÑÓ³ÙÊý¾Ý·ÃÎÊ

ÎÞ·¨¸ßЧ´æ´¢´óÁ¿Ð¡Îļþ£¨Óë×ÔÉíʵÏÖÓйأ©

²»Ö§³Ö¶àÓû§Ð´Èë¼°ÈÎÒâÐÞ¸ÄÎļþ

3¡¢HDFSÏà¹Ø¸ÅÄî

¿é

¡°¿é¡±ÔÚHDFSÖÐ×÷Ϊ×îС´æ´¢µ¥Î»£¬Ä¬ÈÏÒ»¸ö¿éΪ64MB¡£ÔÚHDFSÖУ¬Ò»¸öÎļþ½«»á±»·Ö¸î³É¶à¸ö¿é£¬±£´æµ½¸÷¸öÊý¾Ý½Úµã¡£¿éµÄ´óСԶԶ¸ßÓÚÆÕͨÎļþϵͳ£¬¿ÉÒÔ×îС»¯Ñ°Ö·¿ªÏú¡£

HDFSÖгéÏóµÄ¿éÄ£ÐÍ¿ÉÒÔ´øÀ´ÈçϺô¦£º

Ö§³Ö´ó¹æÄ£Îļþ´æ´¢

µ¥¸öÎļþ±»·Ö³ÉÈô¸É¸ö¿é£¬·Ö±ð´æ´¢µ½Èô¸É¸öÊý¾Ý½ÚµãÖУ¬ÆäÎļþ´óС²»»áÊܵ½µ¥¸ö½ÚµãÈÝÁ¿µÄÏÞÖÆ¡£

¼ò»¯ÏµÍ³Éè¼Æ

Îļþ¿é´óСÊǹ̶¨µÄ£¬¿ÉÒÔºÜÈÝÒ×¼ÆËã³öÒ»¸ö½ÚµãÖпÉÒÔ´æ´¢¶àÉÙ¸öÎļþ¿é¡£·½±ãÁËÔªÊý¾ÝµÄ¹ÜÀí£¬ÔªÊý¾Ý²»ÐèÒªºÍÎļþ¿éÒ»Æð±£´æ£¬¿ÉÒÔÓÉÆäËüϵͳ¸ºÔð¹ÜÀíÔªÊý¾Ý¡£

ÊʺÏÊý¾Ý±¸·Ý

ÿ¸öÎļþ¿é¶¼¿ÉÒÔÈßÓàµÄ´æ´¢µ½¶à¸öÊý¾Ý½ÚµãÉÏ£¬µ±Ò»¸ö½ÚµãÊý¾Ý³ö´íʱ£¬¾Í¿ÉÒÔ¸ù¾ÝÆäËû¸±±¾½Úµã»Ö¸´Êý¾Ý¡£´ó´óÌá¸ßÁËϵͳµÄÈÝ´íÐÔÓë¸ß¿ÉÓÃÐÔ¡£

Ãû³Æ½Úµã£¨NameNode£©ºÍÊý¾Ý½Úµã(DataNode)

NameNodeÓëSecondaryNameNodeͬΪ¡°Ãû³Æ½Úµã¡±¡£SecondaryNameNode×÷Ϊ¶þ¼¶Ãû³Æ½Úµã£¬ËüÓëNameNodeµÄ¹ØÏµÊÇ£ºSecondaryNameNodeÊÇNameNodeµÄÀ䱸·Ý¡£

Ãû³Æ½ÚµãµÄÊý¾Ý½á¹¹

ÔÚHDFSÖУ¬Ãû³Æ½Úµã£¨NameNode£©¸ºÔð¹ÜÀí·Ö²¼Ê½ÎļþϵͳµÄÃüÃû¿Õ¼ä £¨Namespace£©£¬±£´æÁËÁ½¸öºËÐĵÄÊý¾Ý½á¹¹£¬¼´FsImageºÍEditLog ¡£Ãû³Æ½Úµã¼Ç¼ÁËÿ¸öÎļþÖи÷¸ö¿éËùÔÚµÄÊý¾Ý½ÚµãµÄλÖÃÐÅÏ¢¡£

FsImage

ÓÃÓÚά»¤ÎļþϵͳÊ÷ÒÔ¼°ÎļþÊ÷ÖÐËùÓеÄÎļþºÍÎļþ¼ÐµÄÔªÊý¾Ý ¡£

EditLog

²Ù×÷ÈÕÖ¾Îļþ£¬ÆäÖмǼÁËËùÓÐÕë¶ÔÎļþµÄ´´½¨¡¢É¾³ý¡¢ÖØÃüÃûµÈ²Ù×÷ ¡£

FsImage

FsImageÎļþ°üº¬ÎļþϵͳÖÐËùÓÐĿ¼ºÍÎļþinodeµÄÐòÁл¯ÐÎʽ¡£Ã¿¸öinodeÊÇÒ» ¸öÎļþ»òĿ¼µÄÔªÊý¾ÝµÄÄÚ²¿±íʾ£¬²¢°üº¬´ËÀàÐÅÏ¢£ºÎļþµÄ¸´ÖƵȼ¶¡¢Ð޸ĺͷÃÎÊ Ê±¼ä¡¢·ÃÎÊȨÏÞ¡¢¿é´óСÒÔ¼°×é³ÉÎļþµÄ¿é¡£¶ÔÓÚĿ¼£¬Ôò´æ´¢ÐÞ¸Äʱ¼ä¡¢È¨ÏÞºÍÅä ¶îÔªÊý¾Ý ¡£

FsImageÎļþûÓмǼ¿é´æ´¢ÔÚÄĸöÊý¾Ý½Úµã¡£¶øÊÇÓÉÃû³Æ½Úµã°ÑÕâЩӳÉä±£ÁôÔÚ ÄÚ´æÖУ¬µ±Êý¾Ý½Úµã¼ÓÈëHDFS¼¯ÈºÊ±£¬Êý¾Ý½Úµã»á°Ñ×Ô¼ºËù°üº¬µÄ¿éÁÐ±í¸æÖª¸øÃû ³Æ½Úµã£¬´Ëºó»á¶¨ÆÚÖ´ÐÐÕâÖÖ¸æÖª²Ù×÷£¬ÒÔÈ·±£Ãû³Æ½ÚµãµÄ¿éÓ³ÉäÊÇ×îеġ£

Ãû³Æ½ÚµãµÄÆô¶¯

ÔÚÃû³Æ½ÚµãÆô¶¯µÄʱºò£¬Ëü»á½«FsImageÎļþÖеÄÄÚÈݼÓÔØµ½ÄÚ´æÖУ¬Ö®ºóÔÙÖ´ÐÐ EditLogÎļþÖеĸ÷Ïî²Ù×÷£¬Ê¹µÃÄÚ´æÖеÄÔªÊý¾ÝºÍʵ¼ÊµÄͬ²½£¬´æÔÚÄÚ´æÖеÄÔªÊý ¾ÝÖ§³Ö¿Í»§¶ËµÄ¶Á²Ù×÷¡£

Ò»µ©ÔÚÄÚ´æÖгɹ¦½¨Á¢ÎļþϵͳԪÊý¾ÝµÄÓ³É䣬Ôò´´½¨Ò»¸öеÄFsImageÎļþºÍÒ»¸ö¿ÕµÄEditLogÎļþ¡£

Ãû³Æ½ÚµãÆðÀ´Ö®ºó£¬HDFSÖеĸüвÙ×÷»áÖØÐÂдµ½EditLogÎļþÖУ¬ÒòΪFsImage ÎļþÒ»°ã¶¼ºÜ´ó£¨GB¼¶±ðµÄºÜ³£¼û£©£¬Èç¹ûËùÓеĸüвÙ×÷¶¼ÍùFsImageÎļþÖÐÌí ¼Ó£¬ÕâÑù»áµ¼ÖÂϵͳÔËÐеÄÊ®·Ö»ºÂý£¬µ«ÊÇ£¬Èç¹ûÍùEditLogÎļþÀïÃæÐ´¾Í²»»áÕâÑù £¬ÒòΪEditLog ҪСºÜ¶à¡£Ã¿´ÎÖ´ÐÐд²Ù×÷Ö®ºó£¬ÇÒÔÚÏò¿Í»§¶Ë·¢Ëͳɹ¦´úÂë֮ǰ£¬ editsÎļþ¶¼ÐèҪͬ²½¸üС£

Ãû³Æ½ÚµãÔËÐÐÆÚ¼äEditLog²»¶Ï±ä´óµÄÎÊÌâ

ÔÚÃû³Æ½ÚµãÔËÐÐÆÚ¼ä£¬HDFSµÄËùÓиüвÙ×÷¶¼ÊÇÖ±½Óдµ½EditLogÖУ¬¾Ã¶ø¾ÃÖ®£¬ EditLogÎÄ ¼þ½«»á±äµÃºÜ´ó ¡£

ËäÈ»Õâ¶ÔÃû³Æ½ÚµãÔËÐÐʱºòÊÇûÓÐʲôÃ÷ÏÔÓ°ÏìµÄ£¬µ«ÊÇ£¬µ±Ãû³Æ½ÚµãÖØÆôµÄʱºò£¬Ãû³Æ½Úµã ÐèÒªÏȽ«FsImageÀïÃæµÄËùÓÐÄÚÈÝÓ³Ïñµ½ÄÚ´æÖУ¬È»ºóÔÙÒ»ÌõÒ»ÌõµØÖ´ÐÐEditLogÖеļǼ£¬µ±EditLogÎļþ·Ç³£´óµÄʱºò£¬»áµ¼ÖÂÃû³Æ½ÚµãÆô¶¯²Ù×÷·Ç³£Âý£¬¶øÔÚÕâ¶Îʱ¼äÄÚHDFSϵͳ´¦ÓÚ°²È«Ä£Ê½£¬Ò»Ö±ÎÞ·¨¶ÔÍâÌṩд²Ù×÷£¬Ó°ÏìÁËÓû§µÄʹÓá£

Ãû³Æ½ÚµãÔËÐÐÆÚ¼äEditLog²»¶Ï±ä´óµÄÎÊÌ⣬ÈçºÎ½â¾ö£¿´ð°¸ÊÇ£ºSecondaryNameNodeµÚ¶þÃû³Æ½Úµã¡£

µÚ¶þÃû³Æ½ÚµãÊÇHDFS¼Ü¹¹ÖеÄÒ»¸ö×é³É²¿·Ö£¬ËüÊÇÓÃÀ´±£´æÃû³Æ½ÚµãÖжÔHDFSÔªÊý¾ÝÐÅÏ¢µÄ±¸·Ý£¬²¢¼õÉÙÃû³Æ½ÚµãÖØÆôµÄʱ¼ä¡£SecondaryNameNodeÒ»°ãÊǵ¥¶ÀÔËÐÐÔÚһ̨»úÆ÷ÉÏ¡£

SecondaryNameNodeµÄ¹¤×÷Çé¿ö£º

£¨1£©SecondaryNameNode»á¶¨ÆÚºÍNameNode ͨÐÅ£¬ÇëÇóÆäֹͣʹÓÃEditLogÎļþ£¬ÔÝʱ½«ÐµÄд²Ù×÷дµ½Ò»¸öеÄÎļþedit.newÉÏÀ´£¬Õâ¸ö²Ù×÷ÊÇ˲¼äÍê³É£¬ÉϲãдÈÕÖ¾µÄº¯ÊýÍêÈ«¸Ð¾õ²»µ½²î±ð¡£

£¨2£©SecondaryNameNodeͨ¹ýHTTP GET·½Ê½´ÓNameNodeÉÏ»ñÈ¡µ½FsImageºÍEditLogÎļþ£¬²¢ÏÂÔØµ½±¾µØµÄÏàӦĿ¼Ï¡£

£¨3£©SecondaryNameNode½«ÏÂÔØÏÂÀ´µÄFsImageÔØÈëµ½Äڴ棬ȻºóÒ»ÌõÒ»ÌõµØÖ´ÐÐEditLogÎļþÖеĸ÷Ïî¸üвÙ×÷£¬Ê¹µÃÄÚ´æÖÐµÄ FsImage±£³Ö×îУ»Õâ¸ö¹ý³Ì¾ÍÊÇEditLogºÍ FsImageÎļþºÏ²¢¡£

£¨4£©SecondaryNameNodeÖ´ÐÐÍ꣨3£©²Ù×÷Ö®ºó£¬»áͨ¹ýpost·½Ê½½«ÐµÄFsImageÎļþ·¢Ë͵½NameNode½ÚµãÉÏ ¡£

£¨5£©NameNode½«´ÓSecondaryNameNode½ÓÊÕµ½µÄеÄFsImageÌæ»»¾ÉµÄFsImageÎļþ£¬ ͬʱ½«edit.newÌæ»»EditLogÎļþ£¬Í¨¹ýÕâ¸ö¹ý³ÌEditLog¾Í±äСÁË¡£

Êý¾Ý½Úµã£¨DataNode£©

Êý¾Ý½ÚµãÊÇ·Ö²¼Ê½ÎļþϵͳHDFSµÄ¹¤×÷½Úµã£¬¸ºÔðÊý¾ÝµÄ´æ´¢ºÍ¶ÁÈ¡£¬»á¸ù¾Ý¿Í »§¶Ë»òÕßÊÇÃû³Æ½ÚµãµÄµ÷¶ÈÀ´½øÐÐÊý¾ÝµÄ´æ´¢ºÍ¼ìË÷£¬²¢ÇÒÏòÃû³Æ½Úµã¶¨ÆÚ·¢ËÍ×Ô¼º Ëù´æ´¢µÄ¿éµÄÁÐ±í ¡£

ÿ¸öÊý¾Ý½ÚµãÖеÄÊý¾Ý»á±»±£´æÔÚ¸÷×Ô½ÚµãµÄ±¾µØLinuxÎļþϵͳÖС£

4¡¢HDFSÌåϵ½á¹¹

¸ÅÊö

HDFS²ÉÓÃÁËÖ÷´Ó£¨Master/Slave£©½á¹¹Ä£ÐÍ£¬Ò»¸öHDFS¼¯Èº°üÀ¨Ò»¸öÃû³Æ½Úµã£¨ NameNode£©ºÍÈô¸É¸öÊý¾Ý½Úµã£¨DataNode£©¡£Ãû³Æ½Úµã×÷ΪÖÐÐÄ·þÎñÆ÷£¬ ¸ºÔð¹ÜÀíÎļþϵͳµÄÃüÃû¿Õ¼ä¼°¿Í»§¶Ë¶ÔÎļþµÄ·ÃÎÊ¡£¼¯ÈºÖеÄÊý¾Ý½ÚµãÒ»°ãÊÇÒ»¸ö½ÚµãÔËÐÐ Ò»¸öÊý¾Ý½Úµã½ø³Ì£¬¸ºÔð´¦ÀíÎļþϵͳ¿Í»§¶ËµÄ¶Á/дÇëÇó£¬ÔÚÃû³Æ½ÚµãµÄͳһµ÷¶ÈϽøÐÐÊý¾Ý ¿éµÄ´´½¨¡¢É¾³ýºÍ¸´ÖƵȲÙ×÷¡£Ã¿¸öÊý¾Ý½ÚµãµÄÊý¾Ýʵ¼ÊÉÏÊDZ£´æÔÚ±¾µØLinuxÎļþϵͳÖеġ£

HDFSÃüÃû¿Õ¼ä¹ÜÀí

HDFSµÄÃüÃû¿Õ¼ä°üº¬Ä¿Â¼¡¢ÎļþºÍ¿é¡£

ÔÚHDFS1.0Ìåϵ½á¹¹ÖУ¬ÔÚÕû¸öHDFS¼¯ÈºÖÐÖ»ÓÐÒ»¸öÃüÃû¿Õ¼ä£¬²¢ÇÒÖ»ÓÐΨһһ¸öÃû³Æ½Úµã£¬¸Ã½Úµã¸ºÔð¶ÔÕâ¸öÃüÃû¿Õ¼ä½øÐйÜÀí ¡£

HDFSʹÓõÄÊÇ´«Í³µÄ·Ö¼¶ÎļþÌåϵ£¬Òò´Ë£¬Óû§¿ÉÒÔÏñʹÓÃÆÕͨÎļþϵͳһÑù£¬´´½¨¡¢É¾³ýĿ¼ºÍÎļþ£¬ÔÚĿ¼¼ä×ªÒÆÎļþ£¬ÖØÃüÃûÎļþµÈ¡£

ͨÐÅЭÒé

HDFSÊÇÒ»¸ö²¿ÊðÔÚ¼¯ÈºÉϵķֲ¼Ê½Îļþϵͳ£¬Òò´Ë£¬ºÜ¶àÊý¾ÝÐèҪͨ¹ýÍøÂç½øÐд«Êä¡£

ËùÓеÄHDFSͨÐÅЭÒé¶¼Êǹ¹½¨ÔÚTCP/IPЭÒé»ù´¡Ö®Éϵġ£

¿Í»§¶Ëͨ¹ýÒ»¸ö¿ÉÅäÖõĶ˿ÚÏòÃû³Æ½ÚµãÖ÷¶¯·¢ÆðTCPÁ¬½Ó£¬²¢Ê¹Óÿͻ§¶ËЭÒéÓë Ãû³Æ½Úµã½øÐн»»¥¡£

Ãû³Æ½ÚµãºÍÊý¾Ý½ÚµãÖ®¼äÔòʹÓÃÊý¾Ý½ÚµãЭÒé½øÐн»»¥¡£

¿Í»§¶ËÓëÊý¾Ý½ÚµãµÄ½»»¥ÊÇͨ¹ýRPC£¨Remote Procedure Call£©À´ÊµÏֵġ£ÔÚÉè ¼ÆÉÏ£¬Ãû³Æ½Úµã²»»áÖ÷¶¯·¢ÆðRPC£¬¶øÊÇÏìÓ¦À´×Ô¿Í»§¶ËºÍÊý¾Ý½ÚµãµÄRPCÇëÇó¡£

¿Í»§¶Ë

¿Í»§¶ËÊÇÓû§²Ù×÷HDFS×î³£Óõķ½Ê½£¬HDFSÔÚ²¿Êðʱ¶¼ÌṩÁ˿ͻ§¶Ë¡£

HDFS¿Í»§¶ËÊÇÒ»¸ö¿â£¬±©Â¶ÁËHDFSÎļþϵͳ½Ó¿Ú£¬ÕâЩ½Ó¿ÚÒþ²ØÁËHDFSʵÏÖÖеĴ󲿷ָ´ÔÓÐÔ¡£

ÑϸñÀ´Ëµ£¬¿Í»§¶Ë²¢²»ËãÊÇHDFSµÄÒ»²¿·Ö¡£

¿Í»§¶Ë¿ÉÒÔÖ§³Ö´ò¿ª¡¢¶ÁÈ¡¡¢Ð´ÈëµÈ³£¼ûµÄ²Ù×÷£¬²¢ÇÒÌṩÁËÀàËÆShellµÄÃüÁîÐз½Ê½À´·ÃÎÊHDFSÖеÄÊý¾Ý

´ËÍ⣬HDFSÒ²ÌṩÁËJava API£¬×÷ΪӦÓóÌÐò·ÃÎÊÎļþϵͳµÄ¿Í»§¶Ë±à³Ì½Ó¿Ú¡£

HDFSÌåϵ½á¹¹µÄ¾ÖÏÞÐÔ

HDFSÖ»ÉèÖÃΨһһ¸öÃû³Æ½Úµã£¬ÕâÑù×öËäÈ»´ó´ó¼ò»¯ÁËϵͳÉè¼Æ£¬µ«Ò²´øÀ´ÁËһЩ Ã÷ÏԵľÖÏÞÐÔ£¬¾ßÌåÈçÏ£º

£¨1£©ÃüÃû¿Õ¼äµÄÏÞÖÆ£ºÃû³Æ½ÚµãÊDZ£´æÔÚÄÚ´æÖеģ¬Òò´Ë£¬Ãû³Æ½ÚµãÄܹ»ÈÝÄÉµÄ ¶ÔÏó£¨Îļþ¡¢¿é£©µÄ¸öÊý»áÊܵ½ÄÚ´æ¿Õ¼ä´óСµÄÏÞÖÆ¡£

£¨2£©ÐÔÄܵį¿¾±£ºÕû¸ö·Ö²¼Ê½ÎļþϵͳµÄÍÌÍÂÁ¿£¬ÊÜÏÞÓÚµ¥¸öÃû³Æ½ÚµãµÄÍÌÍÂÁ¿¡£

£¨3£©¸ôÀëÎÊÌ⣺ÓÉÓÚ¼¯ÈºÖÐÖ»ÓÐÒ»¸öÃû³Æ½Úµã£¬Ö»ÓÐÒ»¸öÃüÃû¿Õ¼ä£¬Òò´Ë£¬ÎÞ·¨ ¶Ô²»Í¬Ó¦ÓóÌÐò½øÐиôÀë¡£

£¨4£©¼¯ÈºµÄ¿ÉÓÃÐÔ£ºÒ»µ©Õâ¸öΨһµÄÃû³Æ½Úµã·¢Éú¹ÊÕÏ£¬»áµ¼ÖÂÕû¸ö¼¯Èº±äµÃ²» ¿ÉÓá£

5¡¢HDFS´æ´¢Ô­Àí

ÈßÓàÊý¾Ý±£´æ

×÷Ϊһ¸ö·Ö²¼Ê½Îļþϵͳ£¬ÎªÁ˱£Ö¤ÏµÍ³µÄÈÝ´íÐԺͿÉÓÃÐÔ£¬HDFS²ÉÓÃÁ˶ั ±¾·½Ê½¶ÔÊý¾Ý½øÐÐÈßÓà´æ´¢£¬Í¨³£Ò»¸öÊý¾Ý¿éµÄ¶à¸ö¸±±¾»á±»·Ö²¼µ½²»Í¬µÄÊý¾Ý½Úµã ÉÏ£¬ÈçͼËùʾ£¬Êý¾Ý¿é1±»·Ö±ð´æ·Åµ½Êý¾Ý½ÚµãAºÍCÉÏ£¬Êý¾Ý¿é2±»´æ·ÅÔÚÊý¾Ý½Ú µãAºÍBÉÏ¡£

ÕâÖֶั±¾·½Ê½¾ßÓÐÒÔϼ¸¸öÓŵ㣺

£¨1£©¼Ó¿ìÊý¾Ý´«ÊäËÙ¶È¡£

£¨2£©ÈÝÒ×¼ì²éÊý¾Ý´íÎó¡£

£¨3£©±£Ö¤Êý¾Ý¿É¿¿ÐÔ¡£

Êý¾Ý´æÈ¡²ßÂÔ

Êý¾Ý´æ·Å

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

µÚÒ»¸ö¸±±¾£º·ÅÖÃÔÚÉÏ´«ÎļþµÄÊý¾Ý½Úµã£»Èç¹ûÊǼ¯ÈºÍâÌá½»£¬ÔòËæ»úÌôѡһ̨´ÅÅÌ ²»Ì«Âú¡¢CPU²»Ì«Ã¦µÄ½Úµã¡£

µÚ¶þ¸ö¸±±¾£º·ÅÖÃÔÚÓëµÚÒ»¸ö¸±±¾²»Í¬µÄ»ú¼ÜµÄ½ÚµãÉÏ¡£

µÚÈý¸ö¸±±¾£ºÓëµÚÒ»¸ö¸±±¾Ïàͬ»ú¼ÜµÄÆäËû½ÚµãÉÏ¡£

¸ü¶à¸±±¾£ºËæ»ú½Úµã¡£

Êý¾Ý¶ÁÈ¡

HDFSÌṩÁËÒ»¸öAPI¿ÉÒÔÈ·¶¨Ò»¸öÊý¾Ý½ÚµãËùÊôµÄ»ú¼ÜID£¬¿Í»§¶ËÒ²¿ÉÒÔµ÷ÓÃAPI »ñÈ¡×Ô¼ºËùÊôµÄ»ú¼ÜID¡£

µ±¿Í»§¶Ë¶ÁÈ¡Êý¾Ýʱ£¬´ÓÃû³Æ½Úµã»ñµÃÊý¾Ý¿é²»Í¬¸±±¾µÄ´æ·ÅλÖÃÁÐ±í£¬ÁбíÖаü º¬Á˸±±¾ËùÔÚµÄÊý¾Ý½Úµã£¬¿ÉÒÔµ÷ÓÃAPIÀ´È·¶¨¿Í»§¶ËºÍÕâЩÊý¾Ý½ÚµãËùÊôµÄ»ú¼ÜID£¬ µ±·¢ÏÖij¸öÊý¾Ý¿é¸±±¾¶ÔÓ¦µÄ»ú¼ÜIDºÍ¿Í»§¶Ë¶ÔÓ¦µÄ»ú¼ÜIDÏàͬʱ£¬¾ÍÓÅÏÈÑ¡Ôñ¸Ã¸±±¾¶ÁÈ¡Êý¾Ý£¬Èç¹ûûÓз¢ÏÖ£¬¾ÍËæ»úÑ¡ÔñÒ»¸ö¸±±¾¶ÁÈ¡Êý¾Ý¡£

Êý¾Ý´íÎóÓë»Ö¸´

HDFS¾ßÓнϸߵÄÈÝ´íÐÔ£¬¿ÉÒÔ¼æÈÝÁ®¼ÛµÄÓ²¼þ£¬Ëü°ÑÓ²¼þ³ö´í¿´×÷Ò»ÖÖ³£Ì¬£¬ ¶ø²»ÊÇÒì³££¬²¢Éè¼ÆÁËÏàÓ¦µÄ»úÖÆ¼ì²âÊý¾Ý´íÎóºÍ½øÐÐ×Ô¶¯»Ö¸´£¬Ö÷Òª°üÀ¨ÒÔϼ¸ÖÖ ÇéÐΣºÃû³Æ½Úµã³ö´í¡¢Êý¾Ý½Úµã³ö´íºÍÊý¾Ý³ö´í¡£

Ãû³Æ½Úµã³ö´í

Ãû³Æ½Úµã±£´æÁËËùÓеÄÔªÊý¾ÝÐÅÏ¢£¬ÆäÖУ¬×îºËÐĵÄÁ½´óÊý¾Ý½á¹¹ÊÇFsImageºÍEditlog£¬Èç¹ûÕâÁ½¸öÎļþ·¢ÉúË𻵣¬ÄÇôÕû¸öHDFSʵÀý½«Ê§Ð§¡£Òò´Ë£¬HDFSÉèÖÃÁ˱¸·Ý»úÖÆ£¬°ÑÕâЩºËÐÄÎļþͬ²½¸´ÖƵ½±¸·Ý·þÎñÆ÷SecondaryNameNodeÉÏ¡£µ±Ãû³Æ½Úµã³ö´íʱ£¬¾Í¿ÉÒÔ¸ù¾Ý±¸·Ý·þÎñÆ÷SecondaryNameNodeÖеÄFsImageºÍEditlogÊý¾Ý½øÐлָ´¡£

Êý¾Ý½Úµã³ö´í

ÿ¸öÊý¾Ý½Úµã»á¶¨ÆÚÏòÃû³Æ½Úµã·¢ËÍ¡°ÐÄÌø¡±ÐÅÏ¢£¬ÏòÃû³Æ½Úµã±¨¸æ×Ô¼ºµÄ״̬¡£

µ±Êý¾Ý½Úµã·¢Éú¹ÊÕÏ£¬»òÕßÍøÂç·¢Éú¶ÏÍøÊ±£¬Ãû³Æ½Úµã¾ÍÎÞ·¨ÊÕµ½À´×ÔһЩÊý¾Ý½ÚµãµÄÐÄÌøÐÅÏ¢£¬Õâʱ£¬ÕâЩÊý¾Ý½Úµã¾Í»á±»±ê¼ÇΪ¡°å´»ú¡±£¬½ÚµãÉÏÃæµÄËùÓÐÊý¾Ý¶¼»á±»±ê¼ÇΪ¡°²»¿É¶Á¡±£¬Ãû³Æ½Úµã²»»áÔÙ¸øËüÃÇ·¢ËÍÈκÎI/OÇëÇó¡£

Õâʱ£¬ÓпÉÄܳöÏÖÒ»ÖÖÇéÐΣ¬¼´ÓÉÓÚһЩÊý¾Ý½ÚµãµÄ²»¿ÉÓ㬻ᵼÖÂһЩÊý¾Ý¿éµÄ¸±±¾ÊýÁ¿Ð¡ÓÚÈßÓàÒò×Ó¡£

Ãû³Æ½Úµã»á¶¨ÆÚ¼ì²éÕâÖÖÇé¿ö£¬Ò»µ©·¢ÏÖij¸öÊý¾Ý¿éµÄ¸±±¾ÊýÁ¿Ð¡ÓÚÈßÓàÒò×Ó£¬¾Í»áÆô¶¯Êý¾ÝÈßÓà¸´ÖÆ£¬ÎªËüÉú³Éеĸ±±¾¡£

HDFSºÍÆäËü·Ö²¼Ê½ÎļþϵͳµÄ×î´óÇø±ð¾ÍÊÇ¿ÉÒÔµ÷ÕûÈßÓàÊý¾ÝµÄλÖá£

Êý¾Ý³ö´í

ÍøÂç´«ÊäºÍ´ÅÅÌ´íÎóµÈÒòËØ£¬¶¼»áÔì³ÉÊý¾Ý´íÎó¡£

¿Í»§¶ËÔÚ¶ÁÈ¡µ½Êý¾Ýºó£¬»á²ÉÓÃmd5ºÍsha1¶ÔÊý¾Ý¿é½øÐÐУÑ飬ÒÔÈ·¶¨¶ÁÈ¡µ½ÕýÈ·µÄÊý¾Ý¡£

ÔÚÎļþ±»´´½¨Ê±£¬¿Í»§¶Ë¾Í»á¶Ôÿһ¸öÎļþ¿é½øÐÐÐÅϢժ¼£¬²¢°ÑÕâЩÐÅϢдÈ뵽ͬһ¸ö·¾¶µÄÒþ²ØÎļþÀïÃæ¡£

µ±¿Í»§¶Ë¶ÁÈ¡ÎļþµÄʱºò£¬»áÏȶÁÈ¡¸ÃÐÅÏ¢Îļþ£¬È»ºó£¬ÀûÓøÃÐÅÏ¢Îļþ¶Ôÿ¸ö¶Á È¡µÄÊý¾Ý¿é½øÐÐУÑ飬Èç¹ûУÑé³ö´í£¬¿Í»§¶Ë¾Í»áÇëÇóµ½ÁíÍâÒ»¸öÊý¾Ý½Úµã¶ÁÈ¡¸ÃÎļþ¿é£¬²¢ÇÒÏòÃû³Æ½Úµã±¨¸æÕâ¸öÎļþ¿éÓдíÎó£¬Ãû³Æ½Úµã»á¶¨ÆÚ¼ì²é²¢ÇÒÖØÐ¸´ÖÆÕâ¸ö¿é¡£

6¡¢HDFS¶Áд¹ý³Ì

FileSystemÊÇÒ»¸öͨÓÃÎļþϵͳµÄ³éÏó»ùÀ࣬¿ÉÒÔ±»·Ö²¼Ê½Îļþϵͳ¼Ì³Ð£¬ËùÓпÉÄÜʹÓà HadoopÎļþϵͳµÄ´úÂ룬¶¼ÒªÊ¹ÓÃÕâ¸öÀà¡£

HadoopΪFileSystemÕâ¸ö³éÏóÀàÌṩÁ˶àÖÖ¾ßÌåʵÏÖ¡£

DistributedFileSystem¾ÍÊÇFileSystemÔÚHDFSÎļþϵͳÖеľßÌåʵÏÖ¡£

FileSystemµÄopen()·½·¨·µ»ØµÄÊÇÒ»¸öÊäÈëÁ÷FSDataInputStream¶ÔÏó£¬ÔÚHDFSÎļþϵͳÖÐ £¬¾ßÌåµÄÊäÈëÁ÷¾ÍÊÇDFSInputStream£»FileSystemÖеÄcreate()·½·¨·µ»ØµÄÊÇÒ»¸öÊä³öÁ÷ FSDataOutputStream¶ÔÏó£¬ÔÚHDFSÎļþϵͳÖУ¬¾ßÌåµÄÊä³öÁ÷¾ÍÊÇDFSOutputStream¡£

Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
FSDataInputStream in = fs.open(new Path(uri));
FSDataOutputStream out = fs.create(new Path(uri));

±¸×¢£º´´½¨Ò»¸öConfiguration¶ÔÏóʱ£¬Æä¹¹Ôì·½·¨»áĬÈϼÓÔØ¹¤³ÌÏîÄ¿ÏÂÁ½¸öÅäÖÃÎļþ£¬·Ö±ðÊÇ hdfs-site.xmlÒÔ¼°core-site.xml£¬ÕâÁ½¸öÎļþÖлáÓзÃÎÊHDFSËùÐèµÄ²ÎÊýÖµ£¬Ö÷ÒªÊÇ fs.defaultFS£¬Ö¸¶¨ÁËHDFSµÄµØÖ·£¨±ÈÈçhdfs://localhost:9000£©£¬ÓÐÁËÕâ¸öµØÖ·¿Í»§¶Ë¾Í¿ÉÒÔ Í¨¹ýÕâ¸öµØÖ··ÃÎÊHDFSÁË¡£

¶ÁÈ¡Îļþ

import java.io.BufferedReader;
import java.io.InputStreamReader ;
import org.apache.hadoop.conf.Configuration ;
import org.apache.hadoop.fs.FileSystem ;
import org.apache.hadoop.fs.Path ;
import org.apache.hadoop.fs.FSDataInputStream ;
public class Chapter3 {
public static void main(String[] args) {
try {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
Path filename = new Path (¡°hdfs://localhost: 9000/user/hadoop/test.txt");
FSDataInputStream is = fs.open(filename);
BufferedReader d = new BufferedReader (new InputStreamReader(is));
String content = d.readLine(); //¶ÁÈ¡ÎļþÒ»ÐÐ
System.out.println(content);
d.close(); //¹Ø±ÕÎļþ
fs.close(); //¹Ø±Õhdfs
} catch (Exception e) {
e.printStackTrace();
}
}
}

дÈëÎļþ

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.Path;
public class Chapter3 {
public static void main(String[] args) {
try {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
byte[] buff = "Hello world".getBytes(); // ҪдÈëµÄÄÚÈÝ
String filename = " hdfs://localhost: 9000/user/hadoop/test.txt "; //ҪдÈëµÄÎļþÃû
FSDataOutputStream os = fs.create(new Path(filename));
os.write(buff,0,buff.length);
System.out.println("Create:"+ filename);
} catch (Exception e) {
e.printStackTrace();
}
}
}

7¡¢HDFS±à³Ìʵ¼ù

Ê×ÏÈÆô¶¯hadoop

$ cd /usr/local/hadoop

$ ./bin/hdfs namenode -format # ¸ñʽ»¯hdfsÎļþϵͳ£¬³õʼ»¯Ê±Ê¹Óã¬Ö®Ç°Ö´Ðкó¾Í²»ÐèÔÙÖ´ÐÐ

$ ./bin/start-dfs.sh

³£ÓÃÃüÁî

HDFSÓкܶàshellÃüÁÆäÖУ¬fsÃüÁî¿ÉÒÔ˵ÊÇHDFS×î³£ÓõÄÃüÁî¡£ÀûÓøÃÃüÁî¿ÉÒÔ ²é¿´HDFSÎļþϵͳµÄĿ¼½á¹¹¡¢ÉÏ´«ºÍÏÂÔØÊý¾Ý¡¢´´½¨ÎļþµÈ¡£

¸ÃÃüÁîµÄÓ÷¨Îª£º hadoop fs [genericOptions] [commandOptions]

±¸×¢£ºHadoopÖÐÓÐÈýÖÖShellÃüÁʽ£º

hadoop fsÊÊÓÃÓÚÈκβ»Í¬µÄÎļþϵͳ£¬±ÈÈç±¾µØÎļþϵͳºÍHDFSÎļþϵͳ¡£

hadoop dfsÖ»ÄÜÊÊÓÃÓÚHDFSÎļþϵͳ¡£

hdfs dfs¸úhadoop dfsµÄÃüÁî×÷ÓÃÒ»Ñù£¬Ò²Ö»ÄÜÊÊÓÃÓÚHDFSÎļþϵͳ¡£

ʵÀý

hadoop fs -ls :ÏÔʾָ¶¨µÄÎļþµÄÏêϸÐÅÏ¢

hadoop fs -mkdir :´´½¨Ö¸¶¨µÄÎļþ¼Ð

ÀýÖС°./¡±±íʾ¡°/usr/local/hadoop/bin¡±Â·¾¶¡£

hadoop fs -cat :½«Ö¸¶¨µÄÎļþµÄÄÚÈÝÊä³öµ½±ê×¼Êä³ö£¨stdout£©

hadoop fs -copyFromLocal :½«±¾µØÔ´Îļþ¸´ÖƵ½Â·¾¶Ö¸¶¨µÄÎļþ»òÎļþ¼ÐÖÐ

WEB¹ÜÀí½çÃæ

http://ip:50070,ĬÈ϶˿Ú50070

ÀûÓÃJava APIÓëHDFS½øÐн»»¥

mavenÏîÄ¿ÖÐÒýÈë

дһ¸öFileSystem»ñÈ¡¹¤¾ßÀࣺ

ʵÀý£ºÀûÓÃhadoop µÄjava api¼ì²âα·Ö²¼Ê½ÎļþϵͳHDFSÉÏÊÇ·ñ´æÔÚij¸öÎļþ£¿

ÆäÖÐ172.20.10.6ÊÇÎÒhadoop»úÆ÷ÉϵÄipµØÖ·¡£

ÑéÖ¤Ò»ÏÂÊÇ·ñ´æÔÚ£º

ʵÀý£ºÐ´HDFSÉϵÄÎļþ£¿

ʵÀý£º¶ÁHDFSÉϵÄÎļþ£¿

³£¼û´íÎó£º

java.net.ConnectException

Connection refused: no further information

´ËÀý»·¾³£ºwindowsÖа²×°ÐéÄâ»úÔËÐÐHadoop¡£ÓÉÓÚhadoopÖÐcore-site.xmlÖÐÉèÖõÄfs.defaultFSÊÇhdfs://localhost:9000£¬ËùÒÔ±¨´í£¬Ó¦¸Ã½«lcoalhostÌæ»»³É×Ô¼ºÐéÄâ»ú·ÖÅäµÄipµØÖ·£¬Ö®ºóÖØÆôhadoop¡£

¼ÇµÃ¿ªÆô¶ÔÓ¦µÄÐéÄâ»ú¶Ë¿Ú£¬¶Ë¿Ú먦Æô»á±¨´í¡£¡¶CentOS7 Öпª·Å¶Ë¿Ú¡·

org.apache.hadoop .security.AccessControlException

Permission denied: user=22113, access=WRITE, inode="/user/hadoop" :hadoop:supergroup:drwxr-xr-x

ûÓÐдÈëȨÏÞ£¬Ó¦¸ÃÉèÖøÃÎļþ¼ÐȨÏÞ¡£

ÎļþȨÏÞÓɶÁ¡¢¿ÉÖ´Ðбä³É¶Á¡¢Ð´¡¢¿ÉÖ´ÐС£ÏÖÔÚ/user/22113Îļþ¼Ð½Ô¿ÉÒÔдÈëÄÚÈÝÁË¡£

org.apache.hadoop.ipc .RemoteException(java.io.IOException)

File /user/22113/test.txt could only be replicated to 0 nodes instead of minReplication (=1). There are 1 datanode(s) running and 1 node(s) are excluded in this operation.

Õâ¸ö´íÎó´ÓÍøÉÏÕÒÁ˺ܾ㬶¼Ã»½â¾ö¡£ÓÐÈË˵ÊÇDataNodeûÆô¶¯£¬µ«ÊÇÎÒÓÃjpsÃüÁî²é¿´£¬·¢ÏÖDataNodeÊÇÔÚÔËÐС£»¹ÓÐÈË˵ÊÇformat¶à´ÎNameNodeÓëDataNodeµ¼Öµģ¬¿ÉÊÇÕâ¶¼²»ÊÇÔ­Òò¡£ºóÀ´Í»È»ÏëÆð¹Ø±ÕÐéÄâ»ú·À»ðǽ£¬·¢Ï־ͿÉÒÔÁË£¬¹¦ÄÜÕý³£ÔË×÷£¬¾ßÌåÔ­Òò´ý·ÖÎö¡£

±¾ÎľͽéÉܵ½ÕâÀïÁË¡£

 

 
   
2684 ´Îä¯ÀÀ       30
Ïà¹ØÎÄÕÂ

»ùÓÚ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
ÖйúµçÐÅ ´óÊý¾Ýʱ´úÓëÏÖ´úÆóÒµµÄÊý¾Ý»¯ÔËӪʵ¼ù