¸üÐÂʱ¼ä:2022Äê05ÔÂ26ÈÕ10ʱ15·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:

¡¡¡¡½ñÌìµÄPython´óÊý¾ÝÅàѵ¿Î³ÌÎÒÃǽ²Ò»ÏÂMapTask¹¤×÷ÔÀí£¬MapTask×÷ΪMapReduce¹¤×÷Á÷³ÌµÄǰ°ë²¿·Ö£¬ËüÖ÷Òª¾ÀúÁË5¸ö½×¶Î£¬·Ö±ðÊÇRead½×¶Î¡¢Map½×¶Î¡¢Collect½×¶Î¡¢Spill½×¶ÎºÍCombine½×¶Î£¬Èçͼ4-7Ëùʾ¡£

¡¡¡¡Í¼4-7MapTask¹¤×÷ÔÀí
¡¡¡¡¹ØÓÚMapTaskÕâ5¸ö½×¶ÎµÄÏà¹Ø½éÉÜÈçÏ£º
¡¡¡¡£¨1£©Read½×¶Î£ºMapTaskͨ¹ýÓû§±àдµÄRecordReader£¬´ÓÊäÈëµÄInputSplitÖнâÎö³öÒ»¸ö¸ökey/value¡£
¡¡¡¡£¨2£©Map½×¶Î£º½«½âÎö³öµÄkey/value½»¸øÓû§±àдµÄmap()º¯Êý´¦Àí£¬²¢²úÉúһϵÁÐеÄkey/value¡£
¡¡¡¡£¨3£©Collect½×¶Î£ºÔÚÓû§±àдµÄmap()º¯ÊýÖУ¬Êý¾Ý´¦ÀíÍê³Éºó£¬Ò»°ã»áµ÷ÓÃoutputCollector.collect()Êä³ö½á¹û£¬Ôڸú¯ÊýÄÚ²¿£¬Ëü»á½«Éú³ÉµÄkey/value·ÖƬ£¨Í¨¹ýµ÷ÓÃpartitioner£©£¬²¢Ð´ÈëÒ»¸ö»·ÐÎÄڴ滺³åÇøÖС£
¡¡¡¡£¨4£©Spill½×¶Î£º¼´“Òçд”£¬µ±»·Ðλº³åÇøÂúºó£¬MapReduce»á½«Êý¾Ýдµ½±¾µØ´ÅÅÌÉÏ£¬Éú³ÉÒ»¸öÁÙʱÎļþ¡£ÐèҪעÒâµÄÊÇ£¬½«Êý¾ÝдÈë±¾µØ´ÅÅÌǰ£¬ÏÈÒª¶ÔÊý¾Ý½øÐÐÒ»´Î±¾µØÅÅÐò£¬²¢ÔÚ±ØÒªÊ±¶ÔÊý¾Ý½øÐкϲ¢¡¢Ñ¹ËõµÈ²Ù×÷¡£
¡¡¡¡£¨5£©Combine½×¶Î£ºµ±ËùÓÐÊý¾Ý´¦ÀíÍê³ÉÒÔºó£¬MapTask»á¶ÔËùÓÐÁÙʱÎļþ½øÐÐÒ»´ÎºÏ²¢£¬ÒÔÈ·±£×îÖÕÖ»»áÉú³ÉÒ»¸öÊý¾ÝÎļþ¡£
±±¾©Ð£Çø