MapReduce
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : JCvs>Search>Document>ManReduce



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

Contents

1 MapReduce ¼Ò°³
2 ÇÁ·Î±×·¡¹Ö ¸ðµ¨
3 MapReduce Å×½ºÆ®
3.1 ÀÀ¿ë
3.1.1 Àüü È帧
3.2 Master µ¥ÀÌÅÍ ±¸Á¶Ã¼
3.3 Fault Tolerance
3.3.1 Worker Failure
3.3.2 Master Failure
3.3.3 Semantics in ther Presence of Failures
3.3.4 Locality
4 »ùÇà ÇÁ·Î±×·¥
5 NutchÀÇ MapReduce ¿£Áø
6 Âü°í¹®Çå

1 MapReduce ¼Ò°³

MapReduce´Â ´ë·®ÀÇ ÀÚ¿øÀ» ´Ù·ç´Â ºÐ»ê/º´·Ä ½Ã½ºÅÛÀÇ È¿À²ÀûÀÎ Áö¿øÀ» À§ÇÑ ¸ñÀûÀ¸·Î Google¿¡¼­ ¸¸µé¾î³½ ÇÁ·Î±×·¡¹Ö ¸ðµ¨ÀÌ´Ù. Å×¶ó¹ÙÀÌÆ® ´ÜÀ§ÀÇ µ¥ÀÌÅ͸¦ ó¸®ÇØ¾ß ÇÏ´Â GoogleÀÇ ÀÔÀå¿¡¼­ ºÐ»ê/º´·Ä ½Ã½ºÅÛÀ» Áö¿øÇϱâ À§ÇÑ ÀÌ·¯ÇÑ ÅøÀÇ °³¹ßÀº ÇÊ¿¬ÀûÀÎ ¿ä±¸»çÇ×ÀÌ¿´À» °ÍÀÌ´Ù. ºÐ»ê/º´·Ä ½Ã½ºÅÛÀÇ È¿°úÀûÀÎ Áö¿øÀ» À§Çؼ­´Â ´ÙÀ½ÀÇ »çÇ×µéÀÌ ¸¸Á·µÇ¾î¾ß ÇÑ´Ù.
  1. º´·Äó¸® : ÇϳªÀÇ °Å´ëÇÑ µ¥ÀÌÅÍ´Â ¿©·¯°³ÀÇ ºÐ»êµÈ ½Ã½ºÅÛÀ¸·Î º¸³»¾îÁ®¼­ º´·ÄÀûÀ¸·Î ó¸®µÉ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
  2. fault-tolerance : º´·Ä½Ã½ºÅÛÁß ¸î°³¿¡ ¹®Á¦°¡ »ý±â´õ¶óµµ Àüü ½Ã½ºÅÛ¿¡ ¿µÇâÀ» ÁÖ¸é ¾ÈµÈ´Ù. ÀÚµ¿À¸·Î °ü¸®ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
  3. µ¥ÀÌÅÍºÐ»ê ¹× ·Îµå¹ë·±½Ì

2 ÇÁ·Î±×·¡¹Ö ¸ðµ¨

¿ë¾î¿¡¼­ ¾Ë ¼ö ÀÖµíÀÌ MapReduce ´Â Map°ú Reduce°¡ ÇÕÃÄÁø ¿ë¾î·Î, Map ÇÔ¼ö¿Í Reduce ÇÔ¼öÀÇ Á¶ÇÕÀ» ÅëÇØ¼­ ºÐ»ê/º´·Ä ½Ã½ºÅÛ¿î¿ëÀ» Áö¿øÇÑ´Ù. MapReduce´Â µ¥ÀÌÅ͸¦ {Key, Value} ÀÇ ½ÖÀ¸·Î ¸¸µé°í À̸¦ ó¸®ÇÏ´Â ÇÁ·Î¼¼½º¸¦ °¡Áø´Ù.

