๐คทโ๏ธ๋น ๋ฐ์ดํฐ ๋ถ์์ ์ํด `๋ณ๋ ฌ ๋ถ์ฐ ์๊ณ ๋ฆฌ์ฆ`์ ์ด์ฉํ๋ ์ด์ ๋?
์ ์ ์์ ๊ฐ ๋น์ผ ํ์ด ์๋(high-end) ๋จธ์ ์ ์ด์ฉํ๋ `์ค์ผ์ผ-์ (Scale-Up)`๋ฐฉ์์ ๋นํด ๋น๊ต์ ์ ๋ ดํ **๋ก์ฐ ์๋(low-end)๋จธ์ ๋ค์ ๋๋์ผ๋ก ๋๊ณ ์ฌ์ฉํ๋ `์ค์ผ์ผ-์์(Scale-Out)` ๋ฐฉ์์ด ๋น์ฉ์ ์ผ๋ก ๋ณด๋ค ํจ์จ์ **์ด๊ธฐ ๋๋ฌธ!
๐คทโ๏ธ๋งต๋ฆฌ๋์ค ํ๋ ์์ํฌ๋ ์ ์ฐ๋๋ฐ?
๊ฐ ์ผ ์ฌ๋ฌ ๋์ ์ปดํจํฐ๋ค๋ก ์ด๋ฃจ์ด์ง ๊ฑฐ๋ํ ํด๋ฌ์คํฐ(cluster)์์ ๋น ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ค์ผ์ผ๋ฌ๋ธ ๋ณ๋ ฌ ์ ํ๋ฆฌ์ผ์ด์ SW ๊ฐ๋ฐ์ ์ฝ๊ฒ ํ ์ ์๋๋ก ํด์ฃผ๋ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ
๐คทโ๏ธ๊ทธ๋ ๋ค๋ฉด ๋งต๋ฆฌ๋์ค ํ๋ ์์ํฌ๋ ์ด๋ป๊ฒ ์๋ํด?
- HDFS(Hadoop DistributedFileSystem)์ด๋ผ ๋ถ๋ฆฌ๋ ๋ถ์ฐ ํ์ผ ์์คํ ์ด ๋น ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋์ ๋จธ์ ์ ๋ถ์ฐํด ์ ์ฅ (๊ฐ ํ์ผ์ ์ฌ๋ฌ๊ฐ์ ์์ฐจ์ ์ธ ๋ธ๋ก์ผ๋ก ๋ถํ ํด์ ์ ์ฅ)
- ๊ฐ๊ฐ์ ๋ธ๋ก๋ค์ Fault Tolerance๋ฅผ ์ํด ์ฌ๋ฌ ๊ฐ๋ก ๋ณต์ฌ๋์ด ์ฌ๊ธฐ์ ๊ธฐ ์ ์ฅ
-
Fault Toleracne ? ์์คํ ์ ๊ตฌ์ฑํ๋ ๋ถํ์ ์ผ๋ถ์์ ๊ฒฐํจ(Fault) ๋๋ ๊ณ ์ฅ(Failure)์ด ๋ฐ์ํ์ฌ๋ ์ ์์ ์ผ๋ก ํน์ ๋ถ๋ถ์ ์ผ๋ก ๊ธฐ๋ฅ์ ์ํํ ์ ์๋ ๊ฒ
-
๐คทโ๏ธ๋งต๋ฆฌ๋์ค์ ๋จ๊ณ
๊ฐ๊ฐ์ ๋ ์ฝ๋(record) ๋๋ ํํ(tuple)์ด (KEY,VALUE)์์ผ๋ก ํํ
๐๋งต๋ฆฌ๋์ค ํ์ด์ฆ(MapReduce Phase)
์ ์ ๊ฐ ์ ์ํ ๋งต(map)๊ณผ ๋ฆฌ๋์ค(reduce)๋ผ๋ ํจ์๋ฅผ ์ด์ฉํด
- ๋งต-ํ์ด์ฆ
- ์
ํ๋ง-ํ์ด์ฆ
- ๋ฆฌ๋์ค-ํ์ด์ฆ
3๊ฐ์ phase๊ฐ ํ ๋ฒ ๋๋ ๋ฐ ๋ณต์ผ๋ก ์ํํ๋ฉฐ,
๋งต ํจ์์ ๋ฆฌ๋์ค ํจ์๋ ํ ๊ฐ์ (KEY,VALUE) ์์ ์
๋ ฅ์ผ๋ก ๋ฐ๊ณ
์ถ๋ ฅ์ ์๋ฌด๊ฒ๋ ์ํ๊ฑฐ๋, ํ ๊ฐ์ (KEY,VALUE) ์์ ์ถ๋ ฅํ๊ฑฐ๋ ์ฌ๋ฌ๊ฐ์ (KEY,VALUE) ์์ ์ถ๋ ฅ
์
๋ ฅ ๋ฐ์ดํฐ => ์ฌ๋ฌ ๋จธ์ ์ ๋๋์ด ์ ์ฅ
๋งต-ํ์ด์ฆ ์ ์ ๊ฐ ์ ์ํ ๋งต ํจ์๊ฐ ๋ฐ์ดํฐ์ ์ฌ๋ฌ ํํฐ์
์ ๋ณ๋ ฌ ๋ถ์ฐ์ผ๋ก ํธ์ถ๋์ด ์ํ๋ ํ
๋งต ํจ์์์ ์ถ๋ ฅํ ๊ฒฐ๊ณผ๋ค์ด (KEY, VALUE)์์ผ๋ก ํํ๋์ด
์ฌ๋ฌ ๋จธ์ ์ key์ ๋ฐ๋ผ ๋๋คํ๊ฒ ๋๋์ด ์ ๋ฌ
๊ฐ์ key๋ฅผ ๊ฐ์ง (KEY,VALUE) ์์ ๊ฐ์ ๋จธ์ ์ผ๋ก ๋ชจ์
์
ํ๋ง-ํ์ด์ฆ=> ๊ฐ ๋จธ์ ์์ ์ํ
๊ฐ ๋จธ์ ์ ๋ชจ์ธ (KEY,VALUE) ์๋ค์ KEY๋ฅผ ์ด์ฉํด ์ ๋ ฌํ๊ณ
๊ฐ๊ฐ์ KEY๋ง๋ค ๊ทธ KEY๋ฅผ ๊ฐ๋ VALUE๋ค์ ๋ณํฉํด VALUE ๋ฆฌ์คํธ๋ฅผ ์์ฑ
๋ฆฌ๋์ค-ํ์ด์ฆ=> ์
ํ๋ง-ํ์ด์ฆ์์ ๋ง๋ (KEY,VALUE-LIST)์๋ง๋ค ํ ๊ฐ์ ๋ฆฌ๋์ค ํจ์ค๊ฐ ํธ์ถ
์ถ๋ ฅ์ด ์๋ค๋ฉด (KEY,VALUE) ์ ํํ๋ก ์ถ๋ ฅ
๐ ๋งต ๋ฆฌ๋์ค ํจ์์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ ์์ฝ
[X]๋ ํํ๊ฐ X์ธ ๊ฐ๋ค์ ๋ฆฌ์คํธ ์๋ฏธ
Map:(KEY,VALUE) -> [(KEY,VALUE)]
Reduce: (KEY,[VALUE]) -> [(KEY,VALUE)]
๐คทโ๏ธ๋งต๋ฆฌ๋์ค ํ๋ ์์ํฌ์์๋?
- ๋ฉ์ธ(main) ํจ์๋ฅผ ํ ๊ฐ์ ๋ง์คํฐ ๋จธ์ (master machine)์์ ์ํ
- ์ด ๋จธ์ ์ ๋งต ํจ์๋ฅผ ์ํํ๊ธฐ ์ ์ ์ ์ฒ๋ฆฌ๋ฅผ ํ๊ฑฐ๋ ๋ฆฌ๋์ค ํจ์์ ๊ฒฐ๊ณผ๋ฅผ ํ์ฒ๋ฆฌ ํ๋๋ฐ ์ฌ์ฉ๋ ์ ์์!
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ๋ผ ๋งต ํจ์์ ๋ฆฌ๋์ค ํจ์ ํ ์์ผ๋ก ์ด๋ค์ง `๋งต-์ ํ๋ง-๋ฆฌ๋์ค ํ์ด์ฆ`๋ฅผ ํ ๋ฒ ์ํํ๊ฑฐ๋ ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณตํด์ ์ํ ๊ฐ๋ฅ
๐๋งต๋ฆฌ๋์ค ํ๋ ์ ์ํฌ์ ์ฃผ์ ๊ตฌ์ฑ ์์
- MapReduce
- ์ํํธ์จ์ด์ ์ํ์ ๋ถ์ฐ
- HDFS(Hadoop Distributed File System ; Hadoop ๋ถ์ฐ ํ์ผ ์์คํ
)
- ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐ
์ด์ธ์ ๊ตฌ์ฑ ์์
- Namenode
- master ์ญํ ์ธ ํ๊ฐ์ ๋ค์๋ ธ๋
- ํ์ผ ์์คํ ์ ๊ด๋ฆฌํ๊ณ ํด๋ผ์ด์ธํธ๊ฐ ํ์ผ์ ์ ๊ทผํ ์ ์๊ฒ ํจ
- Datanodes
- slave ์ญํ ์ธ ์ฌ๋ฌ๊ฐ์ ๋ฐ์ดํฐ ๋ ธ๋
- ์ปดํจํฐ์ ๋ค์ด์๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๊ฒ ํจ
'Hadoop' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Hadoop]MapReduce2 (0) | 2022.08.30 |
---|
๋๊ธ