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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
»»¸ö½Ç¶ÈÀí½âÔÆ¼ÆËã
 
×÷ÕߣºÎâ¹ãÀÚ À´Ô´£º²©¿ÍÔ° ·¢²¼ÓÚ£º 2014-12-8
  2566  次浏览      28
 

»»¸ö½Ç¶ÈÀí½âÔÆ¼ÆËãÖ®MapReduce

Ñ§Ï°ÔÆ¼ÆË㣬±ØÈ»µÃÁ˽âHadoop£¬¶øHadoopÖеÄHDFS£¨·Ö²¼Ê½Îļþϵͳ£©ÊÇÒ»¸ö»ù´¡£¬½ÓÏÂÀ´¾ÍдһÏÂÎÒËùÀí½âµÄHDFS¡£

ÓÐÒ»¸öºÜÓÐÌØ±ðµÄ´åׯ£¬´åׯÀïÃæÓÐÒ»¸öºÜÅ£±ÆµÄÈË£¬½Ð×ö¡°´ó¸ç¡±£¬´åÃñÃǶ¼ÐŵùýËû£¬ÓÚÊÇ»á°Ñ×Ô¼º¼ÒµÄÁ¸Ê³¡¢Å©¾ßµÈµÈ¸÷ÖÖ¸÷ÑùµÄ¶«Î÷¡°´ò°ü³ÉÒ»¸ö´óµÄ°ü¹ü¡±Èá°´ó¸ç¡±¸ø´æ×Å£¬µÈÓõÄʱºò£¬ÔÙÈ¥ÕÒ´ó¸çÒª¡£ÎÒÃÇ¿ÉÒÔ¹ÃÇÒ¼òµ¥µÄÈÏΪ£º¡°´ó¸ç¡±¾ÍÊÇ·þÎñÆ÷Server£¬´åÃñÃÇÊǿͻ§¶ËClient£¬¶ø´åÃñ´ò°üµÄÒ»¸ö´óµÄ°ü¹ü¾ÍÊÇÒ»¸öºÜ´óµÄÎļþ¡£

Ò»¿ªÊ¼´ó¼ÒÏà°²ÎÞÊ£¬ºóÀ´±ðµÄ´åµÄÈË£¨¸ü¶àµÄClient£©¾õµÃÔÚ×Ô¼º¼ÒÀï·ÅÄÇô¶à¶«Î÷£¬Ì«Õ¼µØ·½£¬ÓÚÊǶ¼ÕÒ¡°´ó¸ç¡±£¬Òª°Ñ¶«Î÷·ÅËûÕâ¶ù¡£¡°´ó¸ç¡±ÈËÒ²ËãºÃ£¬À´Õß²»¾Ü£¬¿ÉÊÇ×Ô¼º¼ÒÀï¾ÍÄÇô¶àµã¶ùµØ·½£¬·Å²»ÏÂÁËÔõô°ì£¿

ÓÚÊÇ¡°´ó¸ç¡±Ïëµ½Ò»¸ö°ì·¨£¬À©´ó×Ô¼º¼ÒµÄµØ·½£¨·þÎñÆ÷À©´óÓ²ÅÌÈÝÁ¿£©£¬ÕâÑù¾ÍºÜºÃµÄ½â¾öÁËÎÊÌâ¡£

¿ÉÊÇ¡°´ó¸ç¡±µÄÃûÆøÔ½À´Ô½¶à£¬ÍùËûÕâ¶ù´æ¶«Î÷µÄÈËÔ½À´Ô½¶à£¬ÎÞÐÝÖ¹µÄµÄÀ©´ó×Ô¼º¼ÒµÄµØ·½£¬Ò²²»ÊÇÒ»¸ö°ì·¨°¡¡£¡°´ó¸ç¡±¿ªÊ¼Æ´Ãü¶ÁÊ飬Çë½Ì¸÷·ÅóÓÑÖ§ÕУ¬×îÖÕÒ»¸ö½Ð×ö¡°¹¥³Çʨ¡±ÅóÓÑһϵãÖÐÒªº¦£º¡°´ó¸ç£¬ÄãÏÖÔÚÓöµ½µÄÎÊÌâ½Ð×ö´óÊý¾Ý£¬ÓÐÈËÒ²³ÆÎªº£Á¿Êý¾Ý£¬ÓÐÈËÒ²³ÆÎªbigdata¡±¡£¡°ÐǪ̈¸ß¼û£¬¿ÉÓÐÆÆ½âÖ®µÀ£¿¡± ¡°¹â¿¿À©³ä×Ô¼ºµÄ¼ÒµØ·½Ò²²»Êǰ취£¬»¹µÃÏëµ½Ò»¸öÍòȫ֮²ß¡±¡£ËûÃǾ­¹ýÈÕҹ˼¿¼£¬ÖÕÓÚÏëµ½Ò»¸ö¾øÃîµÄ°ì·¨£¬ÇÒÌýÎÒÂýÂýµÀÀ´¡£