MapÀº »ç¿ëÀÚ Á¤ÀÇ ÀڷᱸÁ¶À̸ç, ÀԷµ¥ÀÌÅÍ¿¡¼­ Key/Value ½ÖÀ¸·Î ÀÌ·ç¾îÁø Áß°£ µ¥ÀÌÅÍ ÇüÅÂÀÇ µ¥ÀÌÅ͸¦ ¸¸µé¾î³½´Ù. MapReduce ¶óÀ̺귯¸®´Â Value¿¡ ´ëÇØ¼­ Key I¸¦ ÇÔ²² °ü¸®ÇÑ´Ù. ±×¸®°í ÀÌ Áß°£µ¥ÀÌÅÍ´Â Reduce ÇÔ¼ö·Î ³Ñ°ÜÁø´Ù.
Reduce ÇÔ¼ö¿ª½Ã À¯Àú¿¡ ÀÇÇØ¼­ ÀÛ¼ºµÇ¸ç, Key I¿Í Key I¿¡ ´ëÇÑ Value¸¦ ¹Þ¾ÆµéÀÌ°Ô µÈ´Ù. ±×¸®°í Key°ªÀ» ÀÌ¿ëÇØ¼­ Value°ªÀ» ÇÕÄ¡°Ô µÈ´Ù.

3 MapReduce Å×½ºÆ®

±×·³ MapReduce ¸¦ Å×½ºÆ® ÇÁ·Î±×·¥ÀÇ ¿¹¸¦ µé¾î¼­ ÀÌÇØ¸¦ ÇØº¸µµ·Ï ÇϰڴÙ.

¸¸µé°íÀÚ ÇÏ´Â ÇÁ·Î±×·¥Àº ¿©·¯°³ÀÇ ¹®¼­·ÎºÎÅÍ °¢°¢ÀÇ ´Ü¾î°¡ ¸î°³¾¿ ÀÖ´ÂÁö¸¦ °Ë»çÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. Á¦´ë·Î Å×½ºÆ® Çϱâ À§Çؼ­´Â ºÐ»ê½Ã½ºÅÛ È¯°æÀ» ¸¸µé¾î¾ß °ÚÁö¸¸, »óȲÀÌ ¿©ÀÇÄ¡ ¾ÊÀ¸¹Ç·Î ·ÎÄýýºÅÛ¿¡¼­ IPC¸¦ ÀÌ¿ëÇØ¼­ ¸®¸ðÆ® ºÐ»ê ȯ°æÀ» Èä³»³»µµ·Ï ÇϰڴÙ.

mapreduce.png

ºÐ¼®ÇØ¾ß ÇÏ´Â ¿©·¯°³ÀÇ ÀÔ·Â ¹®¼­¸¦ fork(2)µÈ worker ÇÁ·Î¼¼½º°¡ Àоîµé¿©¼­ MapÀ¸·Î ¸¸µç´ÙÀ½, ±× °á°ú¸¦ Áß°£ÆÄÀÏ(Intermediate Files)·Î ÀúÀåÇÑ´Ù. ÀúÀåÇÑ Áß°£ÆÄÀÏÀº ´Ù½Ã Recude worker ÇÁ·Î¼¼½º°¡ Àоîµé¿©¼­ ÃÖÁ¾ °á°úÆÄÀÏÀ» »ý¼ºÇÑ´Ù.

À̸¦ ¸®¸ðƮȯ°æ¿¡¼­ ±¸ÇöÀ» ÇÑ´Ù¸é Map worker ÇÁ·Î¼¼½º°¡ »ý¼ºÇÑ Áß°£ÆÄÀÏÀº ·ÎÄà ÆÄÀϽýºÅÛ¿¡ ÀúÀåµÇ°í, ¿ø°ÝÁö¿¡ ¼³Ä¡µÇ¾î ÀÖ´Â Reduce worker ÇÁ·Î¼¼½º°¡ ÆÄÀÏÀ» ÀÒ¾î °¡´Â Çü½ÄÀÌ µÉ°ÍÀÌ´Ù. User ÇÁ·Î±×·¥Àº °¢°¢ÀÇ workerÇÁ·Î¼¼½º¿¡ ÀÛ¾÷À» ÇÒ´çÇÏ°í °ü¸®ÇÏ´Â ÀÏÀ» ÇÏ°Ô µÈ´Ù.

·ÎÄýýºÅÛ¿¡¼­ À§ÀÇ È¯°æÀ» Èä³»³»°íÀÚ ÇÑ´Ù¸é Reduce worker ÇÁ·Î¼¼½º°¡ IPC¸¦ ÀÌ¿ëÇØ¼­ Áß°£ÆÄÀÏÀ» ÀÐ¾î °¡µµ·Ï ¹Ù²Ù¸é µÉ°ÍÀÌ´Ù.

3.1 ÀÀ¿ë

