±à¼ÍƼö: |
±¾ÎÄÀ´×Ôsegmentfault
£¬ÎÄÕÂÖ÷Òª½éÉÜÁËHDFSµÄ¹¤×÷ģʽ£¬¸±±¾´æ·Å£¬datanodeÊý¾Ý¸±±¾´æ·Å´ÅÅÌÑ¡Ôñ²ßÂÔ£¬HDFSͨѶÐÒéµÈÏà¹ØÄÚÈÝ£¬Ï£ÍûÄܶÔÄúÓÐËù°ïÖú¡£ |
|
hdfsÊÇhadoopµÄ·Ö²¼Ê½Îļþϵͳ£¬¼´Hadoop Distributed
Filesystem¡£ÏÂÃæÖ÷Òª½²ÏÂHDFSÉè¼ÆÖеıȽÏÖØÒªµÄµã£¬Ê¹¶ÁÕßÄÜͨ¹ý¼ò¶ÌµÄÎÄÕÂÒ»¿úHDFSµÄȫò£¬Êʺ϶ÔHDFSÓÐÒ»µãÁ˽⣬µ«ÊǶÔHDFSÓָе½À§»óµÄ³õѧÕß¡£±¾ÎÄÖ÷Òª²Î¿¼µÄÊÇhadoop
3.0µÄ¹Ù·½Îĵµ¡£
µ±Êý¾Ý¼¯µÄ´óС³¬¹ýÁËһ̨ÎïÀí»úËùÄÜ´æ´¢µÄÄÜÁ¦Ê±£¬¾ÍÐèÒª½«Ëü½øÐзÖÇø²¢´æ´¢µ½Èô¸É²»Í¬µÄ¶ÀÁ¢µÄ¼ÆËã»úÉÏ£¬ÆäÖйÜÀí¿ç¶ą̀¼ÆËã»ú´æ´¢µÄÎļþϵͳ³ÆÎª·Ö²¼Ê½Îļþϵͳ¡£
Ŀ¼
ʹÓÃHDFSµÄ³¡¾°
HDFSµÄ¹¤×÷ģʽ
ÎļþϵͳÃüÃû¿Õ¼ä£¨namespace£©
Êý¾Ý¸´ÖÆ
ÎļþϵͳԪÊý¾ÝµÄ³Ö¾Ã»¯
ͨѶÐÒé
½¡×³ÐÔ
Êý¾Ý×éÖ¯
¿É·ÃÎÊÐÔ
´æ´¢¿Õ¼ä»ØÊÕ
1¡¢Ê¹ÓÃHDFSµÄ³¡¾°
HDFSÊʺÏÓÚÒÔÁ÷ʽÊý¾Ý·ÃÎÊģʽÀ´´æ´¢³¬´óµÄÎļþ¡£¼´Ò»´ÎдÈ룬¶à´Î¶ÁÈ¡£¬ÔÚÊý¾Ý¼¯Éϳ¤Ê±¼ä½øÐи÷ÖÖ·ÖÎö£¬Ã¿´Î·ÖÎö¶¼Éæ¼°¸ÃÊý¾Ý¼¯Êý¾ÝµÄ´ó²¿·ÖÉõÖÁÈ«²¿£¬¶ÔÓÚ³¬´óÎļþ£¬hadoopĿǰÒÔÖ§³Ö´æ´¢PB¼¶Êý¾Ý¡£
HDFS²¢²»ÊʺÏÒªÇóµÍʱ¼äÑÓ³ÙÊý¾Ý·ÃÎʵÄÓ¦Óã¬ÒòΪHDFSÊÇΪ¸ßÊý¾ÝÍÌÍÂÁ¿Ó¦ÓöøÓÅ»¯µÄ£¬Õâ¾ÍÓпÉÄÜÒÔʱ¼äÑÓ³Ù´óΪ´ú¼Û¡£
HDFSÎļþϵͳËùÄÜ´æ´¢µÄÎļþ×ÜÊýÊÜÏÞÓÚnamenodeµÄÄÚ´æÈÝÁ¿£¬¸ù¾Ý¾Ñ飬100°ÙÍòµÄÎļþ£¬ÇÒÿ¸öÎļþÕ¼Ò»¸öÊý¾Ý¿é£¬ÄÇÖÁÉÙÐèÒª300MBµÄÄÚ´æ¡£
ĿǰhadoopÎļþ¿ÉÄÜÖ»ÓÐÒ»¸öwriter,¶øÇÒд²Ù×÷×ÜÊǽ«Êý¾ÝÌí¼ÓÔÚÎļþĩ⣬²»Ö§³ÖÔÚÎļþµÄÈÎÒâλÖýøÐÐÐ޸ġ£
Ïà¶ÔÓÚÆÕͨÎļþϵͳµÄÊý¾Ý¿é£¬HDFSÒ²ÓпéµÄ¸ÅÄĬÈÏÊÇ128MB£¬HDFSÉϵÄÎļþÒ²±»»®·Ö³É¿é´óСµÄ¶à¸ö·Ö¿é£¬×÷Ϊ¶ÀÁ¢µÄ´æ´¢µ¥Ôª£¬²»¹ýHDFSÖÐСÓÚÒ»¸ö¿é´óСµÄÎļþ²»»áÕ¼¾ÝÕû¸ö¿éµÄ¿Õ¼ä¡£Èç¹ûûÓÐÌØ±ðÖ¸³ö£¬ÎÄÖÐÌáµ½µÄ¿éÌØÖ¸HDFSµÄ¿é¡£
ΪºÎHDFSµÄ¿éÈç´ËÖ®´ó£¬ÆäÄ¿µÄÊÇΪÁË×îС»¯Ñ°Ö·¿ªÏú¡£Õâ¸öÊýÒ²²»ÄÜÉèÖõĹý´ó£¬mapreduceÖеÄmapÈÎÎñͨ³£Ò»´ÎÖ»´¦ÀíÒ»¸ö¿éÖеÄÊý¾Ý£¬Òò´ËÈç¹ûÈÎÎñÊýÌ«ÉÙ£¬×÷ÒµµÄÔËÐÐËٶȾͻá±È½ÏÂý¡£
2¡¢HDFSµÄ¹¤×÷ģʽ
HDFS²ÉÓÃmaster/slave¼Ü¹¹£¬¼´Ò»¸önamenode(¹ÜÀíÕß)¶à¸ödatanode(¹¤×÷Õß)¡£
namenode¸ºÔð¹ÜÀíÎļþϵͳµÄÃüÃû¿Õ¼ä¡£Î¬»¤×ÅÎļþϵͳÊ÷ºÍÕû¸öÊ÷ÄÚËùÓеÄÎļþºÍĿ¼£¬ÕâЩÐÅÏ¢¶¼±£´æÔÚÁ½¸öÎļþÖУ¬ÃüÃû¿Õ¼ä¾µÏñÎļþºÍ±à¼ÈÕÖ¾Îļþ¡£namenodeÒ²¼Ç¼ÁËÿ¸öÎļþÖи÷¸ö¿éËùÔÚµÄÊý¾Ý½ÚµãÐÅÏ¢¡£datanodeÊÇÎļþϵͳµÄ¹¤×÷½Úµã£¬ËüÃÇÐèÒª´æ´¢²¢¼ìË÷Êý¾Ý¿é£¨Êܿͻ§¶Ë»ònamenodeµ÷¶È£©£¬²¢¶¨ÆÚÏònamenode·¢ËÍËüÃÇËù´æ´¢µÄ¿éµÄÁÐ±í¡£
Èç¹ûûÓÐnamenode,Îļþϵͳ½«ÎÞ·¨Ê¹Óã¬ÒòΪÎÒÃDz»ÖªµÀÈçºÎ¸ù¾ÝdatanodeµÄ¿éÖØ½¨Îļþ£¬ËùÒÔ¶Ônamenode½øÐÐÈÝ´íÊǷdz£ÖØÒªµÄ¡£Îª´ËhadoopÌṩÁËÁ½ÖÖ»úÖÆ¡£
µÚÒ»ÖÖ»úÖÆÊDZ¸·ÝÄÇЩ×é³ÉÎļþϵͳԪÊý¾Ý³Ö¾Ã״̬µÄÎļþ¡£Ò»°ã£¬ÔÚ½«³Ö¾Ã»¯ÎļþдÈë±¾µØ´ÅÅ̵Äͬʱ£¬Ð´ÈëÔ¶³Ì¹ÒÔØµÄNFS¡£
µÚ¶þÖÖ·½·¨ÊÇÔËÐÐÒ»¸ö¸¨Öúnamenode£¬Õâ¸ö¸¨Öúnamenode¶¨ÆÚͨ¹ý±à¼ÈÕÖ¾ºÏ²¢ÃüÃû¿Õ¼ä¾µÏñ£¬²¢ÔÚ±¾µØ±£´æºÏ²¢ºóµÄÃüÃû¿Õ¼ä¾µÏñµÄ¸±±¾£¬ÔÚnamenode·¢Éú¹ÊÕÏʱÆôÓᣵ«ÊÇÔÚÖ÷½ÚµãʧЧʱ£¬ÄÑÃâ»á¶ªÊ§²¿·ÖÊý¾Ý£¬Õâʱ¿ÉÒÔ°Ñ´æ´¢ÔÚNFSµÄnamenodeÔªÊý¾Ý¸´ÖƵ½¸¨ÖúµÄnamenodeÉÏ×÷ΪеÄnamenodeÔËÐС£ÕâÆäÖÐÉæ¼°µ½¹ÊÕÏ×ªÒÆµÄ»úÖÆ¡£ÉÔºó»á×öÒ»µã·ÖÎö¡£
3¡¢ÎļþϵͳÃüÃû¿Õ¼ä£¨namespace£©
HDFSÖ§³Ö´«Í³µÄ²ã´ÎÐÍÎļþ×éÖ¯½á¹¹¡£Óû§»òÕßÓ¦ÓóÌÐò¿ÉÒÔ´´½¨Ä¿Â¼£¬È»ºó½«Îļþ±£´æÔÚÕâЩĿ¼Àï¡£
ÎļþϵͳÃû×Ö¿Õ¼äµÄ²ã´Î½á¹¹ºÍ´ó¶àÊýÏÖÓеÄÎļþϵͳÀàËÆ£ºÓû§¿ÉÒÔ´´½¨¡¢É¾³ý¡¢Òƶ¯»òÖØÃüÃûÎļþ¡£HDFSÖ§³ÖÓû§´ÅÅÌÅä¶îºÍ·ÃÎÊȨÏÞ¿ØÖÆ£¬Ä¿Ç°»¹²»Ö§³ÖÓ²Á´½ÓºÍÈíÁ´½Ó¡£µ«ÊÇHDFS¼Ü¹¹²¢²»·Á°ÊµÏÖÕâÐ©ÌØÐÔ¡£
Namenode¸ºÔðά»¤ÎļþϵͳµÄÃû×ֿռ䣬ÈκζÔÎļþϵͳÃû×Ö¿Õ¼ä»òÊôÐÔµÄÐ޸ͼ½«±»Namenode¼Ç¼ÏÂÀ´¡£Ó¦ÓóÌÐò¿ÉÒÔÉèÖÃHDFS±£´æµÄÎļþµÄ¸±±¾ÊýÄ¿¡£Îļþ¸±±¾µÄÊýÄ¿³ÆÎªÎļþµÄ¸±±¾ÏµÊý£¬Õâ¸öÐÅÏ¢Ò²ÊÇÓÉNamenode±£´æµÄ¡£
4¡¢Êý¾Ý¸´ÖÆ
HDFS±»Éè¼Æ³ÉÄܹ»ÔÚÒ»¸ö´ó¼¯ÈºÖпç»úÆ÷¿É¿¿µØ´æ´¢³¬´óÎļþ¡£Ëü½«Ã¿¸öÎļþ´æ´¢³ÉһϵÁеÄÊý¾Ý¿é£¬³ýÁË×îºóÒ»¸ö£¬ËùÓеÄÊý¾Ý¿é¶¼ÊÇͬÑù´óСµÄ¡£
ΪÁËÈÝ´í£¬ÎļþµÄËùÓÐÊý¾Ý¿é¶¼»áÓи±±¾¡£Ã¿¸öÎļþµÄÊý¾Ý¿é´óСºÍ¸±±¾ÏµÊý¶¼ÊÇ¿ÉÅäÖõġ£ Ó¦ÓóÌÐò¿ÉÒÔÖ¸¶¨Ä³¸öÎļþµÄ¸±±¾ÊýÄ¿¡£¸±±¾ÏµÊý¿ÉÒÔÔÚÎļþ´´½¨µÄʱºòÖ¸¶¨£¬Ò²¿ÉÒÔÔÚÖ®ºó¸Ä±ä¡£
HDFSÖеÄÎļþ¶¼ÊÇÒ»´ÎÐÔдÈëµÄ£¬²¢ÇÒÑϸñÒªÇóÔÚÈκÎʱºòÖ»ÄÜÓÐÒ»¸öдÈëÕß¡£
NamenodeȫȨ¹ÜÀíÊý¾Ý¿éµÄ¸´ÖÆ£¬ËüÖÜÆÚÐԵشӼ¯ÈºÖеÄÿ¸öDatanode½ÓÊÕÐÄÌøÐźźͿé״̬±¨¸æ(Blockreport)¡£µ±Ò»¸öDatanodeÆô¶¯Ê±£¬Ëü»áɨÃè±¾µØÎļþϵͳ£¬²úÉúÒ»¸öÕâЩ±¾µØÎļþ¶ÔÓ¦µÄËùÓÐHDFSÊý¾Ý¿éµÄÁÐ±í£¬È»ºó×÷Ϊ±¨¸æ·¢Ë͵½Namenode£¬Õâ¸ö±¨¸æ¾ÍÊÇ¿é״̬±¨¸æ¡£½ÓÊÕµ½ÐÄÌøÐźÅÒâζןÃDatanode½Úµã¹¤×÷Õý³£¡£¿é״̬±¨¸æ°üº¬ÁËÒ»¸ö¸ÃDatanodeÉÏËùÓÐÊý¾Ý¿éµÄÁÐ±í¡£
Êý¾Ý¿éÁбí»ñÈ¡¡£²é¿´Êý¾Ý¿éµÄ½¡¿µ×´Ì¬£ºhdfs fsck / -files -block»òÕßhdfs
fsck /