´ó¸ç¹ÍÓ¶ÁËÆäËûһЩÈË£¬ÎÒÃǹÃÇÒ½ÐËûÃÇ¡°Ð¡µÜÃÇ¡±£¬ËûÃÇÊÇ¡°Ö÷´ÓµÄ¹ØÏµ¡±¡£Ð¡µÜÃǼÒÀï»áÓÐЩµØ·½£¬ÕâÑù´åÃñÃÇÍù´ó¸çÕâ¶ù´æ¶«Î÷µÄ»°£¬´ó¸ç²¢²»ÓÃ×Ô¼º¼ÒµÄµØ·½£¬¶øÊÇ·ÅÔÚ±ðµÄСµÜÄǶù£¬Ëæ×Å´åÃñÃÇ´æµÄ¶«Î÷Ô½À´Ô½¶à£¬´ó¸çÖ»ÐèÒª¶à¹ÍÓ¶µã¶ùСµÜ¾ÍÐÐÁË¡£

ÉÏÃæ¾ÍÊÇ¡°´ó¸ç¡±ºÍ¡°¹¥³Çʨ¡±Ïëµ½µÄÒ»¸öÍòȫ֮²ß£¬ËûÃdzÆÖ®ÎªHDFS£¬¶ø´ó¸çΪÁËСµÜÃdzƺô·½±ã£¬¸ø×Ô¼ºÆðÁËÒ»¸ö»¨Ãû£¬½Ð×ö¡°NameNode¡±£¬Ò²¸øÐ¡µÜÃÇÿ¸öÈËÆðÁ˸ö»¨Ãû£ºDataNode1¡¢DataNode2¡¢DataNode3¡¢¡­¡­¡£¶ÔÓÚ´åÃñ£¨¿Í»§¶Ë£©À´Ëµ£¬ÎÒÐèÒª´æ¶«Î÷µ½ÄãÄǶù£¬Ö±½Ó¸øÄã¾ÍÐÐÁË£¬²»Óÿ¼ÂÇÌ«¶à£¬¿ÉÊÇ´ó¸çÐÄËᣬÓÖÔõ¿ÉÖª¡£ÎÒÃÇ¿´¿´´ó¸çÊÇÈçºÎºÜºÃµÄÔË×÷HDFSµÄ¡£

¼ÙÉèÓиö´åÃñÒª´æÒ»¸ö´ó°ü¹ü¸ø´ó¸ç£¬Õâ¸ö´ó°ü¹üÓжà´óÄØ£¬³ÆÁ˳ƣ¬´ó¸ÅÊÇ¡°6GB¡±¡£½ÓÏÂÀ´ÊÇ´ó¸çÃæ¶ÔÕâ¡°6GB¡±µÄ¶«Î÷£¬Ë¼¿¼µÄһЩÎÊÌâºÍ½â¾öµÄ·½·¨¡£

1.Õâô´ó¶«Î÷Ôõô´æÄØ£¿

Ëû°ÑÕâôһ¸ö´óµÄ¶«Î÷£¬ÇзֳÉÁË64MB´óСµÄ¿é£¨Block£©£¬¸øÐ¡µÜÃÇ£¨DataNode£©·Ö³öÈ¥£¬¶ø´ó¸ç£¨DataNode£©ÄÔ×Ó£¨Äڴ棩ÀïÃæ¼Çϸ÷¸ö¿é¶¼·Ö¸øÁËÄĸöСµÜ¡£ÕâÑùÈ˼ҴåÃñÀ´È¡¶«Î÷µÄʱºò£¬´ó¸ç¡°NameNode¡±»á¸æËß´åÃñ¸÷¸ö¿é£¨Block£©ÔÚÄĸöСµÜÊÖÀȻºóÖ±½ÓÕÒСµÜÒª¾ÍÐÐÁË¡£

2.¹â¼ÇÔÚÄÔ×ÓÀï²»ÐУ¬ÒªÊÇÍüÁËÔõô°ì£¿

´åÃñµÄ¸÷ÖÖÐÐΪ£¨´´½¨¡¢Ð޸ġ¢É¾³ý£©µÈ²Ù×÷ʱ£¬´ó¸ç²»Äܽö½ö¼ÇÔÚÄÔ×ÓÀ»¹×¼±¸ÁËÁ½¸ö±¾×Ó£¨Îļþ£©£¬Ò»¸ö½Ð×öEditLog£¬Ò»¸ö½Ð×öFSImage¡£ÎÞÂÛ´åÃñд涫Î÷¡¢ÐÞ¸Ä×Ô¼º´æµÄ¶«Î÷¡¢É¾³ý×Ô¼º´æµÄ¶«Î÷£¬´ó¸ç¡°NameNode¡±¶¼»áÔÚEditLog¼ÇÏÂÒ»±Ê¡£