À§ÀÇ ±¸Á¶´Â MapReduce ½Ã½ºÅÛÀÇ ±¸Á¶¸¦ ´ÜÀûÀ¸·Î º¸¿©ÁØ´Ù. ´Ù¸¸ ÀÀ¿ë¹üÀ§¿Í ȯ°æ¿¡ µû¶ó¼­ ´Ù¾çÇÑ ¹æ½ÄÀ¸·ÎÀÇ ±¸¼ºÀÌ °¡´ÉÇÒ °ÍÀÌ´Ù. ¿©±â¿¡¼­´Â ¸î°³ÀÇ ¿µ¹®¼­¿¡¼­ ´Ü¾î¸¦ Ä«¿îÆÃÇÏ´Â Ä«¿îÆÃ¿£ÁøÀ¸·Î ±¸ÇöÀÀ¿ë¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸µµ·Ï ÇϰڴÙ.

3.1.1 Àüü È帧

´Ü¼øÇÏ°Ô »ý°¢Çϸé, ÆÄÀÏ´ÜÀ§·Î map worker¿¡ 󸮸¦ ³Ñ±âµµ·Ï ÇÏ¸é µÇ°ÚÁö¸¸ ÀÌ´Â Á¦´ë·ÎµÈ º´·Ä/ºÐ»ê ȯ°æÀ̶ó°í º¸±â´Â Èûµé´Ù. ¾î¶² ÆÄÀÏÀº 1MegaÀÌ°í ¾î¶² ÆÄÀÏÀº 100MegaÀÏ ¼ö Àֱ⠶§¹®ÀÌ´Ù. ±×·¯¹Ç·Î ¿©·¯°³ÀÇ ÆÄÀÏÀ» ÇϳªÀÇ ÆÄÀÏó·³ ÀνÄÀ» Çϰí, À̰ÍÀ» ÀÏÁ¤ÇÑ Å©±â·Î Âɰ³¾î¼­ ÀоîµéÀ̵µ·Ï ÇØ¾ß ÇÑ´Ù. User ProgramÀº ÆÄÀÏÀÇ ¸ñ·Ï°ú Å©±â¸¦ °ü¸®ÇÑ´ÙÀ½¿¡, °¢°¢ÀÇ map worker ÇÁ·Î¼¼½º¿¡°Ô, ¾î¶² Á¶°¢À» ó¸®ÇÒÁö¸¦ ¾Ë·ÁÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù. À̸¦ À§Çؼ­ User ProgramÀº ÆÄÀÏÀÇ ¸ñ·Ï°ú Å©±â »Ó¸¸ ¾Æ´Ï¶ó, ÇØ´ç Worker°¡ ÆÄÀÏÀÇ ¹üÀ§¸¦ ã¾Æ°¥ ¼ö ÀÖµµ·Ï offsetÁ¤º¸µµ À¯Áö¸¦ ÇØ¾ß ÇÑ´Ù.

  1. User ProgramÀº È¿À²ÀûÀÎ º´·Ä/ºÐ»ê󸮰¡ °¡´ÉÇϵµ·Ï ÆÄÀÏÀ» ÀÏÁ¤ÇÑ Å©±â¸¦ °¡Áö´Â M °³ÀÇ Á¶°¢À¸·Î Âɰµ´Ù.
  2. User Program¿¡´Â MasterÀ̶ó´Â Ưº°ÇÑ ÇÁ·Î¼¼½º°¡ Á¸ÀçÇÑ´Ù. MasterÀº worker¿¡°Ô M map°ú R reduce¸¦ ÇÒ´çÇϸç, °¢ workerÀÇ »óŸ¦ °ü¸®ÇÑ´Ù.
  3. workerÀº ÇÒ´çµÈ ¹®¼­¸¦ ÀоîµéÀδÙÀ½ À¯ÀúÁ¤ÀÇ Map ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­ key/value ÇüÅ·Πµ¥ÀÌÅ͸¦ ÀоîµéÀδÙ. MapÇÔ¼ö´Â ¸¸µé¾îÁø key/value¸¦ buffer ¸Þ¸ð¸®¿¡ ÀúÀåÇÑ´Ù. ÀÌ °æ¿ì key´Â ÆÄÀϸíÀÌ µÉ °ÍÀ̰í, value´Â {´Ü¾î,count}°¡ µÉ °ÍÀÌ´Ù.
  4. buffer ¸Þ¸ð¸®(ȤÀº ÆÄÀÏ)¿¡ ÀÖ´Â key/value´Â ÁÖ±âÀûÀ¸·Î Áö¿ªÆÄÀÏ¿¡ ¾´´Ù. ÀÌ ÆÄÀÏÀº master¿¡ ÀÇÇØ¼­ °ü¸®µÇ¸ç, reduce worker¿¡ ÇÒ´çÀÌ µÈ´Ù.
  5. reduce workerÀÌ master·Î ºÎÅÍ ½ÅÈ£¸¦¹Þ¾Ò´Ù¸é, map worker¿¡ ÀÇÇØ¼­ Áö¿ªÆÄÀÏ¿¡ ¾º¿©Áø buffer µ¥ÀÌÅ͸¦ °¡Á®¿Â´Ù. master¿Í reduce worker¿ÍÀÇ Åë½ÅÀº remote procedure callµîÀ» ÀÌ¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. Áß°£ÆÄÀÏÀ» ÀüºÎ Àоîµé¿´´Ù¸é, µ¿ÀÏ key°ªÀ» ÀÌ¿ëÇØ¼­, value¿Í °ü·ÃµÈ ÇÊ¿äÇÑ °è»êÀ» ÇÏ¸é µÈ´Ù. ÇϳªÀÇ reduceÀÛ¾÷¿¡ ´Ù¾çÇÑ Á¾·ùÀÇ keyµéÀÌ Á¸ÀçÇϱ⠶§¹®¿¡, sort°¡ µÈÈÄ ÀÛ¾÷ÀÌ µÇ¾îÁú Çʿ䰡 ÀÖ´Ù. ÀÌ·¯ÇÑ ÀÛ¾÷Àº »ó´çÈ÷ ¸¹Àº ¸Þ¸ð¸®¸¦ Â÷ÁöÇÏ°Ô µÇ´Âµ¥, ÀÌ·²°æ¿ì ´Ù¸¥ ÇÁ·Î±×·¥¿¡ ¼ÒÆ®¸¦ ¸Ã±âµµ·Ï ÇÑ´Ù.
  6. reduce worker¿¡¼­ ¼ÒÆ®¸¦ ÇØ¼­ À¯ÀÏÇÑ key¸¦ ¸¸µé¾î ³¾ ¼ö ÀÖ°Ô µÇ´Âµ¥, À̶§ »ç¿ëÀÚ Á¤ÀÇµÈ Reduce ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­, value¿¡ ´ëÇÑ ¿¬»êÀ» ÇÏ¸é µÈ´Ù. ¿¬»êÈÄ °á°ú´Â output ÆÄÀÏ·Î ¾º¿©Áö°Ô µÈ´Ù output ÆÄÀÏ·Î ¾º¿©Áö°Ô µÈ´Ù.
  7. ¸ðµç ÀÛ¾÷ÀÌ ¿Ï·áµÇ¾ú´Ù¸é, reduce workerÀº ÇÁ·Î±×·¥ ¸®ÅϰªÀ» User Program¿¡°Ô ³Ñ°ÜÁØ´Ù.