HDFSµÄÊý¾Ý¿é´æ´¢ÔÚÒÔ_blkΪǰ׺ÃûµÄÎļþÖУ¬Ã¿¸ö¿é»¹ÓÐÒ»¸öÏà¹ØµÄ´øÓÐ.metaºó׺µÄÔªÊý¾ÝÎļþ£¬ÔªÊý¾ÝÎļþ°üÀ¨Í·²¿ºÍ¸Ã¿é¸÷Çø¶ÎµÄһϵÁÐУÑéºÍ¡£
µ±Êý¾Ý¿éµÄÊýÁ¿Ôö¼Óµ½Ò»¶¨¹æÄ£Ê±£¬datanode»á´´½¨Ò»¸ö×ÓĿ¼À´´æ·ÅеÄÊý¾Ý¿é¼°ÔªÊý¾ÝÐÅÏ¢¡£Èç¹ûµ±Ç°Ä¿Â¼ÒѾ´æ´¢ÁË64¸ö£¨Í¨¹ýdfs.datanode.numlocksÊôÐÔÉèÖã©Êý¾Ý¿éʱ£¬¾Í´´½¨Ò»¸ö×ÓĿ¼£¬ÖÕ¼«Ä¿±êÊÇÉè¼ÆÒ»¿Å¸ßÉȳöµÄĿ¼Ê÷¡£
Èç¹ûdfs.datanode.data.dirÊôÐÔÖ¸¶¨Á˲»Í¬´ÅÅ̵Ķà¸öĿ¼£¬ÄÇôÊý¾Ý¿é»áÒÔÂÖת£¨round-robin£©µÄ·½Ê½Ð´Èëµ½¸÷¸öĿ¼ÖС£
ÔÚÿ¸ödatanodeÉÏÒ²»áÔËÐÐÒ»¸ö¿éɨÃèÆ÷£¬¶¨ÆÚ¼ì²â±¾½ÚµãÉϵÄËùÓп飬´Ó¶øÔÚ¿Í»§¶Ë¶ÁÈ¡µ½»µ¿é֮ǰ¾Í¼°Ê±µÄ¼ì²âºÍÐÞ¸´»µ¿é¡£Ä¬ÈÏÇé¿öÏÂÿ¸ô3ÖÜ»á²âÊÔ¿éµÄ״̬£¬²¢¶Ô¿ÉÄܵĹÊÕϽøÐÐÐÞ¸´¡£
Óû§¿ÉÒÔͨ¹ýhttp://datanode:50070/blockScannerReport»ñÈ¡¸ÃdatanodeµÄ¿é¼ì²â±¨¸æ¡£
¸±±¾´æ·Å
¸±±¾µÄ´æ·ÅÊÇHDFS¿É¿¿ÐÔºÍÐÔÄܵĹؼü¡£ÓÅ»¯µÄ¸±±¾´æ·Å²ßÂÔÊÇHDFSÇø·ÖÓÚÆäËû´ó²¿·Ö·Ö²¼Ê½ÎļþϵͳµÄÖØÒªÌØÐÔ¡£ÕâÖÖÌØÐÔÐèÒª×ö´óÁ¿µÄµ÷ÓÅ£¬²¢ÐèÒª¾ÑéµÄ»ýÀÛ¡£HDFS²ÉÓÃÒ»ÖÖ³ÆÎª»ú¼Ü¸ÐÖª(rack-aware)µÄ²ßÂÔÀ´¸Ä½øÊý¾ÝµÄ¿É¿¿ÐÔ¡¢¿ÉÓÃÐÔºÍÍøÂç´ø¿íµÄÀûÓÃÂÊ¡£Ä¿Ç°ÊµÏֵĸ±±¾´æ·Å²ßÂÔÖ»ÊÇÔÚÕâ¸ö·½ÏòÉϵĵÚÒ»²½¡£
ͨ¹ýÒ»¸ö»ú¼Ü¸ÐÖªµÄ¹ý³Ì£¬Namenode¿ÉÒÔÈ·¶¨Ã¿¸öDatanodeËùÊôµÄ»ú¼Üid¡£Ò»¸ö¼òµ¥µ«Ã»ÓÐÓÅ»¯µÄ²ßÂÔ¾ÍÊǽ«¸±±¾´æ·ÅÔÚ²»Í¬µÄ»ú¼ÜÉÏ¡£ÕâÑù¿ÉÒÔÓÐЧ·ÀÖ¹µ±Õû¸ö»ú¼ÜʧЧʱÊý¾ÝµÄ¶ªÊ§£¬²¢ÇÒÔÊÐí¶ÁÊý¾ÝµÄʱºò³ä·ÖÀûÓöà¸ö»ú¼ÜµÄ´ø¿í¡£ÕâÖÖ²ßÂÔÉèÖÿÉÒÔ½«¸±±¾¾ùÔÈ·Ö²¼ÔÚ¼¯ÈºÖУ¬ÓÐÀûÓÚµ±×é¼þʧЧÇé¿öϵĸºÔؾùºâ¡£µ«ÊÇ£¬ÒòΪÕâÖÖ²ßÂÔµÄÒ»¸öд²Ù×÷ÐèÒª´«ÊäÊý¾Ý¿éµ½¶à¸ö»ú¼Ü£¬ÕâÔö¼ÓÁËдµÄ´ú¼Û¡£
ÔÚ´ó¶àÊýÇé¿öÏ£¬¸±±¾ÏµÊýÊÇ3£¬HDFSµÄ´æ·Å²ßÂÔÊǽ«Ò»¸ö¸±±¾´æ·ÅÔÚ±¾µØ»ú¼ÜµÄ½ÚµãÉÏ£¬Ò»¸ö¸±±¾·ÅÔÚͬһ»ú¼ÜµÄÁíÒ»¸ö½ÚµãÉÏ£¬×îºóÒ»¸ö¸±±¾·ÅÔÚ²»Í¬»ú¼ÜµÄ½ÚµãÉÏ¡£ÕâÖÖ²ßÂÔ¼õÉÙÁË»ú¼Ü¼äµÄÊý¾Ý´«Ê䣬Õâ¾ÍÌá¸ßÁËд²Ù×÷µÄЧÂÊ¡£
¶øÔÚÏÖʵÖУ¬ÔÚhadoop2.0ÖУ¬datanodeÊý¾Ý¸±±¾´æ·Å´ÅÅÌÑ¡Ôñ²ßÂÔÓÐÁ½ÖÖ·½Ê½£º
µÚÒ»ÖÖÊÇÑØÓÃhadoop1.0µÄ´ÅÅÌĿ¼ÂÖѯ·½Ê½£¬ÊµÏÖÀࣺ
RoundRobinVolumeChoosingPolicy.java
µÚ¶þÖÖÊÇÑ¡Ôñ¿ÉÓÿռä×ã¹»¶àµÄ´ÅÅÌ·½Ê½´æ´¢£¬ÊµÏÖÀࣺAvailableSpaceVolumeChoosingPolicy.java
µÚ¶þÖÖ²ßÂÔ¶ÔÓ¦µÄÅäÖÃÏîÊÇ£º