ÍòÒ»EditLog»òFSImage¶ªÁËÔõô°ì£¿ÓÚÊÇËûÕÒÁ˸ö¹Ü¼Ò£¬½Ð×ö¡°SecondaryNameNode¡±£¬°ïËûÒ²´æ×ÅÕâÁ½¸öÎļþ£¬Çмǣ¬ËäȻҲÓÐNameNode³ÆºÅ£¬µ«Ëû½ö½öÊÇ¡°¹Ü¼Ò¡±£¬²»ÊÇ¡°´ó¸ç¡±£¬ÒªÊÇ´ó¸çËÀÁË£¬¹Ü¼ÒÒ²µ£µ±²»ÁË´ó¸çµÄλÖá£

3.´æÊý¾Ý¿éµÄСµÜ¡°¹ÒÁË¡±Ôõô°ìÄØ£¿

£¨1£©Ôõô֪µÀСµÜ¡°¹ÒÁË¡±ÄØ£¿

ΪÁ˱£Ö¤Ð¡µÜÃǺúøɻСµÜ£¨DataNode£©ÐèÒªÖÜÆÚÐÔµÄÏò´ó¸ç£¨NameNode£©»ã±¨Çé¿ö£¬³ÆÎª¡°ÐÄÌøÐźÅheartbeat¡±£¬Èç¹ûÖÜÆÚÐÔµÄÊÕµ½Ðźţ¬±íʾСµÜûÊ£»Èç¹ûûÓÐÊÕµ½ÄØ£¬Ôò˵Ã÷СµÜÒì³£ÁË¡£¡¡¡¡

£¨2£©´ó¸çµÄÓ¦¶Ô²ßÂÔÊÇÊ²Ã´ÄØ£¿

´ó¸ç°Ñ´óÎļþ·Ö³ÉÒ»¸ö¸ö64MBµÄС¿é¸øÁËСµÜ£¬ÍòÒ»ÄĸöСµÜ¹ÒÁË£¬Õâ¸öÊý¾Ý¿é²»¾Í¶ªÊ§ÁË£¬´åÃñ»¹²»µÃ¶ÂÎÒ¼ÒÃÅ¡£Òò´Ë´ó¸ç°Ñijһ¸ö¿é¸øÆäÖÐÒ»¸öСµÜǰ£¬»áÏȸ´ÖƳöÁ½·Ý£¬½Ð×ö¡°¸±±¾¡±£¬¸øÆäËûСµÜÒ²´æ×Å£¬ÕâÖÖÈßÓà´æ´¢£¬±£Ö¤ÁËÊý¾ÝµÄ°²È«ÐÔ¡£

£¨3£©¸±±¾¸øÄÄЩСµÜÄØ£¿

Ò»¸öÊý¾Ý¿éĬÈϵÄ3¸ö¸±±¾£¬²»ÊÇËæ±ã¸øÄĸöСµÜµÄ£¬Ò»°ã¸ø·ûºÏÏÂÃæÒªÇóµÄСµÜ£º

1£©µÚÒ»¸ö¸±±¾¸øÈÎÒâÒ»¸öСµÜ£¨DataNode£©¡£

2£©µÚ¶þ¸ö¸±±¾¸øµÚÒ»¸öСµÜµÄÁÚ¾Ó¡££¨Í¬Ò»¸ö»ú¼ÜÉÏ£©

3£©µÚÈý¸ö¸±±¾¸øÆäËûСµÜ£¬ÀëÇ°ÃæÁ½¸ö¶¼Ô¶µã¶ù¡££¨²»Í¬»ú¼ÜµÄDataNode£©

±¸×¢£ºÍ¬Ò»¸ö»ú¼ÜϵÄÁ½¸ö·þÎñÆ÷´ø¿í±È²»Í¬»ú¼Ü¼äÁ½Ì¨´ø¿íÒª´ó¡£

£¨4£©¸±±¾Ôõô¸øÐ¡µÜ