3.2 Master µ¥ÀÌÅÍ ±¸Á¶Ã¼

masterÀº map ÀÛ¾÷, recude ÀÛ¾÷°ú ÁøÇà»óÅÂ(ÈÞ¸é,ÁøÇàÁß,¿Ï·á)¿Í worker ±â°è¿¡ ´ëÇÑ Á¤º¸¸¦ À¯ÁöÇϰí ÀÖ¾î¾ß ÇÑ´Ù.
¶ÇÇÑ Áß°£ÆÄÀÏÀ» reduce worker¿¡°Ô ºÐ¹èÇϱâ À§Çؼ­, ¿ÏÀüÈ÷ ÀÛ¾÷ÀÌ ³¡³­ ÆÄÀÏ¿¡ ´ëÇØ¼­ Å©±â¸¦ ¸ðµÎ À¯ÁöÇϰí ÀÖ¾î¾ß ÇÑ´Ù. ±×·¡¾ßÁö¸¸ reduce worker¿¡°Ô ÇÒ´çÇÒ µ¥ÀÌÅÍÀÇ Å©±â¸¦ °áÁ¤ÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.

3.3 Fault Tolerance

ÀÌ·¯ÇÑ MapReduce ½Ã½ºÅÛÀº Å©°Ô´Â ¼ö¹é¿¡¼­ ¼öõÀÇ ±â°è¸¦ ÀÌ¿ëÇØ¼­ Á¤º¸¸¦ ó¸®ÇØ¾ß ÇÏ´Â °æ¿ì°¡ »ý±â¸ç, ¶§¹®¿¡ Fault Tolerance´Â ¸Å¿ì Áß¿äÇÑ »çÇ×ÀÌ´Ù. ¹ß»ýÇÒ¼ö ÀÖ´Â FaultÀÇ ÇüÅ¿¡ µû¶ó¼­ ¾î¶»°Ô ´ëÀÀÇØ¾ß ÇÏ´ÂÁö¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ.

