๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ž˜ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด ์™œ ์ค‘์š”ํ• ๊นŒ?

๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•์ด ์ค‘์š”ํ•œ ์ด์œ ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ด๋™์‹œํ‚ค๋Š”๋ฐ ๋” ์ ์€ ๋…ธ๋ ฅ์„ ๋“ค์ผ์ˆ˜๋ก ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์นดํ”„์นด์—์„œ ๋ฐ์ดํ„ฐ์˜ ๊ธฐ๋ณธ ๋‹จ์œ„๋Š” ๋ฉ”์‹œ์ง€์ด๋ฉฐ, ๋ฐ”์ดํŠธ์˜ ๋ฐฐ์—ด๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐฐ์น˜ ๋‹จ์œ„๋กœ ์ €์žฅํ•˜๊ณ  ๋ฐฐ์น˜๋Š” ๋ฉ”์‹œ์ง€๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค. ๋ฐฐ์น˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์“ธ ๋•Œ๋งˆ๋‹ค ๋„คํฌ์›Œํฌ ํ†ต์‹ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ ๊ฒƒ์œผ๋กœ ์ง€์—ฐ๋Ÿ‰๊ณผ ์ฒ˜๋ฆฌ๋Ÿ‰ ์‚ฌ์ด์— ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค. ์•„ํŒŒ์น˜ ์—์ด๋ธŒ๋กœ๋กœ ๋ฉ”์‹œ์ง€ ๋ณธ์ฒด์™€ ์Šคํ‚ค๋งˆ๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค. ์Šคํ‚ค๋งˆ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ์ฝ”๋“œ ์ˆ˜์ •์€ ํ•„์š”์—†๋‹ค.

 

ํ† ํ”ฝ๊ณผ ํŒŒํ‹ฐ์…˜

๋ฉ”์‹œ์ง€๋Š” ํ† ํ”ฝ ๋‹จ์œ„๋กœ ๋ถ„๋ฅ˜๋˜๋ฉฐ ํ† ํ”ฝ์€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํŒŒํ‹ฐ์…˜์„ ๊ฐ–๋Š”๋‹ค. ํ•˜๋‚˜์˜ํŒŒํ‹ฐ์…˜์—์„œ๋Š” ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€๋งŒ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํŒŒํ‹ฐ์…˜์ด ํ† ํ”ฝ ์•ˆ์˜ ์ „์ฒด ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•ด์„œ๋Š” ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ํŒŒํ‹ฐ์…˜์€ ์นดํ”„์นด๊ฐ€ ๋ฐ์ดํ„ฐ ์ค‘๋ณต๊ณผ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๊ธฐ๋„ ํ•˜๋‹ค. ๊ฐ ํŒŒํ‹ฐ์…˜์ด ์„œ๋กœ ๋‹ค๋ฅธ ์„œ๋ฒ„์— ์ €์žฅ๋  ์ˆ˜ ์žˆ๊ธฐ์— ํ•˜๋‚˜์˜ ํ† ํ”ฝ์ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋ฒ„๋กœ ์ˆ˜ํ‰์ ์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๊ณ  ํŒŒํ‹ฐ์…˜ ๋ณต์ œ๋„ ๊ฐ€๋Šฅํ•˜์—ฌ ์„œ๋กœ ๋‹ค๋ฅธ ์„œ๋ฒ„๊ฐ€ ๋™์ผํ•œ ํŒŒํ‹ฐ์…˜์˜ ๋ณต์ œ๋ณธ์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค. ๋ถ„์‚ฐ ํ”Œ๋žซํผ์ธ ์ด์œ ์ด๊ธฐ๋„ ํ•˜๋‹ค.

 

ํ”„๋กœ๋“€์„œ์™€ ์ปจ์Šˆ๋จธ

