software engineering/๋น…๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ

[BigData] MapReduce(๋งต๋ฆฌ๋“€์Šค) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ

jjingle 2024. 1. 5. 09:51

MapReduce ?

Hadoop ์‹œ์Šคํ…œ์—์„œ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ
  • Map, Reduce์˜ 2๊ฐœ์˜ phase๋กœ ๊ตฌ์„ฑ
  • key, value ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜
  • Map ๋‹จ๊ณ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ key, value ์Œ์œผ๋กœ ๋ณ€ํ™˜
  • Reduce ๋‹จ๊ณ„์—์„œ key, value๋กœ ๋ณ€ํ™˜๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง‘๊ณ„ํ•˜๊ณ  ์ตœ์ข… ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฐ์ •

 

MapReduce ๋™์ž‘ ์ˆœ์„œ

  1. Input : ์›๋ณธ ๋ฐ์ดํ„ฐ๋ฅผ ์ค€๋น„ํ•˜๋Š” ๋‹จ๊ณ„
  2. Split : ์›๋ณธ ๋ฐ์ดํ„ฐ๋ฅผ HDFS๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋‹จ๊ณ„
  3. Map : ๋ฐ์ดํ„ฐ๋ฅผ key, value ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฐ์‚ฐํ•˜๋Š” ๋‹จ๊ณ„
  4. Shuffle : key๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž„์˜๋กœ ํฉ์–ด์กŒ๋˜ ๋ฐ์ดํ„ฐ๋ฅผ hashingํ•˜๋Š” ๋‹จ๊ณ„
  5. Reduce : Map์—์„œ ์—ฐ์‚ฐ๋œ ๊ฒฐ๊ณผ๋ฅผ key๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฐ์‚ฐํ•˜๋Š” ๋‹จ๊ณ„
  6. Merge : ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ์ทจํ•ฉํ•˜๊ณ  ์ถœ๋ ฅํ•˜๋Š” ๋‹จ๊ณ„

 

Map, Shuffle, Reduce ๋‹จ๊ณ„์—์„œ์˜ ๋ฐ์ดํ„ฐ ์ด๋™ ๊ณผ์ •

  1. Map ๋‹จ๊ณ„์—์„œ ์šฉ๋Ÿ‰ ๋‹จ์œ„๋กœ ๋ถ„ํ• ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์˜์˜ ๋…ธ๋“œ์—์„œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰
  2. Shuffle์„ ํ†ตํ•ด key ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ™์€ key์˜ ๊ฐ’์€ ๊ฐ™์€ Reducer๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋™
  3. ๊ฐ™์€ key๊ฐ’์˜ ๋ฐ์ดํ„ฐ๋Š” ๊ฐ™์€ Reducer๋กœ ์ด๋™ํ•˜๊ฒŒ ๋จ

 

์›Œ์ปค ๋…ธ๋“œ ์ƒ์—์„œ MapReduce ๋™์ž‘ ๋ฐฉ๋ฒ•

  1. ๊ฐ ๋…ธ๋“œ์˜ Split ๋งŒํผ Map์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฒฐ์ •๋จ
  2. Reduce๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ •ํ•œ ๊ฐœ์ˆ˜๋งŒํผ ์„ค์ •ํ•จ
  3. ๊ฐ ๋…ธ๋“œ์— ์—ฌ๋Ÿฌ Map๊ณผ Reduce๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ์Œ
  4. Map๊ณผ Reduce๋Š” ์œ ํœด Container๋ฅผ ๋งŒ๋‚˜ ๊ตฌ๋™๋จ