¸±±¾µÄ¸´ÖÆÊDzÉÓõÄÁ÷Ë®Ïßʽ¸´ÖÆ·½·¨¡£¾ßÌåÀ´Ëµ£º¿Í»§¶Ë´æÊý¾ÝµÄʱºò£¬ÏȰÑÊý¾Ýдµ½±¾µØ´ÅÅÌÁÙʱÎļþÖУ¬µÈд¹»64MBÁË£¬NameNode²Å»á¸æË߿ͻ§¶ËÒ»¸öDataNodeµØÖ·£¬Èÿͻ§¶ËÍùÀïÃæÐ´Êý¾Ý£¬µÚÒ»¸öDataNodeһС²¿·ÖһС²¿·ÖµÄ½ÓÊÕÊý¾Ý£¬È»ºó°Ñ½Óµ½µÄÊý¾Ý¸´ÖƸøµÚ¶þ¸öDataNode£¬È»ºóµÚ¶þ¸öDataNode¸´ÖƸøµÚÈý¸ö£¬ÒÔÕâÖÖÁ÷Ë®ÏßʽµÄ½øÐи±±¾µÄ¸´ÖÆ¡£

£¨5£©ÍòÒ»ÓÐÒ»¸öСµÜ¹ÒÁËÔõô°ì£¿

ÌìÓв»²â·çÔÆÈËÓе©Ï¦»ö¸££¬Èç¹ûÆäÖÐÒ»¸öСµÜÕæ¹ÒÁË£¬ÄÇôÏÖÔÚ¸±±¾Êý±ä³ÉÁËÁ½¸ö£¬´ó¸ç»áÔÙ´´½¨Ò»¸ö¸±±¾¸øÆäËûСµÜ´æ×Å£¬±£Ö¤¸±±¾µÄÊýÁ¿²»ÉÙÓÚ3¸ö£¬Ò»Çа²È«µÚÒ»¡£

ÄáÂ꣬ÖÕÓڸ㶨Á˺£Á¿Êý¾Ý´æ´¢µÄÎÊÌ⣬´ó¸ç¹ÍÓ¶ÁËÕâô¶àСµÜ£¬²»ÄÜÖ»´æ´¢Êý¾Ý°É£¬Ôõô×ÅÒ²µÃÔٸɵã¶ù±ðµÄ°É£¬ÓÚÊÇËûÃÇÓÖÏë×ÅÈ¥°ïÖú´åÃñÈ¥Íê³ÉËûÃǵÄһЩ¼ÆËãµÈÈÎÎñ£¬Õâ¸öʱºò£¬´ó¸çÓÖÓÐÁ˸öÃû×Ö£¬½Ð×ö¡°JobTracker¡±£¬¶øÐ¡µÜÃÇÓÖÓÐÁ˸öеÄÃû×Ö£¬½Ð×ö¡°TaskTracker¡±£¬ÓÖ×é³ÉÁËÒ»¸öеÄÍŶӣ¬½Ð×ö£ºMapReduce¡£

»»¸ö½Ç¶ÈÀí½âÔÆ¼ÆËãÖ®MapReduce

ÉÏһƪ¼òµ¥½²ÁËÒ»ÏÂHDFS£¬¼òµ¥À´Ëµ¾ÍÊÇÒ»¸ö½Ð×ö¡°NameNode¡±µÄ´ó¸ç£¬´ø×ÅһȺ½Ð×ö¡°DataNode¡±µÄСµÜ£¬Íê³ÉÁËÒ»ÛçÛçÊý¾ÝµÄ´æ´¢£¬ÆäÖдó¸ç¸ºÔð±£´æÊý¾ÝµÄĿ¼£¬Ð¡µÜÃǸºÔðÊý¾ÝµÄÕæÕý´æ´¢£¬¶ø´ó¸çºÍСµÜÆäʵ¾ÍÊÇһ̨̨µÄµçÄÔ£¬ËûÃÇÖ®¼äͨ¹ý½»»»»ú£¬»¥ÏàÁªÏµµ½ÁËÒ»Æð¡£

ÆäʵÕâλ´ó¸çºÍÕâȺСµÜ²»½öÄÜ´æ´¢Êý¾Ý£¬»¹ÄÜÍê³ÉºÜ¶à¼ÆËãÈÎÎñ£¬ÓÚÊÇËûÃÇÓÐÁËеÄÃû×Ö£¬´ó¸ç½Ð×ö¡°JobTracker¡±£¬¶øÐ¡µÜÃǽÐ×ö¡°TaskTracker¡±£¬Ò»Æð×é³ÉÁËMapReduce¡£½ñÌì¾ÍÀ´ËµËµMapReduceÊÇÔõôһ»ØÊ¡£