ํ”„๋กœ๋“€์…”๋Š” ๋ฐœํ–‰์ž, ์ž‘์„ฑ์ž๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค. ๋ฉ”์‹œ์ง€ ํ‚ค์™€ ํ‚ค๊ฐ’์˜ ํ•ด์‹œ๋ฅผ ํŠน์ • ํŒŒํ‹ฐ์…˜์œผ๋กœ ๋Œ€์‘์‹œ์ผœ์ฃผ๋Š” ๊ฒƒ์€ ํŒŒํ‹ฐ์…”๋„ˆ๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„๋œ๋‹ค. ์ปค์ŠคํŠฌ ํŒŒํ‹ฐ์…”๋„ˆ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ปจ์Šˆ๋จธ๋Š” ๊ตฌ๋…์ž, ๋…์ž๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค. ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน์˜ ์ผ์›์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋Œ€๋Ÿ‰์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ๊ธฐ ์œ„ํ•ด ์ปจ์Šˆ๋จธ๋ฅผ ์ˆ˜ํ‰ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ, ์ปจ์Šˆ๋จธ ์ค‘ ํ•˜๋‚˜์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ๊ทธ๋ฃน ์•ˆ์˜ ๋‹ค๋ฅธ ์ปจ์Šˆ๋จธ๊ฐ€ ์žฌํ• ๋‹น๋ฐ›์•„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

๋ธŒ๋กœ์ปค์™€ ํด๋Ÿฌ์Šคํ„ฐ

์นดํ”„์นด ์„œ๋ฒ„๋ฅผ ๋ธŒ๋กœ์ปค๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ธŒ๋กœ์ปค๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๋‹ค. ๋ธŒ๋กœ์ปค๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ผ๋ถ€์ด๋‹ค. ํ•˜๋‚˜์˜ ํด๋Ÿฌ์Šคํ„ฐ ์•ˆ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ธŒ๋กœ์ปค๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ•˜๋‚˜์˜ ๋ธŒ๋กœ์ปค๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์—ญํ• ์„ ํ•˜๊ฒŒ ๋œ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ์—ญํ• ์ด๋ž€ ํŒŒํ‹ฐ์…˜์„ ๋ธŒ๋กœ์ปค์— ํ• ๋‹นํ•ด์ฃผ๊ฑฐ๋‚˜ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ ๋ธŒ๋กœ์ปค๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋“ฑ์˜ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•œ๋‹ค. ๋ธŒ๋กœ์ปค๋Š” ๋ฆฌ๋”์™€ ํŒ”๋กœ์›Œ๋กœ ๊ตฌ๋ถ„๋˜๋ฉฐ ๋ณต์ œ ๊ธฐ๋Šฅ์€ ๋ฆฌ๋” ๋ธŒ๋กœ์ปค์— ์žฅ์•  ๋ฐœ์ƒ ์‹œ ํŒ”๋กœ์›Œ๊ฐ€ ๋ฆฌ๋” ์—ญํ• ์„ ์ด์–ด๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ”„๋กœ๋“€์„œ๋Š” ๋ฆฌ๋” ๋ธŒ๋กœ์ปค์— ๋ฉ”์‹œ์ฆˆ๋ฅผ ๋ฐœํ–‰ํ•ด์•ผํ•˜๊ณ  ์ปจ์Šˆ๋จธ๋Š” ํŒ”๋กœ์›Œ๋‚˜ ๋ฆฌ๋” ์ค‘ ํ•˜๋‚˜๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

๋‹ค์ค‘ ํด๋Ÿฌ์Šคํ„ฐ

๋ฏธ๋Ÿฌ๋ฉ”์ด์ปค ํˆด์„ ์‚ฌ์šฉํ•ด์„œ ํด๋Ÿฌ์Šคํ„ฐ๋ผ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ ๋ณต์ œ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์—์„œ๋งŒ ๋ฐ์ดํ„ฐ ๋ณต์ œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

๋Ÿฌ๋‹ ์ŠคํŒŒํฌ chapter 3์žฅ๊นŒ์ง€ ์ฝ์€ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด ๋ณด๊ณ ์ž ํ•œ๋‹ค.

 

