ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. 1 MapReduce ¼Ò°³
MapReduce´Â ´ë·®ÀÇ ÀÚ¿øÀ» ´Ù·ç´Â ºÐ»ê/º´·Ä ½Ã½ºÅÛÀÇ È¿À²ÀûÀÎ Áö¿øÀ» À§ÇÑ ¸ñÀûÀ¸·Î Google¿¡¼ ¸¸µé¾î³½ ÇÁ·Î±×·¡¹Ö ¸ðµ¨ÀÌ´Ù. Å×¶ó¹ÙÀÌÆ® ´ÜÀ§ÀÇ µ¥ÀÌÅ͸¦ ó¸®ÇØ¾ß ÇÏ´Â GoogleÀÇ ÀÔÀå¿¡¼ ºÐ»ê/º´·Ä ½Ã½ºÅÛÀ» Áö¿øÇϱâ À§ÇÑ ÀÌ·¯ÇÑ ÅøÀÇ °³¹ßÀº ÇÊ¿¬ÀûÀÎ ¿ä±¸»çÇ×ÀÌ¿´À» °ÍÀÌ´Ù. ºÐ»ê/º´·Ä ½Ã½ºÅÛÀÇ È¿°úÀûÀÎ Áö¿øÀ» À§Çؼ´Â ´ÙÀ½ÀÇ »çÇ×µéÀÌ ¸¸Á·µÇ¾î¾ß ÇÑ´Ù.
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¸¦ ÀÌ¿ëÇØ¼ ¸®¸ðÆ® ºÐ»ê ȯ°æÀ» Èä³»³»µµ·Ï ÇϰڴÙ. ![]()
ºÐ¼®ÇØ¾ß ÇÏ´Â ¿©·¯°³ÀÇ ÀÔ·Â ¹®¼¸¦ 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Á¤º¸µµ À¯Áö¸¦ ÇØ¾ß ÇÑ´Ù.
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 Failures3.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 ´ÙÀ̾î±×·¥ÀÌ´Ù. ![]()
struct LastIndexResult
{
string Term;
vector<string> DID;
}
set<LastIndexResult> IndexSet;
±× ´ÙÀ½ À§ÀÇ Á¤º¸¸¦ ÆÄÀÏ·Î ÀüºÎ ¾²¸é µÈ´Ù. ¶ó°í °£´ÜÈ÷ ¼³¸íÀº ÇßÁö¸¸, ½¬¿î ¹æ¹ýÀ¸·Î ÇØ°áÇÒ ¼ø ¾ø´Ù. ½±°Ô »ý°¢Çغ¸ÀÚ¸é °¢°¢ÀÇ .idxÆÄÀÏ¿¡ ÀÌ¹Ì TermÀ¸·Î Á¤·ÄµÈ °ªÀÌ µé¾î°¡ ÀÖÀ¸¹Ç·Î, IndexSetÀ» ¸¸µå´Â°Ô ±×¸® ¹®Á¦µÇÁö ¾ÊÀ» °Å¶ó »ý°¢ÇÒ ¼ö ÀÖÁö¸¸, ¹®¼ÀÇ ¾çÀÌ ¸¹¾ÆÁú °æ¿ì "¾öû³ ¾çÀÇ ¸Þ¸ð¸®¸¦ ¼Òºñ"ÇØ¾ß ÇÑ´Ù´Â ¹®Á¦°¡ »ý±æ ¼ö Àֱ⠶§¹®ÀÌ´Ù. ±×·¯¹Ç·Î µ¥ÀÌÅ͸¦ ÀüºÎ ¸Þ¸ð¸®¿¡ ³Ö¾î¼ Á¤·ÄÇÏ´Â °Íº¸´Ù´Â Á¤·ÄµÈ Áß°£ÆÄÀÏÀ» ¸¸µé¾î¼ º´ÇÕ½ÃÄÑÁÖ´Â °úÁ¤ÀÌ ÇÊ¿äÇÏ´Ù. ±ÍÂú±â´Â ÇÏÁö¸¸ .idxÀÇ °ªµéÀº ¸ðµÎ Á¤·ÄµÇ¾î ÀÖÀ¸¹Ç·Î, Áß°£ÆÄÀÏÀ» ¸¸µé¾î¼ º´ÇÕ½Ã۰í OUTPUT ÆÄÀÏÀ» ¸¸µå´Â°Ç ¾î·Á¿î ÀÛ¾÷Àº ¾Æ´Ò °ÍÀÌ´Ù.
»öÀο¡¼ ¿¹Á¦·Î Á¦½ÃÇÑ indexer¸¦ ¼öÁ¤ÇÏ´Â ÇüÅ·Π¸¸µéµµ·Ï ÇϰڴÙ. 5 NutchÀÇ MapReduce ¿£Áø
MapReduce´Â ÇÁ·Î±×·¡¹Ö ¸ðµ¨À̰í, ½ÇÁ¦ Ȱ¿ëÇϱâ À§Çؼ´Â MapReduceÇÁ·Î±×·¡¹Ö ¸ðµ¨ÀÌ Àû¿ëµÈ MapReduce ¿£ÁøÀÌ ÇÊ¿äÇÏ´Ù. ÀÌ ¿£ÁøÀ» À§Çؼ´Â Å©°Ô ´ÙÀ½°ú °°Àº 3°³ÀÇ ¿ä¼Ò°¡ ÇÊ¿äÇÒ °ÍÀÌ´Ù.
Java·Î ±¸ÇöÇÒ °æ¿ì¿¡´Â ¹ÙÀÌÆ®Äڵ带 ¹èÆ÷ÇÏ¸é µÇ¹Ç·Î, ½Ã½ºÅÛÀ̳ª ¿î¿µÃ¼Á¦¿¡ °ü°è¾øÀÌ ºñ±³Àû ½±°Ô ¹èÆ÷½Ã½ºÅÛÀ» ¸¸µé ¼ö ÀÖÀ» °ÍÀÌ´Ù. Perl, PythonµîÀ» ÀÌ¿ëÇØ¼ ±¸ÇöÇØµµ Java¿Í µ¿ÀÏÇÑ È¿°ú¸¦ ¾òÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù.
ÄÄÆÄÀÏ ¾ð¾î- C/C++ °°Àº -·Î ±¸ÇöÀ» ÇÑ´Ù¸é, ½Ã½ºÅÛ°ú ¿î¿µÃ¼Á¦¿¡ ÀÇÁ¸ÀûÀÌ µÉ °ÍÀÌ´Ù. °¡Àå ÁÁÀº ¹æ¹ýÀº ¸ðµç ½Ã½ºÅÛÀ» µ¿ÀÏÇÑ ¿î¿µÃ¼Á¦¿Í µ¿ÀÏÇÑ ÄÄÆÄÀÏ·¯, ¶óÀ̺귯¸®¸¦ °¡Áöµµ·Ï ¼¼ÆÃ ÇÏ´Â °ÍÀÌ´Ù. ²Ï³ª ÁÖÀÇ ±íÀº ÀÛ¾÷À» ÇÊ¿ä·Î ÇÒ °ÍÀ̰í, µ¶ÀÚÀûÀÎ ¿î¿µÃ¼Á¦ ¹èÆ÷ÆÇÀ» Çϳª ¸¸µå´Â°Ô °¡Àå ÁÁÀ» °ÍÀÌ´Ù. C/C++¿¡¼ jobÀÇ ¹èÆ÷´Â °øÀ¯ ¶óÀ̺귯¸®ÇüÅ·Π¹èÆ÷µÇ¾î¾ß ÇÒ °ÍÀÌ´Ù. ¹«°¡µ¿ ½Ã½ºÅÛÀ¸·Î ¸¸µé·Á¸é µ¿Àû ¶óÀ̺귯¸® ÇüÅ·Π¸¸µé¾î¼, signalÀÌ ÁÖ¾îÁú ¶§, ´Ù¿î·Îµå ¹ÞÀº ¶óÀ̺귯¸®¸¦ µ¿ÀûÀ¸·Î ÀûÀç½ÃŰ´Â ¹æ½ÄÀ» »ç¿ëÇØ¾ß ÇÒ °ÍÀÌ´Ù. 6 Âü°í¹®Çå
![]() |
|
|||
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|