3.3.1 Worker Failure

worker¿¡ ÁÖ±âÀûÀ¸·Î Ping¸¦ º¸³»¼­ ÀÀ´äÀ» È®ÀÎÇØ¾ß ÇÑ´Ù. ¸¸¾à ÀÏÁ¤½Ã°£µ¿¾È ÀÀ´äÀÌ ¾ø´Ù¸é worker¿¡ ¹®¼¼°¡ »ý±ä °ÍÀ¸·Î °£ÁÖÇÑ´Ù. ÀÌ °æ¿ì ´Ù¸¥ idle»óÅÂÀÇ worker¸¦ ã¾Æ¼­ ´ë½Å ó¸®Çϵµ·Ï ÇØ¾ß ÇÑ´Ù.

3.3.2 Master Failure

MasterÀÇ ¹®Á¦ ÇØ°áÀº ºñ±³Àû °£´ÜÇÏ´Ù. ÀÌÀü MasterÀÌ ÁøÇàÇß´ø ÀÛ¾÷ÀÌ Áß°£ÆÄÀÏ ÇüÅ·Π³²¾ÆÀÖ°í À̸¦ ÀÌ¿ëÇØ¼­ checkpointe¸¦ ¾Ë¾Æ³¾¼ö ÀÖ´Ù. °í·Î ±×³É Master¸¦ ´Ù½Ã ½ÇÇà½Ã۱⸸ ÇÏ¸é µÈ´Ù.

3.3.3 Semantics in ther Presence of Failures

3.3.4 Locality

³×Æ®¿öÅ© ´ë¿ªÆøÀº Áö¿ª ÄÄÇ»ÆÃ ȯ°æ¿¡ ºñÇØ¼­ »ó´ëÀûÀ¸·Î ¿­¾ÇÇÏ´Ù. ƯÈ÷ µ¥ÀÌÅͰ¡ ´Ù¼öÀÇ ¿ø°Ý ÄÄÇ»ÅÍ¿¡ ºÐ»êµÇ¾î ÀÖ´Ù¸é, À̸¦ ó¸®Çϱâ À§ÇÑ È¯°æÀ» ¸¸µå´Â °Íµµ ¸Å¿ì Èûµç ÀÛ¾÷ÀÌ µÉ ¼ö ÀÖ´Ù. ¶§¹®¿¡ ³×Æ®¿öÅ© »ó¿¡ °¡»óÀÇ ÆÄÀϽýºÅÛÀ» ¸¸µé¾î¼­, ¸¶Ä¡ ·ÎÄà ÄÄÇ»ÆÃ ȯ°æÀÎ°Í Ã³·³ ¸¸µé¾îÁÙ Çʿ䰡 ÀÖ´Ù.

GoogleÀÇ °æ¿ì GFS(Google File System)À» ¸¸µé¾î¼­ ÀÌ ¹®Á¦¸¦ ÇØ°áÇϰí ÀÖ´Ù. °ø°³Áø¿µ ¼Ò½º¿¡´Â GFS(Global File System)°¡ »ç¿ëµÇ¾îÁö°í ÀÖ´Ù. À̵é ÁÖÁ¦´Â º°µµÀÇ ÆäÀÌÁö¸¦ ¸¸µé¾î¼­ Á¤¸®ÇØ º¸°íÀÚ ÇÑ´Ù.

4 »ùÇà ÇÁ·Î±×·¥

MapReduce ÇÁ·Î±×·¡¹Ö ¸ðµ¨À» Å×½ºÆ® Çϱâ À§Çؼ­ ¹®¼­·ÎºÎÅÍ ´Ü¾î¸¦ ÃßÃâÇØ¼­ Ä«¿îÆÃÇϰí, Map Reduce °úÁ¤À» °ÅÃļ­ ÃÖÁ¾ÀÇ °á°ú¹°À» ¸¸µå´Â ÇÁ·Î±×·¥À» ¸¸µé¾î º¸µµ·Ï ÇϰڴÙ.