HDFS์™€ ๋งต๋ฆฌ๋“€์Šค ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น…๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์—๋Š” ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค. ๊ฐ€์žฅ ํฐ ๋‹จ์ ์€ ๋ฐฐ์น˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ MR ํƒœ์Šคํฌ์˜ ์ค‘๊ฐ„ ๋‹จ๊ณ„๋“ค์„ ๋กœ์ปฌ ๋””์Šคํฌ์— ์จ์•ผํ–ˆ๋‹จ ์ ์ด๋‹ค. ์ด๊ฒƒ์€ ์žฆ์€ ๋””์Šคํฌ I/O ์ˆ˜ํ–‰์„ ์ผ์œผํ‚ค๋ฉฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋งค์šฐ ๋А๋ ค์ง„๋‹ค.

 

๊ทธ๋ž˜์„œ ์•„ํŒŒ์น˜ ์ŠคํŒŒํฌ๊ฐ€ ํƒ„์ƒํ•˜์˜€๋‹ค. ์•„ํŒŒ์น˜ ์ŠคํŒŒํฌ๋Š” ๋Œ€๊ทœ๋ชจ ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ ์„ค๊ณ„๋œ ํ†ตํ•ฉํ˜• ์—”์ง„์ด๋‹ค.

์ŠคํŒŒํฌ๋Š” ํ•˜๋‘ก ๋งต๋ฆฌ๋“€์Šค์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๋ฉฐ ์—…๊ทธ๋ ˆ์ด๋“œ ๋˜์—ˆ๊ณ  4๊ฐ€์ง€ ํŠน์ง•์ด ์žˆ๋‹ค.

 

์ฒซ๋ฒˆ์งธ, ์†๋„

์ŠคํŒŒํฌ๋Š” ์งˆ์˜ ์—ฐ์‚ฐ์„ ๋ฐฉํ–ฅ์„ฑ ๋น„์ˆœํ™˜ ๊ทธ๋ž˜ํ”„(DAG)๋กœ ๊ตฌ์„ฑํ•˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ์˜ ์›Œํฌ ๋…ธ๋“œ ์œ„์—์„œ ๋ณ‘๋ ฌ ์ˆ˜ํ–‰๋œ๋‹ค. ์ŠคํŒŒํฌ SQL ์—”์ง„ ์˜ ์ฃผ์š” ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ธ ํ……์Šคํ…(Tungsten)์€ ์ „์ฒด ์ฟผ๋ฆฌ๋ฅผ ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋กœ ํ•ฉ์ณ ๊ฐ€์ƒ ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด๋‚˜ ์ค‘๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•œ CPU ์‚ฌ์šฉ์„ ์—†์•ค๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ํฌ๊ด„ ์ฝ”๋“œ ์ƒ์„ฑ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์€ CPU ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด๊ณ  ํšจ์œจ์„ ๋†’์ธ๋‹ค. ํ•˜๋‘ก ๋งต๋ฆฌ๋“€์Šค์™€ ๋‹ค๋ฅด๊ฒŒ ๋ชจ๋“  ์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋ฉฐ ๋””์Šคํฌ I/O ์‚ฌ์šฉ์„ ์ค„์ธ๋‹ค.

 

๋‘๋ฒˆ์งธ, ์‚ฌ์šฉํŽธ๋ฆฌ์„ฑ

๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„, ๋ฐ์ดํ„ฐ์„ธํŠธ, RDD API๋กœ ์ธํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ„๊ฒฐํ•˜๊ณ  ๋‹จ์ˆœํ•œ ์ฝ”๋“œ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์„ธ๋ฒˆ์งธ, ๋ชจ๋“ˆ์„ฑ

