ํ๋ก ๋งต๋ฆฌ๋์ค ํ๋ ์์ํฌ
๋งต๋ฆฌ๋์ค ํ๋ ์์ํฌ(MapReduce Framework)
๋งต๋ฆฌ๋์ค ํ๋ ์์ํฌ๋?
๋ฐ์ดํฐ ์ค์ฌ ํ๋ก์ธ์ฑ(๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ)์ ๋น์ธ๊ณ ๋ณต์กํ ์ฐ์ฐ๋ค์ด ์๊ตฌ๋๋ค. ๋ณต์กํ ์ฐ์ฐ์ ์ํด ์ปดํจํฐ์ ์ฑ๋ฅ์ ํฅ์์ํค๋ scale-up(์์ง์ ์ฑ๋ฅ ํฅ์) ๋ฐฉ๋ฒ๊ณผ scale-out(์ํ์ ์ฑ๋ฅ ํฅ์) ๋ฐฉ๋ฒ์ด ์๋๋ฐ, scale-outํ ๋ฐฉ๋ฒ์ด ๋น์ฉ ์ธก๋ฉด์์ ๋์ฑ ์ ๋ฆฌํ๋ค.
๋งต๋ฆฌ๋์ค ํ๋ ์์ํฌ๋ ์ ๋ ดํ ์ปดํจํฐ๋ฅผ ๋ชจ์ ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค๊ณ ์ด๋ฅผ ํตํด ๋น ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋๋ก scalableํ ๋ณ๋ ฌ ์ํํธ์จ์ด๋ฅผ ๊ตฌํํ๊ธฐ ์ํ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ์ด๋ค.
๊ตฌ๊ธ ๋งต๋ฆฌ๋์ค(MapReduce), ์ํ์น ํ๋ก(Hadoop) ์คํ ์์ค๋ ๋งต๋ฆฌ๋์ค ํ๋ ์์ํฌ์ ๊ตฌํ์ฒด์ด๋ค.
MapReduce Phase
-
๋งต ํ์ด์ฆ(Map Phase)
- ๊ฐ์ฅ ๋จผ์ ์ํ๋๋ฉฐ ๋ฐ์ดํฐ์ ์ฌ๋ฌ ํํฐ์ ์ ๋ณ๋ ฌ ๋ถ์ฐ ํธ์ถ๋์ด ์ํ๋จ
- ๊ฐ ๋จธ์ ๋ง๋ค ์ํ๋๋ Mapper๋ ์ ๋ ฅ ๋ฐ์ดํฐ ํ ์ค๋ง๋ค Map ํจ์๋ฅผ ํธ์ถํจ
- Map ํจ์๋ (Key, Value) ์ ํํ๋ก ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํจ
- Map ํจ์ ๊ฒฐ๊ณผ ๊ฐ์ Key๋ฅผ ๊ฐ์ง ์์ ๊ฐ์ ๋จธ์ ์ผ๋ก ๋ณด๋ด์ง
-
์ ํ๋ง ํ์ด์ฆ(Shuffling Phase)
- ๋ชจ๋ ๋จธ์ ์ ๋งต ํ์ด์ฆ๊ฐ ์ข ๋ฃ๋๋ฉด ์์๋จ
- Map ํจ์์ ์ํด ๊ฐ ๋จธ์ ์ผ๋ก ๋ณด๋ด์ง (Key, Value) ์์ Key๋ฅผ ์ด์ฉํด ์ ๋ ฌ
- ๊ฐ์ Key๋ฅผ ๊ฐ์ง ์๋ผ๋ฆฌ ๋ชจ์ Value-List๋ฅผ ๋ง๋ ๋ค, (Key, Value-List) ์ ํํ๋ก ์ฌ๋ฌ ๋จธ์ ์ ๋ถ์ฐํ์ฌ ๋ณด๋
-
๋ฆฌ๋์ค ํ์ด์ฆ(Reduce Phase)
- ๋ชจ๋ ๋จธ์ ์ ์ ํ๋ง ํ์ด์ฆ๊ฐ ์ข ๋ฃ๋๋ฉด ์์๋จ
- Reduce ํจ์๋ ๋จธ์ ์ ๊ฐ (Key, Value-List) ์๋ง๋ค ํธ์ถ๋จ
ํ๋ก(Hadoop)
์ํ์น์ ๋งต๋ฆฌ๋์ค ํ๋ ์์ํฌ ์คํ์์ค
ํ๋ก ๋ถ์ฐ ํ์ผ ์์คํ (HDFS, Hadoop Distributed File System)
๋น ๋ฐ์ดํฐ ํ์ผ์ ์ฌ๋ฌ ์ปดํจํฐ์ ๋๋์ด ์ ์ฅํ๋ ๊ธฐ์ . ๊ฐ ํ์ผ์ ์ฌ๋ฌ๊ฐ์ ์์ฐจ์ ์ธ ๋ธ๋ก์ผ๋ก ์ ์ฅํ๋ค.
ํ๋์ ํ์ผ์ ๊ฐ ๋ธ๋ก์ ์ฌ๋ฌ๋ฒ ๋ณต์ฌ๋์ด ๋จธ์ ์ ๊ณณ๊ณณ์ ๋ถ์ฐํ์ฌ ์ ์ฅ๋๋ค. ์ด๋ฅผ ํตํด ์์คํ ์ผ๋ถ์์ ๊ฒฐํจ์ด ๋ฐ์ํ๋๋ผ๋ ๋๊น์์ด ๊ธฐ๋ฅ์ ์ํํ ์ ์๋ค(fault tolerance).
์ฃผ์ ๊ตฌ์ฑ ์์
- MapReduce : ์ํํธ์จ์ด ์ํ์ ๋ถ์ฐ
- HDFS : ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐ
Namenode์ Datanode
- Namenode : Master, ํด๋ผ์ด์ธํธ๊ฐ ํ์ผ์ ์ ๊ทผํ๋ ํ์ผ ์์คํ ์ ๊ด๋ฆฌ
- Datanode : Slaves, ์ปดํจํฐ ๋ด ๋ฐ์ดํฐ ์ ๊ทผ์ ๊ด๋ฆฌ
MapReduce ํจ์
-
Map ํจ์
- ์ ๋ ฅ ํ ์คํธ ํ์ผ์ ๋ผ์ธ๋ง๋ค ํธ์ถ๋จ
- ์ ๋ ฅ์ (Key, Value-List) ํํ
- Key : ์ ๋ ฅ ํ ์คํธ ํ์ผ ๊ฐ ๋ผ์ธ์ ์ฒซ๋ฒ์งธ ๋ฌธ์(character)๊น์ง ์คํ์
- Value : ๊ฐ ๋ผ์ธ ์ ์ฒด ๋ฌธ์์ด
-
Reduce ํจ์
- Shuffling ํ์ด์ฆ์ ์ถ๋ ฅ์ ์ ๋ ฅ์ผ๋ก ๋ฐ๋ (Key, Value-List) ํํ
-
Combine ํจ์
- ๋ง์ฝ ํธ์ถ๋๋ค๋ฉด Shuffling ํ์ด์ฆ ์ด์ Map ํ์ด์ฆ ์ดํ ํธ์ถ๋จ
- Map ํจ์์ ์ถ๋ ฅ ๊ฒฐ๊ณผ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ์ญํ (Combine ํจ์๋ฅผ ํธ์ถํ ๋ค Shuffling ํ์ด์ฆ์ Reduce ํ์ด์ฆ๋ฅผ ๊ฑฐ์น๋ฉด ์ฐ์ฐ ๋น์ฉ์ ์ ๊ฐํ ์ ์์)
- ๊ฐ ๋จธ์ ์์ Reduce ํจ์๋ฅผ ์ด์ฉํ๋ ๊ฒ์ฒ๋ผ ์ํ๋จ
MapReduce๋ฅผ ์ด์ฉํ Word Counting ์๊ณ ๋ฆฌ์ฆ
1. Map Phase
๋จธ์ 1๊ณผ ๋จธ์ 2๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๋ค. ๊ฐ ๋จธ์ ์๋ ๋ฌธ์๊ฐ ์ฌ๋ฌ๊ฐ ์กด์ฌํ๊ณ ๊ฐ ๋ฌธ์์ ํ ์คํธ์์ ๋จ์ด๋ฅผ ์นด์ดํธํ๊ณ ์ถ๋ค.
<Machine 1>
- Document 1 : Financial, IMF, Economics, Crisis
- Document 2 : Financial, IMF, Crisis
<Machine 2>
- Document 3 : Economics, Harry
- Document 4 : Financial, Harry, Potter, Film
- Document 5 : Crisis, Harry, Potter
๊ฐ ๋จธ์ ๋ง๋ค Mapper๊ฐ ์ํ๋๊ณ ๋ค์ Mapper๋ ๋ฌธ์์ ๊ฐ ๋ผ์ธ๋ง๋ค Map ํจ์๋ฅผ ํธ์ถํ๋ค. ์คํ ๊ฒฐ๊ณผ๋ ๋ค์ ๊ฐ์ Key๋ฅผ ๊ฐ์ง ์๋ผ๋ฆฌ ๋ชจ์ด๋๋ก ์ฌ๋ฌ ๋จธ์ ์ ๋ถ์ฐํ์ฌ ์ ์ฅํ๋ค.
<Machine 1> ์ ์ ์ฅ
Key | Value |
---|---|
Financial | 1 |
Economics | 1 |
Economics | 1 |
Financial | 1 |
Crisis | 1 |
Financial | 1 |
Film | 1 |
Crisis | 1 |
Crisis | 1 |
<Machine 2> ์ ์ ์ฅ
Key | Value |
---|---|
IMF | 1 |
Harry | 1 |
Harry | 1 |
Potter | 1 |
IMF | 1 |
Harry | 1 |
Potter | 1 |
2. Shuffling Phase
Map ํ์ด์ฆ ๊ฒฐ๊ณผ ๊ฐ ๋จธ์ ์ ๋ถ์ฐ ์ ์ฅ๋ ๋ฐ์ดํฐ์์ ๊ฐ์ Key๋ฅผ ๊ฐ์ง ์๋ผ๋ฆฌ ๋ฌถ์ด (Key, Value-List) ์์ผ๋ก ๋ง๋ ๋ค. ๊ฒฐ๊ณผ๋ Key๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ค.
<Machine 1>
Key | Value |
---|---|
Crisis | 1, 1, 1 |
Economics | 1, 1 |
Film | 1 |
Financial | 1, 1, 1 |
<Machine 2>
Key | Value |
---|---|
Harry | 1, 1, 1 |
IMF | 1, 1 |
Potter | 1, 1 |
3. Reduce Phase
Shuffling ํ์ด์ฆ ๊ฒฐ๊ณผ ๊ฐ ๋จธ์ ๋ง๋ค Reducer๊ฐ ์ํ๋๊ณ ๋ค์ Reducer๋ ๊ฐ (Key, Value-List) ์๋ง๋ค Reduce ํจ์๋ฅผ ํธ์ถํ๋ค.
<Machine 1>
Key | Value |
---|---|
Crisis | 3 |
Economics | 3 |
Film | 1 |
Financial | 3 |
<Machine 2>
Key | Value |
---|---|
Harry | 3 |
IMF | 2 |
Potter | 2 |
๋ฒ์ธ. Combine ํจ์ ์ ์ฉํ๊ธฐ
์ผ๋ฐ์ ์ผ๋ก ์์ ๊ฐ์ด Map ํ์ด์ฆ ๊ฒฐ๊ณผ๋ฅผ ์ฌ๋ฌ ๋จธ์ ์ ๋ถ์ฐํ์ฌ ์ ์ฅํ ์ฑ Shuffling ํ์ด์ฆ๋ก ๋์ด๊ฐ๋ค. Combine ํจ์๋ Map ํจ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ ๋จธ์ ์ ๋ถ์ฐ ์ ์ฅํ๊ธฐ ์ ๊ฐ ๋จธ์ ๋ณ Map ํจ์ ๊ฒฐ๊ณผ์ ์ ์ฉํ๋ค. Combine ํจ์๋ฅผ ํธ์ถํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ถ๋ ฅํ๋ค.
<Machine 1>
Key | Value |
---|---|
Financial | 2 |
IMF | 2 |
Economics | 1 |
Crisis | 2 |
<Machine 2>
Key | Value |
---|---|
Economics | 1 |
Harry | 3 |
Financial | 1 |
Potter | 2 |
Film | 1 |
Crisis | 1 |
Combine ํจ์๋ ์์ ๊ฐ์ด Map ํจ์ ๊ฒฐ๊ณผ๋ฅผ ๋ถ๋ถ์ ์ผ๋ก ํฉ์ฐํ์ฌ Reduce ํจ์๊ฐ ํ ์ผ์ ์ฌ์ ์ ์ํํ๋ค.
Combine ํจ์๋ฅผ ์ํํ ๊ฒฐ๊ณผ๋ก Shuffling ํ์ด์ฆ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค. ๋ฐ๋ผ์ Reduce ํจ์ ์ฐ์ฐ์ด ๋์ฑ ๋นจ๋ผ์ง๋ค.
Key | Value |
---|---|
Financial | 2, 1 |
IMF | 2 |
Economics | 1, 1 |
Crisis | 2, 1 |
Harry | 3 |
Film | 1 |
Potter | 2 |
Combine ํจ์
- ๊ฐ ๋จธ์ ์์ Map ํจ์๊ฐ ์ข ๋ฃ๋ ๋ค ํธ์ถ๋๋ฉฐ, Reduce ํจ์์ ์ญํ ์ ๋ถ๋ถ์ ์ผ๋ก ์ํํ๋ค.
- ์ ํ๋ง ๋น์ฉ๊ณผ ๋คํธ์ํฌ ํธ๋ํฝ์ ๊ฐ์ํ์ฌ ์ฑ๋ฅ์ ํฅ์์ํจ๋ค.