ÕâÀï½ö½öÊÇ´Ó´óÃæÉÏÈ¥½éÉÜ£¬Èôó¼ÒÓÐÒ»¸öÕûÌåµÄÈÏʶ£¬¶øÕûÌåÉÏÈÏʶºó£¬¸ö±ðµÄϸ½Ú֪ʶ×Ô¼ºÔÙÈ¥¿´¿´±ðµÄ×ÊÁÏ£¬Ò²¾ÍºÜÈÝÒ×Àí½âÁË£¬Ö»ÊÇʱ¼äÎÊÌâ¶øÒÑ¡£

¸Õ¿ªÊ¼Ñ§Ï°MapReduce£¬¿Ï¶¨»á±»¸÷ÖÖ¸÷ÑùµÄ¸ÅÄîÕûµÄÔÎͷתÏò£¬µ½µ×ÄáÂêÈÎÎñ¡¢job¡¢×÷Òµ¡¢TaskÓÐÊ²Ã´Çø±ð£¿split¡¢Êý¾Ý·ÖƬ¡¢Êý¾Ý¿é¡¢blockµ½µ×Ê²Ã´Çø±ð£¿Map¡¢Mapper¡¢Map·½·¨µ½µ×ÊDz»ÊÇÒ»»ØÊ£¿µ½µ×MapÊäÈëµÄKeyºÍValueÊÇʲô£¬ÊÇÒ»ÐÐÊý¾Ý£¬»¹ÊÇÒ»ÐÐÐеÄÊý¾Ý£¿ReduceµÄÊäÈëµ½µ×ÄáÂêÊÇʲô¶«Î÷£¿ËûÃÇÖ®¼äµ½µ×ÊÇÔõôһ¸öÊý¾ÝÁ÷³Ì£¿»¹³öÏÖÁËʲôSort¡¢Merge¡¢Shuffle£¿ÎÒÁ˸öÈ¥°¡£¡£¡£¡

Èç¹ûÄãÒ²ÓÐÕâÑùµÄÒÉ»ó£¬ÄÇôÏÂÃæÌýÎÒÂýÂýµÀÀ´°É£¬Çë¼ÇסÁ½µã£º1.MapReduceÊǸö¿ò¼Ü£¬Òò´ËÊǺܼòµ¥µÄ£¬Ç°ÏÈÔÚÄÔ×ÓÀïÃæÓÐÕâ¸ö¹ÛÄî¡£2.ÓÐÁËÕâ¸ö¹ÛÄ¾Í²»Òª±©ÔêÁË£¬ÂýÂý¿´ÏÂÈ¥°É¡£

ΪÁË˵ÇåMapReduceÕâ¸öÎÊÌ⣬ÎÒ»¹ÊÇÒÔ¾­µäµÄͳ¼Æµ¥´ÊÊýÁ¿À´Ò»²½²½µÄ˵Ã÷¡£ÎÒÀ´Ò»²½²½µÄȥ˵£º

Ò»¡¢ÎÒÃÇÒª¸Éʲô£¿

ÏÖÔÚÓÐÒ»¸öÎı¾Îļþ£¬ÀïÃæºÃ¶àºÃ¶àµ¥´Ê£¬ÎļþÓжà´óÄØ£¿±ð¹ÜËü¶à´óÁË£¬·´ÕýÓкܶàÐУ¬ÎÒÃÇÒª×öµÄÊÂÇé¾ÍÊÇ£ºÍ³¼Æ³öÀ´µ½µ×Õâ¸öÎļþÀïÃæÃ¿¸öµ¥´Ê³öÏֵĴÎÊý£¬×îÖÕÊä³ö½á¹ûµ½ÎļþÖС£¼òµ¥À´ËµÈçÏ£º

ÊäÈ룺һ¸öÓкܶ൥´ÊµÄÎı¾Îļþ¡£ ¡¡

ÀýÈ磺ÎļþΪtest.txt,ÎļþÄÚÈÝÈçÏ£º
hello world
hello hadoop
hello dog
hello world
hello jobs

Êä³ö£ºÒ»¸öÏÔʾµ¥´Ê³öÏÖ´ÎÊýµÄÎļþ¡£

ÀýÈ磺ͳ¼Æ³öÀ´½á¹ûΪ£º
hello 29
world 300
hadoop 34
jobs 1

¶þ¡¢±àд³ÌÐò

Õë¶ÔÉÏÃæÕâ¼þÊ£¬ÎÒÃDZàд³ÌÐò£¬³ÌÐòÃû×Ö½ÐMyWordCount£¬ÎÒÃǰѳÌÐòÌá½»¸øMapReduce£¬Èôó¸çºÍСµÜÃÇÈ¥×ö£¬ÎÒÃdzÆÖ®ÎªÒ»¸ö×÷Òµ£¬Ó¢ÎÄÃû½Ð×öjob¡£

Èý¡¢³ÌÐò×öÁËʲô

¹Ø¼üµãÀ´ÁË¡£