4๊ฐ€์ง€ ์ปดํฌ๋„ŒํŠธ(์ŠคํŒŒํฌSQL, ์ŠคํŒŒํฌ ์ •ํ˜•ํ™” ์ŠคํŠธ๋ฆฌ๋ฐ, MLlib, GraphX)๊ฐ€ ์กด์žฌํ•˜๋ฉฐ ํ•˜๋‚˜์˜ ์—”์ง„ ์•ˆ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋ณ„๋„์˜ ์—”์ง„์„ ๋Œ๋ฆด ํ•„์š”๋„ ์—†๊ณ  ๋ณ„๋„์˜ API๋ฅผ ๋ฐฐ์šธ ํ•„์š”๋„ ์—†๋‹ค.

 

๋„ค๋ฒˆ์งธ, ํ™•์žฅ์„ฑ

์ŠคํŒŒํฌ๋Š” ๋น ๋ฅธ ๋ณ‘๋ ฌ ์—ฐ์‚ฐ์— ์ดˆ์ ์ด ๋งž์ถฐ์ ธ ์žˆ๊ธฐ์— ์ €์žฅ์„ ๋‹ด๋‹นํ•˜๋Š” ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์†Œ์Šค์™€์˜ ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚˜๋‹ค. ํ•˜๋‘ก์€ ์ €์žฅ๊ณผ ์—ฐ์‚ฐ์„ ๋ชจ๋‘ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.

 

์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ŠคํŒŒํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋™์ž‘ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด์ž.

 

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

- API๋ฅผ ์จ์„œ ์ŠคํŒŒํฌ ์œ„์—์„œ ๋Œ์•„๊ฐ€๋Š” ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ. ๋“œ๋ผ์ด๋ฒ„์™€ ํด๋Ÿฌ์Šคํ„ฐ ์‹คํ–‰๊ธฐ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

 

SparkSession

- ์ŠคํŒŒํฌ ์ฝ”์–ด ๊ธฐ๋Šฅ๋“ค๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ง„์ž…์ ์„ ์ œ๊ณตํ•˜๋Š” ๊ฐ์ฒด์ด๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ SparkSession ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.

 

Job

- ์ŠคํŒŒํฌ ์•ก์…˜์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ์—ฌ๋Ÿฌ ํƒœ์Šคํฌ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ณ‘๋ ฌ ์—ฐ์‚ฐ

 

Stage

- Job์€ ์Šคํ…Œ์ด์ง€๋ผ ๋ถˆ๋ฆฌ๋Š” ์„œ๋กœ ์˜์กด์„ฑ์„ ๊ฐ€์ง€๋Š” ๋‹ค์ˆ˜์˜ ํƒœ์Šคํฌ ๋ชจ์Œ์œผ๋กœ ๋‚˜๋‰œ๋‹ค.

 

Task- ์ŠคํŒŒํฌ ์ด๊ทธ์ œํํ„ฐ๋กœ ๋ณด๋‚ด์ง€๋Š” ์ž‘์—… ์‹คํ–‰์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋‹จ์œ„

 

์ŠคํŒŒํฌ ์—ฐ์‚ฐ์€ Transformation๊ณผ Action์œผ๋กœ ๋‚˜๋‰˜๋ฉฐ, Action์ด ํ˜ธ์ถœ๋˜์ง€ ์•Š์œผ๋ฉด ์ŠคํŒŒํฌ๋Š” ์•„์˜ˆ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.

Transformation์€ ์›๋ณธ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ํ•˜๋‚˜์˜ ์ŠคํŒŒํฌ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์„œ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค.