ÀÌ ¿¹Á¦´Â MapReduceÀÇ ÀÌ·ÐÀûÀÎ Ãø¸éÀ» ±¸ÇöÇϴµ¥ ÃÐÁ¡À» ¸ÂÃâ °ÍÀÌ´Ù. Worker ½ºÄÉÁì, Fault Tolerance µîÀº °í·ÁµÇÁö ¾ÊÀ» °ÍÀÌ´Ù. Map Reduce °úÁ¤À» °ÅÃļ­ »ý¼ºµÇ´Â Output File´Â ¿ëÀÌÇÑ °Ë»öÀ» Áö¿øÇϱâ À§ÇÑ »öÀÎ DB°¡ µÉ °ÍÀÌ´Ù.

´ÙÀ½Àº ¿ì¸®°¡ ¸¸µé »öÀÎ ÇÁ·Î±×·¥ÀÇ MapReduce ´ÙÀ̾î±×·¥ÀÌ´Ù.

term.png

  1. 4°³ÀÇ RFC¹®¼­°¡ ÁÖ¾îÁø´Ù.
  2. map worker¿¡ ºÐ¹èÇϱâ À§Çؼ­ 4°³ÀÇ ¹®¼­¸¦ 3°³ÀÇ Á¶°¢À¸·Î ¹Ù²Û´Ù.
  3. 3°³ÀÇ map workerÀ» ½ÇÇà½Ã۰í, °¢°¢ÀÇ Á¶°¢À» Àоî¿Í¼­ <DID, Term> Çü½ÄÀÇ µ¥ÀÌÅ͸¦ »ý¼ºÇÑ´Ù.
    ÀÌ ÀÛ¾÷Àº º´·ÄÀûÀ¸·Î ¼öÇàµÈ´Ù.
  4. reduce worker¿¡¼­ <DID, Term> µ¥ÀÌÅ͸¦ Àоî¿Í¼­ <Term, DID>·Î Term InvertÇÑ´Ù.
  5. Term InvertµÈ µ¥ÀÌÅ͸¦ Term.idx ÆÄÀÏ¿¡ ÀúÀåÇÑ´Ù.

ÀÌ·¸°Ô ÇØ¼­ 3°³ÀÇ <Term, DID> .idx ÆÄÀÏÀÌ »ý¼ºµÇ¾ú´Ù°í °¡Á¤À» ÇØº¸ÀÚ. ¸¸µé¾îÁø °á°ú¹°ÀÌ, »öÀε¥ÀÌÅͷνáÀÇ ±â´ÉÀ» ¼öÇàÇϱâ À§Çؼ­´Â 3°³ÀÇ µ¥ÀÌÅ͸¦ ´Ù½Ã ÇÕÃļ­ Áߺ¹µÈ TermÀº Á¦°ÅÇϰí, ¿©·¯°³ÀÇ ¹®¼­¿¡ Æ÷ÇԵǾî ÀÖ´Â TermÀº ÇϳªÀÇ ·¹ÄÚµå·Î ¸¸µé¾îÁà¾ß ÇÑ´Ù. ¾Æ¸¶µµ ¾Æ·¡¿Í °°Àº ÀڷᱸÁ¶¸¦ °¡Áú °ÍÀÌ´Ù.
struct LastIndexResult 
{ 
    string Term; 
    vector<string> DID; 
} 
set<LastIndexResult> IndexSet; 
 