1¡¢Îļþ·Ö¸î

Õâô´óÒ»¸öÊý¾ÝÎļþtest.txt,Ê×ÏÈÊäÈë½øÀ´Ö®ºó£¬»á±»·Ö¸î³ÉÒ»¿éÒ»¿éµÄ£¬³ÆÖ®ÎªÒ»¸ö¸ösplit¡£ÎªÁË·½±ãÎÒÃǼÙÉè·Ö³ÉÁË5¸ösplit£¬·Ö±ðÊÇsplit1~5£¬Ëµ°×ÁË£¬¿ÉÒÔÈÏΪÊǰÑtest.txt·Ö³ÉÁËÎå¸öСÎļþsplit1~5£¬Ã¿¸ösplitÀïÃæÓкܶàÐÐÊý¾Ý¡££¨µ½µ×ÊäÈëÎļþÔõô»®·Ö£¬¿ÉÒÔ¿´¿´InputSplit,¿ÉÒÔÉèÖõģ¬ÕâÀïÎÒÃǾͼÙÉèÄǸötest.txtÎļþÄÚÈÝ´ÓÉϵ½Ï·ֳÉÁË5·Ý£©¡£½ÓÏÂÀ´·Ö±ð¶ÔÕâ5¸ösplit½øÐе¥´ÊµÄͳ¼Æ£¬½Ð×ö·Ö²¼Ê½ÔËË㡣ÿһ¸ösplit×÷ΪÊäÈëÊý¾Ý£¬¸øÁËÒ»¸öMap£¬Òò´Ë½Ð×öMapÈÎÎñ£¬ÄãÒ²¿ÉÒÔ½Ð×öMapper£¬ÔÚ±àд³ÌÐòÀïÃæMapperÊÇÒ»¸öÀ࣬ÓÃÁ˼̳еġ£

Òò´Ë£¬×ܽáһϾÍÊÇ£ºÒ»¸öÎļþ£¬·Ö³ÉÁËsplit1~5Îå¸öÊý¾Ý·ÖƬ£¬Ã¿¸öÊý¾Ý·ÖƬ¶ÔÓ¦Ò»¸öMapÈÎÎñ£¬¹²Îå¸öMapÈÎÎñ£¬·Ö±ðΪMap1~5¡£ÄÇôÕâ5¸öÈÎÎñÈÃË­È¥¸ÉÄØ£¿´ó¸ç¡°JobTracker¡±Ëµ£¬Ð¡µÜ¡°Tasktracker¡±ÃÇÈ¥¸É°É¡£ÒªÊÇÓÐ5¸öСµÜ£¬Ò»ÈËÒ»¸öMapÈÎÎñ£¬¿ÉÊǼÙÈçÓÐÈý¸öСµÜµÄ»°£¬ÄÇôÆäÖÐÁ½¸öСµÜ¾Í±ØÐë¶à¸ÉÒ»¸öÈÎÎñ¡£

£¨Êµ¼ÊÔËÐйý³ÌÖУ¬´ó¸ÅÊÇÿ¸öСµÜ´óÔ¼10µ½100¸öMap£¬¶ÔÓÚCPUÏûºÄ½ÏСµÄ£¬´ó¸ç¿ÉÄÜ»á¸øÕâ¸öСµÜ·ÖÅä300¸ö×óÓÒ£©

2.Map²Ù×÷

ÈÃÎÒÃǰѾµÍ·À­½øÆäÖÐÒ»¸ösplitµÄMap¹ý³Ì£¬¼ÙÉèÊÇsplit1µÄMap1¹ý³Ì¡£

Split1ÓкöàÐÐÊý¾Ý£¬ÕûÌ司ÁËMapÈÎÎñÈ¥²Ù×÷¡£ÄÇôMapÈÎÎñÔõô²Ù×÷ÄØ£¿ÔÚ³ÌÐòÀïÃæÆäʵ¾ÍÊÇÒ»¸öMapperÀà¶øÒÑ¡£Òò´ËÕæÕýʵÏÖ²Ù×÷µÄÊÇMapperÀàµÄÆäÖеÄmap·½·¨À´²Ù×÷£¬map·½·¨»á¶ÔÊäÈëÎļþ½øÐвÙ×÷¡£ÄÇôÎÊÌâÀ´ÁË£¬map·½·¨µÄÊäÈëkeyºÍvalueÊÇÊ²Ã´ÄØ£¬ÊÇsplit1µÄËùÓÐÊý¾Ý»¹ÊÇijһÐÐÊý¾Ý¡£´ð°¸ÊÇ£ºÄ³Ò»ÐÐÊý¾Ý¡£ÄÇÊÇÔõôÔõô´¦ÀíÍê³ÉÄÇô¶àÐÐÊý¾ÝµÄ¡£´ð°¸ÊÇ£ºÔËÐжà´Îmap·½·¨¡£