๋ชจ๋“  Transformation์€ ๊ฒฐ๊ณผ๊ฐ’์ด ์ฆ‰์‹œ ๊ณ„์‚ฐ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋ฅผ lineage๋ผ ํ•˜๋ฉฐ, ๊ธฐ๋ก๋œ ๋ฆฌ๋‹ˆ์ง€๋Š” ์ŠคํŒŒํฌ๊ฐ€ ํŠธ๋ Œ์Šคํฌ๋ฉ”์ด์…˜๋“ค๋ผ๋ฆฌ ํ•ฉ์น˜๊ฑฐ๋‚˜ ์žฌ๋ฐฐ์—ดํ•˜๊ฑฐ๋‚˜ ํ•ด์„œ ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ตœ์ ํ™” ํ•œ๋‹ค. ํŠธ๋žœ์Šคํฌ๋ฉ”์ด์…˜์„ ๋ฆฌ๋‹ˆ์ง€์— ๊ธฐ๋ก๋งŒ ํ•ด๋‘๊ณ  ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์ง€์—ฐ ํ‰๊ฐ€๋ผ๊ณ  ํ•œ๋‹ค. ์ฝ”๋“œ์—์„œ ์•ก์…˜์„ ๋งŒ๋‚ฌ์„ ๋•Œ ๋ชจ๋“  ํŠธ๋žœ์Šคํฌ๋ฉ”์ด์…˜์˜ ์ง€์—ฐ ์—ฐ์‚ฐ์ด ๋ฐœ๋™๋˜๋ฉฐ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์ƒ์„ฑํ•˜์—ฌ ์ž‘์—…ํ•œ๋‹ค.

 

=> ์ง€์—ฐ ํ‰๊ฐ€๋Š” ์ฟผ๋ฆฌ ์ตœ์ ํ™”๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๊ณ  ๋ฆฌ๋‹ˆ์ง€์™€ ๋ฐ์ดํ„ฐ ๋ถˆ๋ณ€์„ฑ์€ ์žฅ์• ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ๋‚ด๊ตฌ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค.

 

์ข์€/๋„“์€ ํŠธ๋žœ์Šคํฌ๋ฉ”์ด์…˜

ํ•˜๋‚˜์˜ ํŒŒํ‹ฐ์…˜ ๋‚ด์—์„œ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ข์€ ํŠธ๋žœ์Šคํฌ๋ฉ”์ด์…˜์œผ๋กœ filter()๋‚˜ contains()๊ฐ€ ํฌํ•จ๋œ๋‹ค. ๋ฐ˜๋ฉด์— ํŒŒํ‹ฐ์…˜๋ผ๋ฆฌ ๋ฐ์ดํ„ฐ ๊ตํ™˜์ด ๋ฐœ์ƒํ•˜๊ณ  ๋””์Šคํฌ ์ž‘์—… ๋“ฑ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋„“์€ ํŠธ๋žœ์Šคํฌ๋ฉ”์ด์…˜์œผ๋กœ groupby()๋‚˜ orderby()๊ฐ€ ํฌํ•จ๋œ๋‹ค.

ํ•˜๋‘ก ์ƒํƒœ๊ณ„ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘/์ €์žฅ/์ฒ˜๋ฆฌ/์ ์žฌ
๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ - Kafka - ์‹ค์‹œ๊ฐ„ ๋ถ„์‚ฐํ™˜๊ฒฝ์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์†ก์ˆ˜์‹ ํ•˜๋Š” ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ ์†”๋ฃจ์…˜
๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์ €์žฅ - HDFS - ๋ฐ์ดํ„ฐ๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ ํ™˜๊ฒฝ์— ๋ถ„์‚ฐ ์ €์žฅํ•˜๋Š” ์†”๋ฃจ์…˜์œผ๋กœ Namenode(๋ฆฌ๋”๋…ธ๋“œ)์™€ Datanode(์ปดํ“จํŒ…๋…ธ๋“œ)๋กœ ๊ด€๋ฆฌ
๋ถ„์‚ฐ ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ - YARN - ๋ถ„์‚ฐ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ ์†”๋ฃจ์…˜์œผ๋กœ Resourse Manager๊ฐ€ Node Manager๋ฅผ ๊ด€๋ฆฌ
๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ๋ฐฐ์น˜์ฒ˜๋ฆฌ - Hadoop MapReduce - Map๊ณผ Reduce์˜ 2์ƒ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•˜๋‘ก ๊ธฐ๋ฐ˜์˜ ๋ฐฐ์น˜ ์ž‘์—… ํ”Œ๋žซํผ
์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ - Apache Spark - ์ธ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํ”Œ๋žซํผ์œผ๋กœ ๋ฐฐ์น˜์ฒ˜๋ฆฌ, ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ, SQL ์งˆ์˜์™€ Graph ์ฒ˜๋ฆฌ, ๋จธ์‹ ๋Ÿฌ๋‹ ๊ฐ™์€ ํ•˜์œ„ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉ
๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์Šค ์—ฐ๋™ - Hive - ํ•˜๋‘ก ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค ์‹œ์Šคํ…œ