Èç¹û²»ÅäÖã¬Ä¬ÈÏʹÓõÚÒ»ÖÖ·½Ê½£¬¼ÈÂÖѯѡÔñ´ÅÅÌÀ´´æ´¢Êý¾Ý¸±±¾£¬µ«ÊÇÂÖѯµÄ·½Ê½ËäÈ»Äܹ»±£Ö¤ËùÓдÅÅ̶¼Äܹ»±»Ê¹Ó㬵«ÊǾ³£»á³öÏÖ¸÷¸ö´ÅÅÌÖ±½ÓÊý¾Ý´æ´¢²»¾ùºâÎÊÌ⣬ÓеĴÅÅÌ´æ´¢µÃºÜÂúÁË£¬¶øÓеĴÅÅÌ¿ÉÄÜ»¹ÓÐºÜ¶à´æ´¢¿Õ¼äûÓеõ½ÀûÓã¬ËùÓÐÔÚhadoop2.0¼¯ÈºÖУ¬×îºÃ½«´ÅÅÌÑ¡Ôñ²ßÂÔÅäÖóɵڶþÖÖ£¬¸ù¾Ý´ÅÅ̿ռäÊ£ÓàÁ¿À´Ñ¡Ôñ´ÅÅÌ´æ´¢Êý¾Ý¸±±¾£¬ÕâÑùÒ»ÑùÄܱ£Ö¤ËùÓдÅÅ̶¼Äܵõ½ÀûÓ㬻¹Äܱ£Ö¤ËùÓдÅÅ̶¼±»ÀûÓþùºâ¡£
ÔÚ²ÉÓõڶþÖÖ·½Ê½Ê±»¹ÓÐÁíÍâÁ½¸ö²ÎÊý»áÓõ½£º