±× ´ÙÀ½ À§ÀÇ Á¤º¸¸¦ ÆÄÀÏ·Î ÀüºÎ ¾²¸é µÈ´Ù. ¶ó°í °£´ÜÈ÷ ¼³¸íÀº ÇßÁö¸¸, ½¬¿î ¹æ¹ýÀ¸·Î ÇØ°áÇÒ ¼ø ¾ø´Ù. ½±°Ô »ý°¢Çغ¸ÀÚ¸é °¢°¢ÀÇ .idxÆÄÀÏ¿¡ ÀÌ¹Ì TermÀ¸·Î Á¤·ÄµÈ °ªÀÌ µé¾î°¡ ÀÖÀ¸¹Ç·Î, IndexSetÀ» ¸¸µå´Â°Ô ±×¸® ¹®Á¦µÇÁö ¾ÊÀ» °Å¶ó »ý°¢ÇÒ ¼ö ÀÖÁö¸¸, ¹®¼­ÀÇ ¾çÀÌ ¸¹¾ÆÁú °æ¿ì "¾öû³­ ¾çÀÇ ¸Þ¸ð¸®¸¦ ¼Òºñ"ÇØ¾ß ÇÑ´Ù´Â ¹®Á¦°¡ »ý±æ ¼ö Àֱ⠶§¹®ÀÌ´Ù. ±×·¯¹Ç·Î µ¥ÀÌÅ͸¦ ÀüºÎ ¸Þ¸ð¸®¿¡ ³Ö¾î¼­ Á¤·ÄÇÏ´Â °Íº¸´Ù´Â Á¤·ÄµÈ Áß°£ÆÄÀÏÀ» ¸¸µé¾î¼­ º´ÇÕ½ÃÄÑÁÖ´Â °úÁ¤ÀÌ ÇÊ¿äÇÏ´Ù. ±ÍÂú±â´Â ÇÏÁö¸¸ .idxÀÇ °ªµéÀº ¸ðµÎ Á¤·ÄµÇ¾î ÀÖÀ¸¹Ç·Î, Áß°£ÆÄÀÏÀ» ¸¸µé¾î¼­ º´ÇÕ½Ã۰í OUTPUT ÆÄÀÏÀ» ¸¸µå´Â°Ç ¾î·Á¿î ÀÛ¾÷Àº ¾Æ´Ò °ÍÀÌ´Ù.


»öÀο¡¼­ ¿¹Á¦·Î Á¦½ÃÇÑ indexer¸¦ ¼öÁ¤ÇÏ´Â ÇüÅ·Π¸¸µéµµ·Ï ÇϰڴÙ.

5 NutchÀÇ MapReduce ¿£Áø

MapReduce´Â ÇÁ·Î±×·¡¹Ö ¸ðµ¨À̰í, ½ÇÁ¦ Ȱ¿ëÇϱâ À§Çؼ­´Â MapReduceÇÁ·Î±×·¡¹Ö ¸ðµ¨ÀÌ Àû¿ëµÈ MapReduce ¿£ÁøÀÌ ÇÊ¿äÇÏ´Ù. ÀÌ ¿£ÁøÀ» À§Çؼ­´Â Å©°Ô ´ÙÀ½°ú °°Àº 3°³ÀÇ ¿ä¼Ò°¡ ÇÊ¿äÇÒ °ÍÀÌ´Ù.
  • Mapper
    Map Task¸¦ ½ÇÇàÇϱâ À§ÇÑ ÇÁ·Î¼¼½º·Î, ÆÄÀÏÀ» Split Çϰí, SplitµÈ °¢ ºÎºÐÀ» Àо <Key, Value>·Î ¸¸µé±â À§ÇÑ functionÀ» °¡Áø´Ù. <Key, Value>ÀÇ ¸ñ·ÏÀº Áß°£ÆÄÀÏ ÇüÅ·ΠÀúÀåÀÌ µÉ °ÍÀÌ´Ù.
  • Reducer
    Reduce Task¸¦ ½ÇÇàÇϱâ À§ÇÑ ÇÁ·Î¼¼½º·Î, Mapper¿¡ ÀÇÇØ¼­ Áß°£ÆÄÀÏ ÇüÅ·ΠÀúÀåµÈ <Key, Value>ÆÄÀÏÀ» Àоîµé¿©¼­, °á°úÆÄÀÏ·Î ¸¸µé¾î ³½´Ù.
  • Job Tracker
    °¢ Task¸¦ ½ÇÇàÇÏ´Â JobÀ» Á¦¾îÇϱâ À§ÇÑ ÇÁ·Î¼¼½º. Mapper°ú Reduce¸¦ ½ÇÇà½Ã۰í JobÀ» ÇÒ´çÇÑ´Ù.