๋ถ„์‚ฐ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ๋ฐฉ๋ฒ•: ElasticSearch
Restful ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •ํ˜•, ๋น„์ •ํ˜•, ๋ฐ์ดํ„ฐ ์œ„์น˜์ •๋ณด, ๋ฉ”ํŠธ๋ฆญ ๋“ฑ ์›ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ์ˆ˜ํ–‰

ํ•˜๋‘ก ์ƒํƒœ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 
1. ํ•˜๋‘ก์˜ HDFS๋Š” ๋™์ผํ•œ ์ €๊ฐ€ ๋ฆฌ๋ˆ…์Šค๋ฅผ ๋ถ„์‚ฐ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์‚ฌ์šฉํ•˜์—ฌ scale out์„ ์‚ฌ์šฉ -> ์ €์žฅ์†Œ์˜ ๋น„์šฉ์ด ์ €๋ ดํ•จ
2. ์ •ํ˜• ๋ฐ์ดํ„ฐ ์™ธ์—๋„ ๋ฐ˜์ •ํ˜•, ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ ๋ชจ๋‘ ๋‹ค๋ฃธ
3. YARN์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ, CPU, ๋””์Šคํฌ ๋ฆฌ์†Œ์Šค๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €๋ ดํ•˜๊ฒŒ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ -> ์šด์˜ํ• ๋•Œ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ ํฌ์ธํŠธ์—์„œ ์ข€ ์ž์œ ๋กœ์›€
4. ๋”ฅ๋Ÿฌ๋‹, ์ธ๊ณต์ง€๋Šฅ์—์„œ ํ•„์š”ํ•œ INPUT ๋ฐ์ดํ„ฐ ์ œ๊ณต ๊ฐ€๋Šฅ -> ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ์˜ ์ธ์‚ฌ์ดํŠธ ์ถ”์ถœ ๊ฐ€๋Šฅ
5. Schema on Read -> ๋ฐ์ดํ„ฐ๋ฅผ read ํ•˜๋Š” ์‹œ์ ์— ์Šคํ‚ค๋งˆ๋ฅผ ์ง€์ •ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ถ”์ถœ -> ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ์Šคํ‚ค๋งˆ์˜ ์œ„์น˜๊ฐ€ ๋ชจ๋‘ ๋‹ฌ๋ผ์„œ ์‹œ๊ฐ„ ์ ˆ์•ฝ ๊ฐ€๋Šฅ

๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ
์ •์˜: ์›์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ์˜ ๋ถ„์„ ๋ฐ ์ฒ˜๋ฆฌ์— ์ ํ•ฉํ•œ ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์—…<br>
๊ธฐ๋ฒ•: ๋ฐ์ดํ„ฐ ์ •์ œ, ๋ฐ์ดํ„ฐ ํ†ตํ•ฉ, ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜, ๋ฐ์ดํ„ฐ ์ •๋ฆฌ

 

ETL ํ”„๋กœ์„ธ์Šค(Extract/Transformation/Loading)
๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ํ•˜๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€ํ™˜ํ•œ ํ›„ ๋Œ€์ƒ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ์†Œ๋กœ ์ ์žฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ

ELT ํ”„๋กœ์„ธ์Šค(Extract&Load/Transformation)
์ผ๋‹จ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•ญ ์ ์žฌํ•˜๊ณ  ์ดํ›„ ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž์ถฐ ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ -> ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ์ด ์ •ํ•ด์ง€์ง€ ์•Š์•˜์–ด๋„ ๋ฐ์ดํ„ฐ ์ ์žฌ ๊ฐ€๋Šฅ

ํ•˜๋‘กํŒŒ์ผ์‹œ์Šคํ…œ
- ๊ตฌ์„ฑ: ๋งˆ์Šคํ„ฐ ์—ญํ• ์˜ NameNode์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ œ๋กœ ์ €์žฅํ•˜๋Š” ๋‹ค์ˆ˜์˜ ์Šฌ๋ ˆ์ด๋ธŒ Datanode
- ๊ตฌ์กฐ: ๋งˆ์Šคํ„ฐ-์Šฌ๋ ˆ์ด๋ธŒ ๊ตฌ์กฐ(ํ•˜๋‚˜์˜ ๋งˆ์Šคํ„ฐ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์Šฌ๋ ˆ์ด๋ธŒ ๊ตฌ์กฐ)
- ๋™์ž‘์›๋ฆฌ
  1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ HDFS์— ์ €์žฅ
  2. HDFS Client๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ(ํŒŒ์ผ๋ช…, ํด๋”๊ตฌ์กฐ ๋“ฑ)๋ฅผ NameNode์— ์ €์žฅ
  3. NameNode๋Š” Datanode์—๊ฒŒ ๋ฐ์ดํ„ฐ ๊ด€๋ จ ๋ช…๋ น ์ง€์‹œ,  Datanode๋Š” ์ž์‹ ์˜ ์ƒํƒœ ์ •๋ณด๋ฅผ NameNode์—๊ฒŒ ์†ก์‹ 
  4. Datanode์•ˆ์˜ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ ์ ธ ์‹ค๋ฐ์ดํ„ฐ๊ฐ€ ๋ณต์ œ ์ €์žฅ๋จ
  5. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ฌ ๊ฒฝ์šฐ, HDFS Client๋Š” NameNode๋กœ๋ถ€ํ„ฐ ํŒŒ์ผ ๋ธ”๋ก์— ๋Œ€ํ•œ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ ์ˆ˜์‹ 
  6. HDFS Client๊ฐ€ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” Datanode์˜ ํŒŒ์ผ ๋ธ”๋ก์„ ์ฐพ์•„์„œ ํŒŒ์ผ์„ ์ฝ์–ด์˜ด.
  7. NameNode์˜ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์‹œ, Secondary Namenode์˜ Edits ํŒŒ์ผ์— ๋กœ๊ทธ ์ €์žฅ
 
Yarn์˜ ๊ตฌ์กฐ
|๋ฐ๋ชฌ|๊ธฐ๋Šฅ|
|------|---|
|Resource Manager|Yarn์˜ ๋งˆ์Šคํ„ฐ ์—ญํ•  ์ˆ˜ํ–‰(์ด๊ด„ ๊ด€๋ฆฌ์ž)|
|Scheduler|Resource Manager ๋‚ด์˜ ๋ฐ๋ชฌ์œผ๋กœ Node Manager์™€ ํ†ต์‹ ํ•˜๋ฉฐ, Application Master์— ์ž์› ํ• ๋‹น|
|Application Manager|Resource Manager ๋‚ด์˜ ๋ฐ๋ชฌ์œผ๋กœ Application Master ์‹คํ–‰ ๋ฐ ์ƒํƒœ ๊ด€๋ฆฌ|
|Node Manager|๊ฐ ๋…ธ๋“œ์˜ ์ƒํƒœ ์ •๋ณด๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•˜์—ฌ Resource Manager์—๊ฒŒ ์ œ๊ณต|
|Application Master|๊ฐ๊ฐ์˜ Application์„ ๊ด€๋ฆฌํ•˜๋Š” ๋งˆ์Šคํ„ฐ์˜ ์—ญํ• |
|Container|Application Master๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ํƒœ์Šคํฌ๋ฅผ ์ˆ˜ํ–‰, Node Manager์— ์˜ํ•ด ์ƒ์„ฑ|