ĬÈÏÖµÊÇ10737418240£¬¼È10G£¬Ò»°ãʹÓÃĬÈÏÖµ¾ÍÐС£¹Ù·½½âÊÍΪ£¬Ê×ÏȼÆËã³öÁ½¸öÖµ£¬Ò»¸öÊÇËùÓдÅÅÌÖÐ×î´ó¿ÉÓÿռ䣬ÁíÍâÒ»¸öÖµÊÇËùÓдÅÅÌÖÐ×îС¿ÉÓÿռ䣬Èç¹ûÕâÁ½¸öÖµÏà²îСÓÚ¸ÃÅäÖÃÏîÖ¸¶¨µÄ·§ÖµÊ±£¬Ôò¾ÍÓÃÂÖѯ·½Ê½µÄ´ÅÅÌÑ¡Ôñ²ßÂÔÑ¡Ôñ´ÅÅÌ´æ´¢Êý¾Ý¸±±¾¡£

ĬÈÏÖµÊÇ0.75f£¬Ò»°ãʹÓÃĬÈÏÖµ¾ÍÐС£¹Ù·½½âÊÍΪ£¬ÓжàÉÙ±ÈÀýµÄÊý¾Ý¸±±¾Ó¦¸Ã´æ´¢µ½Ê£Óà¿Õ¼ä×ã¹»¶àµÄ´ÅÅÌÉÏ¡£¸ÃÅäÖÃÏîȡֵ·¶Î§ÊÇ0.0-1.0£¬Ò»°ãÈ¡0.5-1.0£¬Èç¹ûÅäÖÃ̫С£¬»áµ¼ÖÂÊ£Óà¿Õ¼ä×ã¹»µÄ´ÅÅÌʵ¼ÊÉÏû·ÖÅä×ã¹»µÄÊý¾Ý¸±±¾£¬¶øÊ£Óà¿Õ¼ä²»×ãµÄ´ÅÅÌÈ¡ÐèÒª´æ´¢¸ü¶àµÄÊý¾Ý¸±±¾£¬µ¼Ö´ÅÅÌÊý¾Ý´æ´¢²»¾ùºâ¡£
¸±±¾Ñ¡Ôñ
ΪÁ˽µµÍÕûÌåµÄ´ø¿íÏûºÄºÍ¶ÁÈ¡ÑÓʱ£¬HDFS»á¾¡Á¿ÈöÁÈ¡³ÌÐò¶ÁÈ¡ÀëËü×î½üµÄ¸±±¾¡£Èç¹ûÔÚ¶ÁÈ¡³ÌÐòµÄͬһ¸ö»ú¼ÜÉÏÓÐÒ»¸ö¸±±¾£¬ÄÇô¾Í¶ÁÈ¡¸Ã¸±±¾¡£Èç¹ûÒ»¸öHDFS¼¯Èº¿çÔ½¶à¸öÊý¾ÝÖÐÐÄ£¬ÄÇô¿Í»§¶ËÒ²½«Ê×ÏȶÁ±¾µØÊý¾ÝÖÐÐĵĸ±±¾¡£
°²È«Ä£Ê½
NamenodeÆô¶¯ºó»á½øÈëÒ»¸ö³ÆÎª°²È«Ä£Ê½µÄÌØÊâ״̬¡£ ´¦ÓÚ°²È«Ä£Ê½µÄNamenodeÊDz»»á½øÐÐÊý¾Ý¿éµÄ¸´ÖƵġ£Namenode´ÓËùÓеÄ
Datanode½ÓÊÕÐÄÌøÐźźͿé״̬±¨¸æ¡£¿é״̬±¨¸æ°üÀ¨ÁËij¸öDatanodeËùÓеÄÊý¾Ý¿éÁÐ±í¡£Ã¿¸öÊý¾Ý¿é¶¼ÓÐÒ»¸öÖ¸¶¨µÄ×îС¸±±¾Êý¡£
µ±Namenode¼ì²âÈ·ÈÏij¸öÊý¾Ý¿éµÄ¸±±¾ÊýÄ¿´ïµ½Õâ¸ö×îСֵ(×îСֵĬÈÏÊÇ1£¬ÓÉdfs.namenode.replication.minÊôÐÔÉèÖÃ)£¬ÄÇô¸ÃÊý¾Ý¿é¾Í»á±»ÈÏΪÊǸ±±¾°²È«(safely
replicated)µÄ£»ÔÚÒ»¶¨°Ù·Ö±È£¨Õâ¸ö²ÎÊý¿ÉÅäÖÃ,ĬÈÏÊÇ0.999f,ÊôÐÔֵΪdfs.safemode.threshold.pct£©µÄÊý¾Ý¿é±»Namenode¼ì²âÈ·ÈÏÊǰ²È«Ö®ºó£¨¼ÓÉÏÒ»¸ö¶îÍâµÄ30ÃëµÈ´ýʱ¼ä£©£¬Namenode½«Í˳ö°²È«Ä£Ê½×´Ì¬¡£½ÓÏÂÀ´Ëü»áÈ·¶¨»¹ÓÐÄÄЩÊý¾Ý¿éµÄ¸±±¾Ã»Óдﵽָ¶¨ÊýÄ¿£¬²¢½«ÕâЩÊý¾Ý¿é¸´ÖƵ½ÆäËûDatanodeÉÏ¡£
Èç¹ûdatanode¶ªÊ§µÄblock´ïµ½Ò»¶¨µÄ±ÈÀý,namenode¾Í»áÒ»Ö±´¦ÓÚ°²È«Ä£Ê½¼´Ö»¶Áģʽ¡£
µ±namenode´¦ÓÚ°²È«Ä£Ê½Ê±£¬¸ÃÔõô´¦Àí£¿
ÕÒµ½ÎÊÌâËùÔÚ£¬½øÐÐÐÞ¸´£¨±ÈÈçÐÞ¸´å´»úµÄdatanode)¡£
»òÕß¿ÉÒÔÊÖ¶¯Ç¿ÐÐÍ˳ö°²È«Ä£Ê½£¨Ã»ÓÐÕæÕý½â¾öÎÊÌ⣩£º hdfs namenode --safemode
leave¡£
ÔÚhdfs¼¯ÈºÕý³£ÀäÆô¶¯Ê±£¬namenodeÒ²»áÔÚsafemode״̬ÏÂά³ÖÏ൱³¤µÄÒ»¶Îʱ¼ä£¬´ËʱÄã²»ÐèҪȥÀí»á£¬µÈ´ýËü×Ô¶¯Í˳ö°²È«Ä£Ê½¼´¿É¡£
Óû§¿ÉÒÔͨ¹ýdfsadmin -safemode value À´²Ù×÷°²È«Ä£Ê½£¬²ÎÊývalueµÄ˵Ã÷ÈçÏ£º
enter - ½øÈ밲ȫģʽ
leave - Ç¿ÖÆNameNodeÀ뿪°²È«Ä£Ê½
get - ·µ»Ø°²È«Ä£Ê½ÊÇ·ñ¿ªÆôµÄÐÅÏ¢
wait - µÈ´ý£¬ÔÚÖ´ÐÐijÌõÃüÁîǰÏÈÍ˳ö°²È«Ä£Ê½¡£
5¡¢ÎļþϵͳԪÊý¾ÝµÄ³Ö¾Ã»¯
NamenodeÉϱ£´æ×ÅHDFSµÄÃû×ֿռ䡣¶ÔÓÚÈκζÔÎļþϵͳԪÊý¾Ý²úÉúÐ޸ĵIJÙ×÷£¬Namenode¶¼»áʹÓÃÒ»ÖÖ³ÆÎªEditLogµÄÊÂÎñÈÕÖ¾¼Ç¼ÏÂÀ´¡£ÀýÈ磬ÔÚHDFSÖд´½¨Ò»¸öÎļþ£¬Namenode¾Í»áÔÚEditlogÖвåÈëÒ»Ìõ¼Ç¼À´±íʾ£»Í¬ÑùµØ£¬ÐÞ¸ÄÎļþµÄ¸±±¾ÏµÊýÒ²½«ÍùEditlog²åÈëÒ»Ìõ¼Ç¼¡£NamenodeÔÚ±¾µØ²Ù×÷ϵͳµÄÎļþϵͳÖд洢Õâ¸öEditlog¡£
Õû¸öÎļþϵͳµÄÃû×ֿռ䣬°üÀ¨Êý¾Ý¿éµ½ÎļþµÄÓ³Éä¡¢ÎļþµÄÊôÐԵȣ¬¶¼´æ´¢ÔÚÒ»¸ö³ÆÎªFsImageµÄÎļþÖУ¬Õâ¸öÎļþÒ²ÊÇ·ÅÔÚNamenodeËùÔڵı¾µØÎļþϵͳÉÏ¡£
NamenodeÔÚÄÚ´æÖб£´æ×ÅÕû¸öÎļþϵͳµÄÃû×Ö¿Õ¼äºÍÎļþÊý¾Ý¿éÓ³Éä(Blockmap)µÄÓ³Ïñ(¼´FsImage)¡£Õâ¸ö¹Ø¼üµÄÔªÊý¾Ý½á¹¹Éè¼ÆµÃºÜ½ô´Õ£¬Òò¶øÒ»¸öÓÐ4GÄÚ´æµÄNamenode×ã¹»Ö§³Å´óÁ¿µÄÎļþºÍĿ¼¡£
µ±NamenodeÆô¶¯Ê±£¬»òÕß¼ì²éµã´ïµ½ÅäÖÃÎļþÖеķ§Öµ£¬Ëü´ÓÓ²ÅÌÖжÁÈ¡EditlogºÍFsImage£¬½«ËùÓÐEditlogÖеÄÊÂÎñ×÷ÓÃÔÚÄÚ´æÖеÄFsImageÉÏ£¬²¢½«Õâ¸öа汾µÄFsImage´ÓÄÚ´æÖб£´æµ½±¾µØ´ÅÅÌÉÏ£¬È»ºóɾ³ý¾ÉµÄEditlog£¬ÒòΪÕâ¸ö¾ÉµÄEditlogµÄÊÂÎñ¶¼ÒѾ×÷ÓÃÔÚFsImageÉÏÁË¡£Õâ¸ö¹ý³Ì³ÆÎªÒ»¸ö¼ì²éµã(checkpoint)¡£
hdfs dfsadmin -fetchImage fsimage.backup
//ÊÖ¶¯´Ónamenode»ñÈ¡×îÐÂfsimageÎļþ£¬²¢±£´æÎª±¾µØÎļþ¡£
ÒòΪ±à¼ÈÕÖ¾»áÎÞÏÞÔö³¤£¬ÄÇô»Ö¸´±à¼ÈÕÖ¾µÄ¹ý³Ì¾Í»á±È½Ï³¤£¬½â¾ö·½°¸ÊÇ£¬ÔËÐи¨Öúnamenode,ΪÖ÷namenodeÄÚ´æÖеÄÎļþϵͳԪÊý¾Ý´´½¨¼ì²éµã¡£×îÖÕÖ÷namenodeÓµÓÐ×îеÄfsimageÎļþºÍ¸üСµÄeditsÎļþ¡£
ÕâÒ²½âÊÍÁ˸¨ÖúnamenodeºÍÖ÷namenodeÓµÓÐÏà½üÄÚ´æÐèÇóµÄÔÒò£¨¸¨ÖúnamenodeÒ²ÐèÒª°ÑfsimageÎļþÔØÈëÄڴ棩¡£
´´½¨¼ì²éµãµÄ´¥·¢Ìõ¼þÊÜÁ½¸öÅäÖòÎÊý¿ØÖÆ£¬
dfs.namenode.checkpoint.periodÊôÐÔ£¨¸¨Öúnamenodeÿ¸ôÒ»¶Îʱ¼ä¾Í´´½¨¼ì²éµã£¬µ¥Î»s£©¡£dfs.namenode.checkpoint.txns,Èç¹û´ÓÉÏÒ»¸ö¼ì²éµã¿ªÊ¼±à¼ÈÕÖ¾´óС´ïµ½¶àÉÙµÄÊÂÎñÊýʱ£¬´´½¨¼ì²éµã¡£
ÔÚÖ÷namenode·¢Éú¹ÊÕÏʱ£¨¼ÙÉèûÓб¸·Ý£©£¬¾Í¿ÉÒÔ´Ó¸¨ÖúµÄnamenodeÉϻָ´Êý¾Ý¡£ÓÐÁ½ÖÖʵÏÖ·½Ê½¡£
·½·¨Ò»£¬½«Ïà¹ØµÄ´æ´¢Ä¿Â¼¸´ÖƵ½ÐµÄnamenodeÖÐ ¡£
·½·¨¶þ£¬Ê¹ÓÃ-importCheckpointÑ¡ÏîÆô¶¯namenodeÊØ»¤½ø³Ì£¬´Ó¶ø½«¸¨ÖúnamenodeÓÃ×÷еÄÖ÷namenode,ÓиöǰÌáʱ£¬dfs.namenode.dirÊôÐÔ¶¨ÒåµÄĿ¼ÖÐûÓÐÔªÊý¾Ýʱ¡£
6¡¢Í¨Ñ¶ÐÒé
ËùÓеÄHDFSͨѶÐÒé¶¼Êǽ¨Á¢ÔÚTCP/IPÐÒéÖ®ÉÏ¡£¿Í»§¶Ëͨ¹ýÒ»¸ö¿ÉÅäÖõÄTCP¶Ë¿ÚÁ¬½Óµ½Namenode£¬Í¨¹ýClientProtocolÐÒéÓëNamenode½»»¥¡£¶øDatanodeʹÓÃDatanodeProtocolÐÒéÓëNamenode½»»¥¡£
Ò»¸öÔ¶³Ì¹ý³Ìµ÷ÓÃ(RPC)Ä£Ðͱ»³éÏó³öÀ´·â×°ClientProtocolºÍDatanodeprotocolÐÒé¡£ÔÚÉè¼ÆÉÏ£¬Namenode²»»áÖ÷¶¯·¢ÆðRPC£¬¶øÊÇÏìÓ¦À´×Ô¿Í»§¶Ë»ò
Datanode µÄRPCÇëÇó¡£
7¡¢½¡×³ÐÔ
HDFSµÄÖ÷ҪĿ±ê¾ÍÊǼ´Ê¹ÔÚ³ö´íµÄÇé¿öÏÂÒ²Òª±£Ö¤Êý¾Ý´æ´¢µÄ¿É¿¿ÐÔ¡£
³£¼ûµÄÈýÖÖ³ö´íÇé¿öÊÇ£ºNamenode³ö´í, Datanode³ö´íºÍÍøÂç¸îÁÑ(network partitions)¡£
ÐÄÌø¼ì²â,´ÅÅÌÊý¾Ý´íÎóºÍÖØÐ¸´ÖÆ¡£
ÿ¸öDatanode½ÚµãÖÜÆÚÐÔµØÏòNamenode·¢ËÍÐÄÌøÐźš£ÍøÂç¸îÁÑ¿ÉÄܵ¼ÖÂÒ»²¿·ÖDatanode¸úNamenodeʧȥÁªÏµ¡£Namenodeͨ¹ýÐÄÌøÐźŵÄȱʧÀ´¼ì²âÕâÒ»Çé¿ö£¬²¢½«ÕâЩ½üÆÚ²»ÔÙ·¢ËÍÐÄÌøÐźÅDatanode±ê¼ÇΪ崻ú£¬²»»áÔÙ½«ÐµÄIOÇëÇ󷢸øËüÃÇ¡£Èκδ洢ÔÚå´»úDatanodeÉϵÄÊý¾Ý½«²»ÔÙÓÐЧ¡£
DatanodeµÄå´»ú¿ÉÄÜ»áÒýÆðһЩÊý¾Ý¿éµÄ¸±±¾ÏµÊýµÍÓÚÖ¸¶¨Öµ£¬Namenode²»¶ÏµØ¼ì²âÕâЩÐèÒª¸´ÖƵÄÊý¾Ý¿é£¬Ò»µ©·¢ÏÖ¾ÍÆô¶¯¸´ÖƲÙ×÷¡£
ÉèÖúÏÊʵÄdatanodeÐÄÌø³¬Ê±Ê±¼ä£¬±ÜÃâÓÃdatanode²»Îȶ¨µ¼Öµĸ´ÖƷ籩¡£
ÔÚÏÂÁÐÇé¿öÏ£¬Ò²¿ÉÄÜÐèÒªÖØÐ¸´ÖÆ£ºÄ³¸öDatanode½ÚµãʧЧ£¬Ä³¸ö¸±±¾Ôâµ½Ë𻵣¬DatanodeÉϵÄÓ²ÅÌ´íÎ󣬻òÕßÎļþµÄ¸±±¾ÏµÊýÔö´ó¡£
¼¯Èº¾ùºâ£¨Õë¶Ôdatanode£©
HDFSµÄ¼Ü¹¹Ö§³ÖÊý¾Ý¾ùºâ²ßÂÔ¡£Èç¹ûij¸öDatanode½ÚµãÉϵĿÕÏпռäµÍÓÚÌØ¶¨µÄÁÙ½çµã£¬°´ÕÕ¾ùºâ²ßÂÔϵͳ¾Í»á×Ô¶¯µØ½«Êý¾Ý´ÓÕâ¸öDatanodeÒÆ¶¯µ½ÆäËû¿ÕÏеÄDatanode¡£
¸öÎļþµÄÇëÇóͻȻÔö¼Ó£¬ÄÇôҲ¿ÉÄÜÆô¶¯Ò»¸ö¼Æ»®´´½¨¸ÃÎļþеĸ±±¾£¬²¢ÇÒÍ¬Ê±ÖØÐÂÆ½ºâ¼¯ÈºÖÐµÄÆäËûÊý¾Ý¡£Õâ¸ö¾ùºâ²ßÂÔĿǰ»¹Ã»ÓÐʵÏÖ¡£
Êý¾ÝÍêÕûÐÔ£¨Õë¶Ôdatanode£©
´Óij¸öDatanode»ñÈ¡µÄÊý¾Ý¿éÓпÉÄÜÊÇË𻵵ģ¬Ë𻵿ÉÄÜÊÇÓÉDatanodeµÄ´æ´¢É豸´íÎó¡¢ÍøÂç´íÎó»òÕßÈí¼þbugÔì³ÉµÄ¡£HDFS¿Í»§¶ËÈí¼þʵÏÖÁ˶ÔHDFSÎļþÄÚÈݵÄУÑéºÍ(checksum)¼ì²é¡£
µ±¿Í»§¶Ë´´½¨Ò»¸öеÄHDFSÎļþ£¬»á¼ÆËãÕâ¸öÎļþÿ¸öÊý¾Ý¿éµÄУÑéºÍ£¬²¢½«Ð£ÑéºÍ×÷Ϊһ¸öµ¥¶ÀµÄÒþ²ØÎļþ±£´æÔÚͬһ¸öHDFSÃû×Ö¿Õ¼äÏ¡£µ±¿Í»§¶Ë»ñÈ¡ÎļþÄÚÈݺó£¬Ëü»á¼ìÑé´ÓDatanode»ñÈ¡µÄÊý¾Ý¸úÏàÓ¦µÄУÑéºÍÎļþÖеÄУÑéºÍÊÇ·ñÆ¥Å䣬Èç¹û²»Æ¥Å䣬¿Í»§¶Ë¿ÉÒÔÑ¡Ôñ´ÓÆäËûDatanode»ñÈ¡¸ÃÊý¾Ý¿éµÄ¸±±¾¡£
ÔªÊý¾Ý´ÅÅÌ´íÎó£¨Õë¶Ônamenode³ö´í£©
FsImageºÍEditlogÊÇHDFSµÄºËÐÄÊý¾Ý½á¹¹¡£Èç¹ûÕâЩÎļþËð»µÁË£¬Õû¸öHDFSʵÀý¶¼½«Ê§Ð§¡£Òò¶ø£¬Namenode¿ÉÒÔÅäÖóÉÖ§³Öά»¤¶à¸öFsImageºÍEditlogµÄ¸±±¾¡£ÈκζÔFsImage»òÕßEditlogµÄÐ޸쬶¼½«Í¬²½µ½ËüÃǵĸ±±¾ÉÏ¡£ÕâÖֶั±¾µÄͬ²½²Ù×÷¿ÉÄܻήµÍNamenodeÿÃë´¦ÀíµÄÃû×Ö¿Õ¼äÊÂÎñÊýÁ¿¡£È»¶øÕâ¸ö´ú¼ÛÊÇ¿ÉÒÔ½ÓÊܵģ¬ÒòΪ¼´Ê¹HDFSµÄÓ¦ÓÃÊÇÊý¾ÝÃܼ¯µÄ£¬ËüÃÇÒ²·ÇÔªÊý¾ÝÃܼ¯µÄ¡£µ±NamenodeÖØÆôµÄʱºò£¬Ëü»áѡȡ×î½üµÄÍêÕûµÄFsImageºÍEditlogÀ´Ê¹Óá£
ÁíÍâÒ»¸ö¿ÉÑ¡·½°¸ÊÇͨ¹ý¹²Ïí´æ´¢NFS»òÒ»¸ö·Ö²¼Ê½±à¼ÈÕÖ¾£¨Ò²½Ðjournal£©ÊµÏÖ¶ànamenode½Úµã(HA)£¬À´ÔöÇ¿¹ÊÕϻָ´ÄÜÁ¦¡£
ÔÚHDFS HAµÄʵÏÖÖУ¬ÅäÖÃÁËÒ»¶Ôactive-standbyµÄnamenode,µ±»î¶¯µÄnamenodeʧЧ£¬±¸ÓõÄnamenode¾Í»á½Ó¹ÜËüµÄÈÎÎñ²¢¿ªÊ¼·þÎñÓÚ¿Í»§¶ËµÄÇëÇó¡£
ʵÏÖHAÐèÒªÔڼܹ¹ÉÏ×öÈçÏÂÐ޸ģº
namenodeÖ®¼äͨ¹ý¸ß¿ÉÓù²Ïí´æ´¢ÊµÏÖ±à¼ÈÕÖ¾µÄ¹²Ïí£¬µ±±¸ÓÃnamenode½Ó¹Ü¹¤×÷Ö®ºó£¬Ëü½«Í¨¶Á¹²Ïí±à¼ÈÕÖ¾Ö±µ½Ä©Î²£¬ÊµÏÖÓëactive
namenode״̬ͬ²½£¬²¢¼ÌÐø¶ÁÈ¡ÓɻnamenodeдÈëµÄÐÂÌõÄ¿¡£
datanodeÐèҪͬʱÏòÁ½¸önamenode·¢ËÍÊý¾Ý¿é´¦Àí±¨¸æ£¬ÒòΪÊý¾Ý¿éÓ³ÉäÐÅÏ¢´æÔÚnamenodeµÄÄڴ棬¶ø·ÇÓ²ÅÌ¡£
¿Í»§¶ËʹÓÃÌØ¶¨µÄ»úÖÆ´¦ÀínamenodeµÄʧЧ£¬ÕâÒ»»úÖÆ¶ÔÓÚÓû§ÊÇ͸Ã÷µÄ¡£
¸¨ÖúnamenodeµÄ½ÇÉ«±»namenodeËù°üº¬£¬±¸ÓÃnamenodeΪ»î¶¯µÄnamenodeÃüÃû¿Õ¼äÉèÖÃÖÜÆÚÐÔ¼ì²é¡£
¿ìÕÕ
¿ìÕÕÖ§³ÖÄ³Ò»ÌØ¶¨Ê±¿ÌµÄÊý¾ÝµÄ¸´ÖƱ¸·Ý¡£ÀûÓÿìÕÕ£¬¿ÉÒÔÈÃHDFSÔÚÊý¾ÝËð»µÊ±»Ö¸´µ½¹ýÈ¥Ò»¸öÒÑÖªÕýÈ·µÄʱ¼äµã¡£
8¡¢Êý¾Ý×éÖ¯
Êý¾Ý¿é
HDFS±»Éè¼Æ³ÉÖ§³Ö´óÎļþ£¬ÊÊÓÃHDFSµÄÊÇÄÇЩÐèÒª´¦Àí´ó¹æÄ£µÄÊý¾Ý¼¯µÄÓ¦Óá£ÕâЩӦÓö¼ÊÇֻдÈëÊý¾ÝÒ»´Î£¬µ«È´¶Áȡһ´Î»ò¶à´Î£¬²¢ÇÒ¶ÁÈ¡ËÙ¶ÈÓ¦ÄÜÂú×ãÁ÷ʽ¶ÁÈ¡µÄÐèÒª¡£HDFSÖ§³ÖÎļþµÄ¡°Ò»´ÎдÈë¶à´Î¶ÁÈ¡¡±ÓïÒå¡£Ò»¸öµäÐ͵ÄÊý¾Ý¿é´óСÊÇ128MB¡£Òò¶ø£¬HDFSÖеÄÎļþ×ÜÊǰ´ÕÕ128M±»Çзֳɲ»Í¬µÄ¿é£¬Ã¿¸ö¿é¾¡¿ÉÄܵش洢ÓÚ²»Í¬µÄDatanodeÖС£
Á÷Ë®Ï߸´ÖÆ
µ±¿Í»§¶ËÏòHDFSÎļþдÈëÊý¾ÝµÄʱºò£¬Ò»¿ªÊ¼ÊÇдµ½±¾µØÁÙʱÎļþÖС£¼ÙÉè¸ÃÎļþµÄ¸±±¾ÏµÊýÉèÖÃΪ3£¬µ±±¾µØÁÙʱÎļþÀÛ»ýµ½Ò»¸öÊý¾Ý¿éµÄ´óСʱ£¬¿Í»§¶Ë»á´ÓNamenode»ñȡһ¸öDatanodeÁбíÓÃÓÚ´æ·Å¸±±¾¡£È»ºó¿Í»§¶Ë¿ªÊ¼ÏòµÚÒ»¸öDatanode´«ÊäÊý¾Ý£¬µÚÒ»¸öDatanodeһС²¿·ÖһС²¿·Ö(4
KB)µØ½ÓÊÕÊý¾Ý£¬½«Ã¿Ò»²¿·ÖдÈë±¾µØ²Ö¿â£¬²¢Í¬Ê±´«Êä¸Ã²¿·Öµ½ÁбíÖеڶþ¸öDatanode½Úµã¡£µÚ¶þ¸öDatanodeÒ²ÊÇÕâÑù£¬Ò»Ð¡²¿·ÖһС²¿·ÖµØ½ÓÊÕÊý¾Ý£¬Ð´Èë±¾µØ²Ö¿â£¬²¢Í¬Ê±´«¸øµÚÈý¸öDatanode¡£×îºó£¬µÚÈý¸öDatanode½ÓÊÕÊý¾Ý²¢´æ´¢ÔÚ±¾µØ¡£
Òò´Ë£¬DatanodeÄÜÁ÷Ë®ÏßʽµØ´Óǰһ¸ö½Úµã½ÓÊÕÊý¾Ý£¬²¢ÔÚͬʱת·¢¸øÏÂÒ»¸ö½Úµã£¬Êý¾ÝÒÔÁ÷Ë®Ïߵķ½Ê½´Óǰһ¸öDatanode¸´ÖƵ½ÏÂÒ»¸ö¡£
9¡¢¿É·ÃÎÊÐÔ
HDFS¸øÓ¦ÓÃÌṩÁ˶àÖÖ·ÃÎÊ·½Ê½¡£Óû§¿ÉÒÔͨ¹ýJava API½Ó¿Ú·ÃÎÊ£¬Ò²¿ÉÒÔͨ¹ýCÓïÑԵķâ×°API·ÃÎÊ£¬»¹¿ÉÒÔͨ¹ýä¯ÀÀÆ÷µÄ·½Ê½·ÃÎÊHDFSÖеÄÎļþ¡£Í¨¹ýWebDAVÐÒé·ÃÎʵķ½Ê½ÕýÔÚ¿ª·¢ÖС£
DFSShell
HDFSÒÔÎļþºÍĿ¼µÄÐÎʽ×éÖ¯Óû§Êý¾Ý¡£ËüÌṩÁËÒ»¸öÃüÁîÐеĽӿÚ(DFSShell)ÈÃÓû§ÓëHDFSÖеÄÊý¾Ý½øÐн»»¥¡£ÃüÁîµÄÓï·¨ºÍÓû§ÊìϤµÄÆäËûshell(ÀýÈç
bash, csh)¹¤¾ßÀàËÆ¡£ÏÂÃæÊÇһЩ¶¯×÷/ÃüÁîµÄʾÀý£º