Òò´Ë£¬×ܽáһϾÍÊÇ£ºsplit1ÓкܶàÐÐÊý¾Ý£¬map1ÈÎÎñÈ¥´¦Àí£¬¶ÔÓÚÿһÐÐÊý¾Ý£¬ÔËÐÐÒ»´Îmap·½·¨¡£

¼ÙÈçsplit1ÓÐÈýÐУºµÚÒ»ÐУºhello world µÚ¶þÐУºhello hadoop µÚÈýÐУºhello hadoop¡£

¾­¹ýMap1ÈÎÎñÔËÐÐÈý´Îmap·½·¨£¬

µÚÒ»´Îmap·½·¨µÄ£º

ÊäÈëµÄkeyΪ1£¬valueΪ£ºhello world£¨ÆäÖÐkeyµÄÖµÊÇÎÒϹ±àµÄ£¬valueÖµÊǶԵģ©¡£ÔËÐÐmap·½·¨ÀïÃæµÄ´úÂëºó

Êä³öΪ£ºµÚÒ»ÐУºhello 1£¬µÚ¶þÐУºworld 1

µÚ¶þ´ÎÔËÐÐmap·½·¨µÄ

ÊäÈëµÄkeyΪ12£¬valueΪ£ºhello hadoop£¬ÔËÐÐmap·½·¨ºó£¬

Êä³öΪ£ºµÚÒ»ÐУºhello 1,£¬µÚ¶þÐУºhadoop 1

µÚÈý´ÎÔËÐÐmap·½·¨

ÊäÈëµÄkeyΪ23£¬valueΪ£ºhello hadoop£¬ÔËÐÐmap·½·¨ºó£¬

Êä³öΪ£ºµÚÒ»ÐУºhello 1£¬hadoop 1

×îÖÕ£¬split1£¬¾­¹ýÒ»´ÎMap1ÈÎÎñµÄºÃ¶à´Îmap·½·¨ÔËÐкó£¬×îÖÕÊä³ö½á¹û¿ÉÄÜÈçÏ£º

hello    1
world 1
hello 1
hadoop 1
hello 1
hadoop 1

×îÖÕ£¬5¸ösplit1~5ºÍ5¸ömap1~5Êä³öÁË5·Ý½á¹û£¬·Ö±ð´æÔÚÁ˲»Í¬µÄ½ÚµãÉÏ£¬ÒÔÖмäÎļþ´æÔڵģ¬¿ÉÄܲ¢²»ÊÇÖªµÀËüÃÇÔÚÄÄÀï¡£

½ÓÏÂÀ´£¬¾Í¸Ã½øÐÐReduceµÄ¹é²¢²Ù×÷£¬×îÖÕͳ¼Æ³öÀ´½á¹û£¬¿ÉÊÇÔÚReduce֮ǰ£¬MapÖ®ºó£¬»¹×öÁ˺ܶàÊÂÇ飬ÏÂÆªÔÙд°É£¬ÕâÆªÄÚÈÝÌ«³¤ÁË¡£

3.Combiner²Ù×÷

Ç°Ãæ½²ÍêMap²Ù×÷£¬×ܽáһϾÍÊÇ£ºÒ»¸ö´óÎļþ£¬·Ö³Ésplit1~5£¬¶ÔÓ¦ÓÚMap1~5£¬Ã¿Ò»¸öMap´¦ÀíÒ»¸ösplit£¬Ã¿Ò»¸ösplitµÄÿһÐУ¬»áÓÃÿһ¸öMapµÄmap·½·¨È¥´¦Àí£¬¾­¹ýÉÏÃæ²Ù×÷£¬×îÖÕÊä³öÁË5¸öÖмä½á¹û¡£

¶ÔÓÚÕâ5¸öÖмä½á¹ûµÄÿһ¸öÀ´Ëµ£¬¶¼ÓкܶàÐУ¬Ã¿Ò»ÐÐÊÇkey value¸ñʽµÄ£¬Èçhello¡¡¡¡1£¬ÕâÑù×Ó£¬ÔÚ´«¸øReducer֮ǰ£¬ÎªÁ˼õÉÙ´«ÊäµÄÊý¾ÝÁ¿£¬¿ÉÒÔÔö¼ÓÒ»¸öCombiner¹ý³Ì£¬°Ñÿ¸öÖмä½á¹û½øÐл¯¼ò¡£ÒòΪÿ¸öÖмä½á¹û¿ÉÄÜÓÐÏàͬµÄ¼üÖµµÄÐУ¬È磺hello 1£¬hello 1£¬Í¨¹ýcombiner£¬¾Í¿ÉÒԺϲ¢³ÉÒ»ÐУºhello 2.

