์ค๋ฆฌ์ฝ๋ฐธ๋ฆฌ ์์ง๋์ด์๊ฒ ์ง์ ๋ฐฐ์ฐ๋
๋น
๋ฐ์ดํฐ ๊ฐ์ ๋ค์ด๋ณด์ค๋์? ๐ค
์ค๋ฆฌ์ฝ๋ฐธ๋ฆฌ ๊ฐ๋ฐ์์ ๋
ธํ์ฐ๋ฅผ
๋ด ๋ฐฉ์์! ๐ฅ๏ธ
๋น
๋ฐ์ดํฐ ๊ฐ๋ฐ์ ์ค๋ฆฌ์ฝ๋ฐธ๋ฆฌ ๊ฐ๋ฐ์์ ๋
ธํ์ฐ์ ํจ๊ป ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
์ค๋ฆฌ์ฝ ๋ฐธ๋ฆฌ๋ฅผ ํฌํจํ ์ ์ธ๊ณ์ ๋ง์ ๋๊ธฐ์
๊ณผ ๊ธ์ต๊ธฐ๊ด์์๋ Apache Spark๋ฅผ ํ์ฉํ์ฌ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ๊ณ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ๋ง๋ค๊ณ ์์ต๋๋ค. ๋น
๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ์ผ์ ๋ฐ์ดํฐ ์์ง๋์ด์ ๋ฐ์ดํฐ ์ฌ์ด์ธํฐ์คํธ์ ํ์ ๋ฅ๋ ฅ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋น
๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ๋ถ์ํ๊ธฐ ์ํด์๋ ์ด์ Spark์ ๋ฅ๋ ฅ์ ํ์์
๋๋ค.
Spark๋ ์ฒ์๋ถํฐ ๋ถ์ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ํ๋ ์์ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ก๊ธฐ ๋๋ฌธ์ ์ ๊ฒ๋ ํ ๋๋ถํฐ ๋ง๊ฒ๋ ์๋ฐฑ ๋์ ์๋ฒ์์ ์ฉ๋์ ํ์ฅํด ๊ฐ๋ฉด์ ์ค์๊ฐ์ผ๋ก ๋น
๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ๋ํ ์ด๋ฅผ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ๋ก ๋ง๋ค ์ ์์ต๋๋ค. ํ์ฌ ์ ๋ ํํ๋ฐ์ดํธ(PB) ์ด์์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, 100TB ์ด์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด์ฉํ๊ณ ์์ต๋๋ค.
๋ณธ ๊ฐ์๋ฅผ ๋ค์ ํ์๋ ์ํ์น ์คํํฌ(Apache Spark)์ ํต์ฌ Framework์ ๋ํด ์ดํดํ๊ณ , ๋น
๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์์ง ๋ฐ ๊ฐ๊ณตํ ์ ์์ผ๋ฉฐ, ๊ฐ๋จํ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ์ฌ๋ฌ ๋์ ์๋ฒ์ ์ด์ฉํด์ ๋ง๋ค ์ ์์ ๊ฒ๋๋ค. ํ์ด์ฌ ๊ธฐ๋ณธ ๋ฌธ๋ฒ์ ์๊ณ ์๋ค๋ฉด ์ถฉ๋ถํ ๊ณต๋ถํ ์ ์์ด์.
๋น
๋ฐ์ดํฐ ๋ถ์์ ์ํ Spark์ RDD ๋ฐ Dataframe ํ์ฉ ๋ฅ๋ ฅ
๋จธ์ ๋ฌ๋ Framework์ ๊ตฌ์ฑํ๋ ๋ค์ํ ๊ธฐ์ ์์์ ๋ํ ์ดํด
์ค์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ๊ธฐ ์ํ Spark Streaming์ ๋ํ ์ดํด
์ด๋ฐ ๋ถ๋ค๊ป ์ถ์ฒํด์ ๐
๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ค์ผ ํ๋
๋ฐฑ์๋ ๊ฐ๋ฐ์
๋น
๋ฐ์ดํฐ ๋ถ์ผ๋ฅผ
๊ณต๋ถํด๋ณด๊ณ ์ถ์ ๊ฐ๋ฐ์
์คํํฌ์ ๊น์ ์ง์์ ๋ฐฐ์ฐ๊ณ
์ถ์ ๋ฐ์ดํฐ ์์ง๋์ด
์ด๋ฐ ๊ฑธ ๋ฐฐ์์ ๐
1. ์ํ์น ์คํํฌ ์๊ฐ
- ์ํ์น ์คํํฌ์ ๋ํ ์๊ฐ
- ๋์ปค(Docker)๋ฅผ ์ด์ฉํ ์ค์น ๋ฐฉ๋ฒ
- ๋ฐ์ดํฐ๋ธ๋ฆญ์ค ์ปค๋ฎค๋ํฐ ์๋์
๊ฐ์
๋ฐ ์ด์ฉ ๋ฐฉ๋ฒ
2. ์ํ์น ์คํํฌ RDD์ ๊ธฐ๋ณธ์ ์ธ ํน์ง๊ณผ ์์
- ์ํ์น ์คํํฌ์ RDD(Resilient Distributed Dataset)์ ๊ธฐ๋ณธ์ ์ธ ํน์ง๊ณผ ์ด์ฉ ๋ฐฉ๋ฒ
- ์ํ์น ์คํํฌ RDD ์์ ์๊ฐ
3. ์ํ์น ์คํํฌ SQL๊ณผ Dataframe(๋ฐ์ดํฐ ํ๋ ์)
- ์ํ์น ์คํํฌ SQL๊ณผ Dataframe์ ์๊ฐ์ ์์ฉ ๋ฐฉ๋ฒ
- ์ํ์น ์คํํฌ SQL, ๋ฐ์ดํฐ ํ๋ ์ ์์
4. ์ํ์น ์คํํฌ ์์ง Deep dive
- ํ์
์ข
์ฌ์๋ ์ ๋ชจ๋ฅด๋ ์ํ์น ์คํํฌ ์์ง ์ง์
5. ์ํ์น ์คํํฌ Machine Learning(๋จธ์ ๋ฌ๋) ๋ผ์ด๋ธ๋ฌ๋ฆฌ, MLlib
- ๊ฐ๋จํ ๋จธ์ ๋ฌ๋์ ์๊ณ ๋ฆฌ์ฆ
- ์ํ์น ์คํํฌ๋ก ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ๋ง๋๋ ๋ฐฉ๋ฒ
6. ์ํ์น ์คํํฌ Streaming, ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ์ํ์น ์คํํฌ๋ก ์ค์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ
์์ ์ง๋ฌธ Q&A ๐ฌ
Q. ๋น์ ๊ณต์๋ ๋ค์ ์ ์๋ ๊ฐ์์ธ๊ฐ์?
๋ค, ํ์ง๋ง ํ์ด์ฌ์ ๊ธฐ๋ณธ ๋ฅ๋ ฅ๊ณผ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ์๋ ๊ฒฝํ์ด ์์ผ์
์ผ ์ดํด๊ฐ ์ฌ์ธ ์ ์์ต๋๋ค.
ํ์ด์ฌ์ด ์ฒ์์ด์๋ผ๋ฉด ์ ํ๋ธ๋ฅผ ํตํด ํ์ด์ฌ ๊ธฐ์ด๋ฅผ ํ์ตํ๊ฑฐ๋ ์๋ ๊ฐ์๋ฅผ ๋จผ์ ์๊ฐํด์ฃผ์ธ์! ๊ธฐ์ด ๋ถ๋ถ๋ง ๋ณด์
๋ ์ ์ฒด ๊ฐ์๋ฅผ ๋ฐ๋ผ์ค๋ ๋ฐ ์ด๋ ค์์ ์์ ๊ฒ์
๋๋ค.
Q. ์์
๋ด์ฉ์ ์ด๋ ์์ค๊น์ง ๋ค๋ฃจ๋์?
์คํํฌ์ ๊ธฐ์ด๋ถํฐ, ํ์
์ ํ์ํ ๊ณ ๊ธ ์ ๋ณด๊น์ง ๋ค๋ฃน๋๋ค.
Q. ์ ์คํํฌ๋ฅผ ๋ฐฐ์์ผ ํ๋์?
๊ตญ๋ด๋ฟ๋ง ์๋๋ผ ์ค๋ฆฌ์ฝ ๋ฐธ๋ฆฌ ๋๋ถ๋ถ์ ํ์ฌ์ ์คํํฌ๋ก ๋น
๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์์ต๋๋ค. ๊ทธ๋งํผ ์คํํฌ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ์๋ ๋ฐฉ๋ฒ์ ์์ ๋ค๋ฉด, ์ทจ์
ํ์๊ธฐ๋ ํ๊ฒฐ ์ฌ์ฐ์ค ๊ฒ๋๋ค.
์ง์๊ณต์ ์ ์๊ฐ โ๏ธ
์ด๋ ฅ ์ฌํญ
ํฌํธํด๋ฆฌ์ค/๊ฐ์ธ ์์
์๊ฐ ์ ์ฐธ๊ณ ์ฌํญ ๐ข
์ค์ต ํ๊ฒฝ
- ์ด์ ์ฒด์ ๋ฐ ๋ฒ์ (OS): MacOS, Linux, Ubuntu
- ์ฌ์ฉ ๋๊ตฌ: ๊ฐ์ฅ ์ธ๊ธฐ ์๋ Docker๋ฅผ ์ฌ์ฉ(๊ณต๊ฐ๋ ๋์ปค ์ด๋ฏธ์ง ์ฌ์ฉ), ๋ฐ์ดํ๋ธ๋ฆญ์ค ์ปค๋ฎค๋ํฐ ์๋์
ํ์ต ์๋ฃ
- ์์ค ์ฝ๋ ๋ฐ ์ฒจ๋ถ ์๋ฃ ์ ๊ณต