DFSAdmin
DFSAdmin ÃüÁîÓÃÀ´¹ÜÀíHDFS¼¯Èº¡£ÕâЩÃüÁîÖ»ÓÐHDSFµÄ¹ÜÀíÔ±²ÅÄÜʹÓá£ÏÂÃæÊÇһЩ¶¯×÷/ÃüÁîµÄʾÀý£º

ä¯ÀÀÆ÷½Ó¿Ú
Ò»¸öµäÐ͵ÄHDFS°²×°»áÔÚÒ»¸ö¿ÉÅäÖõÄTCP¶Ë¿Ú¿ªÆôÒ»¸öWeb·þÎñÆ÷ÓÃÓÚ±©Â¶HDFSµÄÃû×ֿռ䡣Óû§¿ÉÒÔÓÃä¯ÀÀÆ÷À´ä¯ÀÀHDFSµÄÃû×Ö¿Õ¼äºÍ²é¿´ÎļþµÄÄÚÈÝ¡£
http://ip:50070
10¡¢´æ´¢¿Õ¼ä»ØÊÕ
ÎļþµÄɾ³ýºÍ»Ö¸´
µ±À¬»ø»ØÊÕÉúЧʱ£¬Í¨¹ýfs shellɾ³ýµÄÎļþ²¢Ã»ÓÐÁ¢¿Ì´ÓHDFSÖÐɾ³ý¡£Êµ¼ÊÉÏ£¬HDFS»á½«Õâ¸öÎļþÖØÃüÃû×ªÒÆµ½user//.TrashĿ¼¡£Ö»ÒªÎļþ»¹ÔÚ.TrashĿ¼ÖУ¬¸ÃÎļþ¾Í¿ÉÒÔ±»Ñ¸Ëٵػָ´¡£ÎļþÔÚTrashÖб£´æµÄʱ¼äÊÇ¿ÉÅäÖõ쬵±³¬¹ýÕâ¸öʱ¼äʱ£¬Namenode¾Í»á½«¸ÃÎļþ´ÓÃû×Ö¿Õ¼äÖÐɾ³ý¡£É¾³ýÎļþ»áʹµÃ¸ÃÎļþÏà¹ØµÄÊý¾Ý¿é±»ÊÍ·Å¡£×¢Ò⣬´ÓÓû§É¾³ýÎļþµ½HDFS¿ÕÏпռäµÄÔö¼ÓÖ®¼ä»áÓÐÒ»¶¨Ê±¼äµÄÑÓ³Ù¡£
Ö»Òª±»É¾³ýµÄÎļþ»¹ÔÚ.TrashĿ¼ÖУ¬Óû§¾Í¿ÉÒÔ»Ö¸´Õâ¸öÎļþ¡£Èç¹ûÓû§Ïë»Ö¸´±»É¾³ýµÄÎļþ£¬Ëû/Ëý¿ÉÒÔä¯ÀÀ.TrashĿ¼ÕһظÃÎļþ¡£
¼õÉÙ¸±±¾ÏµÊý
µ±Ò»¸öÎļþµÄ¸±±¾ÏµÊý±»¼õСºó£¬Namenode»áÑ¡Ôñ¹ýÊ£µÄ¸±±¾É¾³ý¡£Ï´ÎÐÄÌø¼ì²âʱ»á½«¸ÃÐÅÏ¢´«µÝ¸øDatanode¡£DatanodeËì¼´ÒÆ³ýÏàÓ¦µÄÊý¾Ý¿é£¬¼¯ÈºÖеĿÕÏпռä¼Ó´ó¡£Í¬Ñù£¬ÔÚµ÷ÓÃsetReplication
API½áÊøºÍ¼¯ÈºÖпÕÏпռäÔö¼Ó¼ä»áÓÐÒ»¶¨µÄÑÓ³Ù¡£ |