ํ•˜๋‘กํŒŒ์ผ์‹œ์Šคํ…œ์˜ ์žฅ์ 
- ์Šค์ผ€์ผ ์•„์›ƒ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ(๋ณ‘๋ ฌ๋กœ ์Šค์ผ€์ผ ์•„์›ƒ๋จ์œผ๋กœ ๋ฐ์ดํ„ฐ ์–‘์— ๋”ฐ๋ผ์„œ ์„œ๋ฒ„ ํ•„์š”)
- ์žฅ์• ๋ณต๊ตฌ(๋งˆ์Šคํ„ฐ ์„œ๋ฒ„๊ฐ€ ์Šฌ๋ ˆ์ด๋ธŒ ์„œ๋ฒ„์˜ ์žฅ์• ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฐ์ง€ํ•˜์—ฌ ์„œ๋น„์Šค ์šฐํšŒ OR ๋‹ค๋ฅธ ๋…ธ๋“œ์— ๋ณต์ œ๋œ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ)
- ๋Œ€์šฉ๋Ÿ‰๋ฐ์ดํ„ฐ(ํ•œ๋ฒˆ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” only read = ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ X)

'Dataops > Hadoop' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

fredapi ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์˜ค๋ฅ˜  (0) 2024.03.03

FRED ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด์„œ ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ fredapi๋ฅผ ์„ค์น˜ํ•ด์•ผํ•œ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ์•„๋‚˜์ฝ˜๋‹ค ๊ฐ€์ƒํ™˜๊ฒฝ ๋ชจ๋“ˆ์—์„œ ์œ„์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ํ™•์ธํ•ด๋ณด๋‹ˆ Python 3.9 ์ด์ƒ์—์„œ๋Š” fredapi์— ์ €๋Ÿฐ ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•œ๋‹ค. ์ฆ‰ ํŒŒ์ด์ฌ ๋ฒ„์ „๊ณผ fredapi ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ถฉ๋Œ์ด๋‹ค. ๊ทธ๋ž˜์„œ fredapi๋ฅผ ์žฌ์„ค์น˜๋ฅผ ํ•ด์ค˜์•ผํ–ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ๋จผ์ € ์•„๋‚˜์ฝ˜๋‹ค์— ์„ค์น˜๋˜์–ด ์žˆ๋Š” ํŒจํ‚ค์ง€๋ฅผ ์‚ญ์ œํ•ด์คฌ๋‹ค.

conda uninstall fredapi

 

๋ฌธ์ œ๋Š” conda install fredapi๋ฅผ ํ•˜๋ฉด PackagesNotFoundError๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ์„œ ์„ค์น˜๊ฐ€ ์•ˆ๋œ๋‹ค.

๊ทธ๋ž˜์„œ pip์„ ์‚ฌ์šฉํ•ด์„œ ์„ค์น˜ํ•ด์คฌ๋”๋‹ˆ,,, ์ด๋ฒˆ์—” pandas์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์„œ pandas๋„ ์žฌ์„ค์น˜ํ•ด์คฌ๋‹ค.

pip install fredapi

 

๋‹ค์‹œ ํ•œ๋ฒˆ ๋А๋ผ์ง€๋งŒ ํŒŒ์ด์ฌ์€ ๋ฒ„์ „์— ๋„ˆ๋ฌด ๋ฏผ๊ฐํ•ด์„œ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ•˜๋Š” ๊ฒŒ ํ•ญ์ƒ ๋ฌธ์ œ์ธ ๊ฑฐ ๊ฐ™๋‹ค.

'Dataops > Hadoop' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ํ•˜๋‘ก ๊ธฐ๋ณธ์ •๋ณด  (0) 2024.03.03

+ Recent posts