MapReduce¿£ÁøÀº ÀÏÁ¾ÀÇ ÇÁ·¹ÀÓ¿öÅ©¶ó°í º¼ ¼ö ÀÖÀ¸¹Ç·Î, ´Ù¾çÇÑ JobÀ» ½ÇÇàÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ¶§·Î´Â »öÀÎÆÄÀÏÀ» ¸¸µé¾î¾ß Çϰí, ¶§·Î´Â ³×Æ®¿öÅ© ÆÄÀϽýºÅÛÀ» ¸¸µé ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ±×·¸´Ù¸é ÁÖ¾îÁøÀÏÀ» ÇÒ ¼ö ÀÖ´Â JobÀ» ¹èÆ÷ÇÒ ¼ö ÀÖµµ·Ï ½Ã½ºÅÛ/¼ÒÇÁÆ®¿þ¾îÀûÀ¸·Î ±¸¼ºÀÌ µÇ¾î¾ß ÇÒ °ÍÀÌ´Ù.

Java·Î ±¸ÇöÇÒ °æ¿ì¿¡´Â ¹ÙÀÌÆ®Äڵ带 ¹èÆ÷ÇÏ¸é µÇ¹Ç·Î, ½Ã½ºÅÛÀ̳ª ¿î¿µÃ¼Á¦¿¡ °ü°è¾øÀÌ ºñ±³Àû ½±°Ô ¹èÆ÷½Ã½ºÅÛÀ» ¸¸µé ¼ö ÀÖÀ» °ÍÀÌ´Ù. Perl, PythonµîÀ» ÀÌ¿ëÇØ¼­ ±¸ÇöÇØµµ Java¿Í µ¿ÀÏÇÑ È¿°ú¸¦ ¾òÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù.

ÄÄÆÄÀÏ ¾ð¾î- C/C++ °°Àº -·Î ±¸ÇöÀ» ÇÑ´Ù¸é, ½Ã½ºÅÛ°ú ¿î¿µÃ¼Á¦¿¡ ÀÇÁ¸ÀûÀÌ µÉ °ÍÀÌ´Ù. °¡Àå ÁÁÀº ¹æ¹ýÀº ¸ðµç ½Ã½ºÅÛÀ» µ¿ÀÏÇÑ ¿î¿µÃ¼Á¦¿Í µ¿ÀÏÇÑ ÄÄÆÄÀÏ·¯, ¶óÀ̺귯¸®¸¦ °¡Áöµµ·Ï ¼¼ÆÃ ÇÏ´Â °ÍÀÌ´Ù. ²Ï³ª ÁÖÀÇ ±íÀº ÀÛ¾÷À» ÇÊ¿ä·Î ÇÒ °ÍÀ̰í, µ¶ÀÚÀûÀÎ ¿î¿µÃ¼Á¦ ¹èÆ÷ÆÇÀ» Çϳª ¸¸µå´Â°Ô °¡Àå ÁÁÀ» °ÍÀÌ´Ù.

C/C++¿¡¼­ jobÀÇ ¹èÆ÷´Â °øÀ¯ ¶óÀ̺귯¸®ÇüÅ·Π¹èÆ÷µÇ¾î¾ß ÇÒ °ÍÀÌ´Ù. ¹«°¡µ¿ ½Ã½ºÅÛÀ¸·Î ¸¸µé·Á¸é µ¿Àû ¶óÀ̺귯¸® ÇüÅ·Π¸¸µé¾î¼­, signalÀÌ ÁÖ¾îÁú ¶§, ´Ù¿î·Îµå ¹ÞÀº ¶óÀ̺귯¸®¸¦ µ¿ÀûÀ¸·Î ÀûÀç½ÃŰ´Â ¹æ½ÄÀ» »ç¿ëÇØ¾ß ÇÒ °ÍÀÌ´Ù.


6 Âü°í¹®Çå

  1. mapreduce-osdi04.pdf
  2. http://jaso.co.kr/tatter/index.php?pl=133 C¾ð¾î¸¦ ÀÌ¿ëÇÑ hadoop ÆÄÀÏ ½Ã½ºÅÛ Ã³¸®
  3. http://www.jaso.co.kr/tatter/index.php?page=8&setdate=200609 hadoop »ìÆìº¸±â
  4. http://wiki.apache.org/lucene-hadoop/HadoopMapReduce Hadoop MapReduce
  5. [http]´ÙÄ«ÇϽÃÀÇ radium software ³»ÀÇ MapReduce ¹ø¿ª : Çѱ۹®¼­
  6. [http]¾²·¹µå º£À̽ºÀÇ MapReduce : Çѱ۹®¼­
  7. [http]MapReduce ¼Ò°³±Û : Çѱ۹®¼­

category_Search
category__8
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.