ÇмǣºCombinerÊÇMapperÈÎÎñµÄÒ»²¿·Ö£¬½ôËæmap·½·¨Ö®ºó¡£¿´ÆðÀ´ÀàËÆReduceµÄ²Ù×÷¡£

Ö®ºó£¬¾Í¿ÉÒÔ°ÑCombinerµÄÊä³ö´«ÈëReducer£¬¶ø²»ÊÇMapµÄÊä³ö´«ÈëReducer¡£CombinerÐèÒª×Ô¼ºÖ¸¶¨£¬µ±È»Ò²¿ÉÒÔ²»Ð´¡£

4.Reducer²Ù×÷

Reduce²Ù×÷·Ö³ÉÁËÈý¸ö¹ý³Ì

£¨1£©Shuffle

Ç°ÃæµÄMap»òÕßCombinerµÄÊä³ö£¬Ò»¹²ÓÐÓÐ5·ÝÖмä½á¹û£¬ÆäÖеÄÿһ·Ý½á¹û£¬°´ÕÕKeyÖµ¿ÉÒԷֳɣ¨Ô¤Ïȶ¨ÒåµÄR·Ý£©£¬ÓÉR¸öReduceÀ´²Ù×÷£¨Í¨¹ýPartitioner½Ó¿ÚÍê³É£©¡£Òò´ËR¸öReduceÐèÒªÏò5¸öÖмä½á¹û¶¼È¡Ò»¶ÎÊý¾Ý£¬5¸öÖмä½á¹ûµÄÆäÖÐÿһ½á¹ûÊÇÓÉR¸öReduce²Ù×÷µÄ¡£

¼òµ¥À´Ëµ£º¶ÔÓÚÆäÖÐijһ¸ö¸öReduce1À´Ëµ£¬·Ö±ð´ÓMap1~Map5ÀïÃæ°ÑÐèÒªµÄÄÇÒ»·ÝcopyÖÁ±¾µØ£¬È»ºóÔٺϲ¢Mergeһϣ¬¹©SortʹÓá£

£¨2£©Sort

¶ÔÓÚÿһ¸öReduceÀ´Ëµ£¬½øÀ´µÄÊý¾ÝΪ5¸öÖмä½á¹ûµÄÖеÄÒ»¶Î£¬¼´ShuffleµÄ½á¹û£¬ÀïÃæ¿ÉÄÜÓÐÖØ¸´µÄkey£¬Òò´Ë×÷ΪReduceÊäÈë֮ǰ£¬»áÓÐÒ»¸ösort²Ù×÷£¬°ÑÏàͬKeyµÄÕûºÏһϣ¬ÀýÈç<hello£¬1>,<hello,1>ÕûºÏ³É<hello,(1,1)>£¬×÷ΪReduceµÄÊäÈ룬ËùÒÔReduceµÄÊäÈëµÄvalueÒ»°ãÊÇIterableµÄ¡£

£¨3£©Reduce

ÕâÀïÊÇÎÒÃDZàд³ÌÐòµÄµØ·½ÁË£¬Ò»¹²R¸öReduce£¬¾ÍÄܲúÉúR¸öÖмä½á¹ûÁË¡£

×¢Ò⣺shuffle¡¢sort¡¢ReduceÊÇÔÚReduce½ÚµãÍê³ÉµÄ£¬¶ø²»ÊÇÔÚMap½ÚµãÍê³É£¬ÓÐЩÊé¼®ÉÏдµÄÊÇ´íµÄ£¡

†ª†ªàÂྐྵȻ½²ÁËÕâô¶à£¬ÉÏÒ»¸öÎÒ×Ô¼ºËæÊÖ»­µÄͼ£¬´ÕºÏ¿´°É¡£

   
2566 ´Îä¯ÀÀ       28
 
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
 
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
 
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þµÄ˼¿¼
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS
Ïà¹ØÅàѵ¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
Windows Azure ÔÆ¼ÆËãÓ¦ÓÃ

ĦÍÐÂÞÀ­ ÔÆÆ½Ì¨µÄ¹¹½¨ÓëÓ¦ÓÃ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ù
ijÑз¢ÖÐÐÄ Openstackʵ¼ù
ÖªÃûµç×Ó¹«Ë¾ ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦ÓÃ
ijµçÁ¦ÐÐÒµ »ùÓÚÔÆÆ½Ì¨¹¹½¨ÔÆ·þÎñ
ÔÆ¼ÆËãÓëWindows AzureÅàѵ
±±¾© ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