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

[BigData] ๋น„์ง€๋„ ํ•™์Šต(Unsupervised Learning)

๋น„์ง€๋„ ํ•™์Šต(Unsupervised Learning) ? ์ •๋‹ต ๋ฐ์ดํ„ฐ์…‹์ด ์—†๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹œ์Šคํ…œ์ด ์Šค์Šค๋กœ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ฃผ๋กœ ๋ฐ์ดํ„ฐ๋“ค์˜ ํŠน์ง•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฐ์ง‘ํ™”๋ฅผ ์ˆ˜ํ–‰ ๋ฐ์ดํ„ฐ์˜ ์ฐจ์›์ด ๋†’์„์ˆ˜๋ก ๋ฐ์ดํ„ฐ์— ๋” ๋งŽ์€ ๋…ธ์ด์ฆˆ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๊ตฐ์ง‘ํ™”์— ์–ด๋ ค์›€์„ ๊ฒช์Œ(์ฐจ์›์˜ ์ €์ฃผ) k-ํ‰๊ท  ์•Œ๊ณ ๋ฆฌ์ฆ˜ (k-means) ์‚ฌ์ „์— ์ •ํ•œ k๊ฐœ์˜ ๊ตฐ์ง‘์œผ๋กœ ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„๋ฅ˜ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋น„์ง€๋„ ํ•™์Šต์˜ ์ผ์ข…์œผ๋กœ ๋ ˆ์ด๋ธ”์ด ๋‹ฌ๋ ค ์žˆ์ง€ ์•Š์€ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์— ๋ ˆ์ด๋ธ”์„ ๋‹ฌ์•„์ฃผ๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ์–ด์ง„ ์ค‘์‹ฌ์ (Centroid)์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ตฐ์ง‘์— ํ• ๋‹น ๊ตฐ์ง‘์ด ํ˜•์„ฑ๋˜๋ฉด ์ƒˆ๋กญ๊ฒŒ ํ˜•์„ฑ๋œ ๊ตฐ์ง‘์˜ ์ค‘์‹ฌ์ (Centroid)์„ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์‹œ ๋ฐ์ดํ„ฐ์™€ ์ค‘์‹ฌ์  ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์ธก์ •ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ตฐ์ง‘์„ ํ˜•์„ฑ ํ•œ๊ณ„ : ๊ตฌ ๋ชจ์–‘์˜ ..

[BigData] ํšŒ๊ท€ (Regression)

ํšŒ๊ท€(regression) ? ์ฃผ์–ด์ง„ ์ž…๋ ฅ์˜ ํŠน์ง•์œผ๋กœ๋ถ€ํ„ฐ ์‹ค์ˆ˜(์—ฐ์†ํ˜• ๋ณ€์ˆ˜)๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ํ–‰์œ„ ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋“ค ๊ฐ„์— ํ•จ์ˆ˜๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•˜์—ฌ ํ†ต๊ณ„์  ์ถ”๋ก ์„ ํ•˜๋Š” ๊ธฐ์ˆ  ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ์ถ”์ •ํ•˜์—ฌ, ์˜ˆ์ธก ๊ฐ’๊ณผ ์‹ค์ œ๊ฐ’์˜ ์˜ค์ฐจ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด ํšŒ๊ท€์˜ ๋ชฉํ‘œ ํšŒ๊ท€์˜ ์œ ํ˜• ๋‹จ์ˆœ ์„ ํ˜• ํšŒ๊ท€(Simple linear regression) : ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋‹จ๋ณ€๋Ÿ‰ ๋ชจ๋ธ๋กœ์„œ, ๋…๋ฆฝ๋ณ€์ˆ˜๊ฐ€ ํ•˜๋‚˜์ธ ํšŒ๊ท€ ๋ชจ๋ธ ๋‹ค์ค‘ ์„ ํ˜• ํšŒ๊ท€(Multiple linear regression) : ๋‹ค๋ณ€๋Ÿ‰ ๋ชจ๋ธ๋กœ์„œ, ๋…๋ฆฝ๋ณ€์ˆ˜๊ฐ€ ๋‘˜ ์ด์ƒ์ธ ํšŒ๊ท€ ๋ชจ๋ธ MILib ์˜ ํšŒ๊ท€ ๋ชจ๋ธ ์„ ํ˜• ํšŒ๊ท€(Linear Regression) ์ผ๋ฐ˜ํ™” ์„ ํ˜• ํšŒ๊ท€(Generalized linear Regression) ์„ ํ˜•ํšŒ๊ท€๋ถ„์„์—์„œ ๊ฒฐ๊ณผ๋ณ€์ˆ˜๋Š” ์—ฐ์†์ ์ด๋ฉด์„œ ์ •๊ทœ๋ถ„ํฌ๋ฅผ ๋”ฐ๋ฅด์ง€..

[BigData] ๋Œ€์šฉ๋Ÿ‰ ๋ถ„๋ฅ˜

๋ถ„๋ฅ˜(Classification) ? ์ฃผ์–ด์ง„ ์ž…๋ ฅ์˜ ํŠน์ง•์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ž˜์Šค๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ์ž‘์—… ์ง€๋„ํ•™์Šต์˜ ์ผ์ข…์œผ๋กœ ๊ธฐ์กด์˜ ์กด์žฌํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋ธ์„ ํ•™์Šตํ•˜์—ฌ ์ƒˆ๋กญ๊ฒŒ ๊ด€์ธก๋œ ๋ฐ์ดํ„ฐ์˜ ํด๋ž˜์Šค๋ฅผ ํŒ๋ณ„ ํด๋ž˜์Šค(์ข…๋ฅ˜)๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ์ž‘์—…์œผ๋กœ์จ, ํšŒ๊ท€(์—ฐ์†๋œ ๊ฐ’)์„ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ๊ณผ๋Š” ์ฐจ์ด๊ฐ€ ์žˆ์Œ ๋ถ„๋ฅ˜ ํ™œ์šฉ ์‚ฌ๋ก€ ์‹ ์šฉ ๋ฆฌ์Šคํฌ ์˜ˆ์ธก : ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜(์‚ฌ์šฉ์ž ์ •๋ณด)๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ๋Œ€์ถœ ์ œ๊ณต ์—ฌ๋ถ€ ํด๋ž˜์Šค๋กœ ํŒ๋ณ„ ๋‰ด์Šค๊ธฐ์‚ฌ ๋ถ„๋ฅ˜ : ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•™์Šต์‹œ์ผœ ๋‰ด์Šค๊ธฐ์‚ฌ์˜ ์ฃผ์ œ๋ฅผ ์˜ˆ์ธก ์‚ฌ์šฉ์ž ํ–‰์œ„ ๋ถ„๋ฅ˜ : ์„ผ์„œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ํ™œ๋™์„ ์˜ˆ์ธก ๋ถ„๋ฅ˜ ์œ ํ˜• ์ด์ง„ ๋ถ„๋ฅ˜(Binary Classification) ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ๋‘ ๊ฐœ์˜ ํด๋ž˜์Šค ์ค‘ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋กœ ์˜ˆ์ธก ex. ์ŠคํŒธ ๋ฉ”์ผ ํŒ๋ณ„(์ŠคํŒธ ๋˜๋Š” ์ •์ƒ), ๋Œ€์ถœ ์Šน์ธ(์Šน์ธ ๋˜๋Š” ๊ฑฐ์ ˆ), ๊ณ ..

[BigData] Spark ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ์ „ ์ฒ˜๋ฆฌ

Spark ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์›๋ฆฌ ๊ณ ์ˆ˜์ค€ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ API๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ์ž๋™์œผ๋กœ ๊ณ ์†์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋จ Spark์˜ ๊ณ ์ˆ˜์ค€ API ํ™œ์šฉํ•œ ์ „์ฒ˜๋ฆฌ ๊ฒฐ์ธก์น˜ ์ฒ˜๋ฆฌ ํŠน์ • ์—ด์˜ ๊ฒฐ์ธก์น˜ ์„ธ๊ธฐ : df.filter(df.col_name.isNull()).count() ๊ฒฐ์ธก์น˜๊ฐ€ ์žˆ๋Š” ํ–‰ ์ œ๊ฑฐ : df.na.drop(how="any").show(truncate=False) ์ค‘๋ณต๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ค‘๋ณต๋ฐ์ดํ„ฐ ํ™•์ธ : df.show() ์ค‘๋ณต๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ : df.dropDuplicates(['id', 'name']).show() ๋ฐ์ดํ„ฐ ์ •๊ทœํ™” feature๊ฐ€ ํ‰๊ท 0, ํ‘œ์ค€ํŽธ์ฐจ๊ฐ€ 1์ธ ๋ถ„ํฌ๋ฅผ ๊ฐ–๋„๋ก ๋ฐ์ดํ„ฐ๋ฅผ ์ •๊ทœํ™” sScaler = StandardScaler().setInputCol("features") ..

[BigData] ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ

๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ? ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ ๋ฐ ์ฒ˜๋ฆฌํ•˜๊ธฐ์— ์•Œ๋งž์€ ํ˜•ํƒœ๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ • ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ์˜ ํ’ˆ์งˆ์ด ๋†’์œผ๋ฉด ๋ถ„์„ ๊ฒฐ๊ณผ์˜ ์ •ํ™•๋„๋„ ํ–ฅ์ƒ ๋น„๊ต์  ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๊ณ , ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—… ๋ฐ์ดํ„ฐ ๋ถ„์„ ์ „, ๋ฐ์ดํ„ฐ ์ค€๋น„ EDA(Exploratory Data Analysis) ์ „์ฒด์ ์ธ ๋ฐ์ดํ„ฐ ํŒจํ„ด ํŒŒ์•… ๋ฐ์ดํ„ฐ์˜ Feature ์ดํ•ด ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ(Data Preprocessing) ์ด์ƒ์น˜ ๋ฐœ๊ฒฌ ์ด์ƒ์น˜ ์ˆ˜์ • Feature Engineering Feature ์„ ํƒ Feature ์ถ”์ถœ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ๊ณผ์ • -> ๋ฐ์ดํ„ฐ ์ •์ œ(Data Cleansing) ๊ฒฐ์ธก์น˜(missing value) ์ฒ˜๋ฆฌ : ๋น„์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ œ๊ฑฐ, ๋Œ€์ฒด ์ด์ƒ์น˜ (outlier) ์ฒ˜๋ฆฌ : ์ด์ƒ์น˜ ์ œ๊ฑฐ ๋ฐ ๋Œ€์ฒด ์ค‘๋ณต(duplicate data) ์ฒ˜๋ฆฌ : ์ค‘๋ณต ๋ฐ์ดํ„ฐ..

[BigData] ๋น…๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณ€ํ˜•

01. ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋ฒ• ํ™œ์šฉ ๊ธฐ์กด์˜ ๋ถ„์„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋ฒ•์„ ํ™œ์šฉํ•˜์—ฌ ๋น…๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์†์ฒ˜๋ฆฌํ•ด์•ผํ•จ ๊ธฐ์กด์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋ฒ•์— ๋งž๊ฒŒ ๋ณ€ํ˜•ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ถ„์„ MapReduce ๋ฐฉ์‹์˜ ๋ถ„์‚ฐ์ฒ˜๋ฆฌ ๊ธฐ๋ฒ•์„ ์ ์šฉํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณ€ํ˜•์„ ํ•  ์ˆ˜ ์žˆ์Œ 02. ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•œ ๋ถ„์„ ์†Œ์…œ ๋„คํŠธ์›Œํฌ ํ†ต๊ณ„ ๋ฐฉ์•ˆ -> ๋งต๋ฆฌ๋“€์Šค ๋งต ํ•จ์ˆ˜(Mapper)์™€ ๋ฆฌ๋“€์Šค(Reducer) ํ•จ์ˆ˜์˜ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์€ ๋ชจ๋‘ ์ˆœ์„œ์Œ์œผ๋กœ ์ •์˜ํ•จ employee.txt. ๋ฐ์ดํ„ฐ ํŒŒ์ผ์—์„œ FIRST๋ณ„๋กœ ๋นˆ๋„์ˆ˜๊ฐ€ ์–ผ๋งˆ์ธ์ง€ ์ธก์ •ํ•˜๋Š” ๋งต๋ฆฌ๋“€์Šค๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๊ณ ์ž ํ•จ ์†Œ์…œ ๋„คํŠธ์›Œํฌ ํ†ต๊ณ„ ๋ฐฉ์•ˆ ์› ๋ฐ์ดํ„ฐ๋ฅผ ์—์ง€๋กœ๋งŒ ํ‘œํ˜„ ๊ฐ ๋งต ํ•จ์ˆ˜์—์„œ๋Š” ๋‚˜๋ˆ„์–ด์ง„ ์—์ง€์˜ ์ˆœ์„œ์Œ์—์„œ ์–ป์€ ๊ฐ’์ธ ๋ชฉ์  ๋…ธ๋“œ ID๋กœ ๊ทธ๋ฃนํ•‘ํ•จ ์ถœ๋ ฅ ์ •๋ณด๋ฅผ ๋‹ค์‹œ ์ˆœ์„œ์Œ์œผ๋กœ ํ‘œํ˜„ -> ๋งต ํ•จ์ˆ˜..

[BigData] ๋น…๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ธฐ์ˆ 

๋น…๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ธฐ์ˆ  ? ๊ธฐ์กด์˜ ๋ฐ์ดํ„ฐ ๋ถ„์„์— ๋” ๋‚˜์•„๊ฐ€, ๋Œ€๊ทœ๋ชจ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜์—ฌ ๋ณด๋‹ค ๋†’์€ ์ •ํ™•์„ฑ์„ ํ™•๋ณดํ•˜๋Š” ๊ธฐ์ˆ  ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์ƒ์—์„œ๋Š” ๋ถ„์„ ๊ธฐ์ˆ ์„ ์ ์šฉํ•˜์—ฌ, ๋น…๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜๋Š” ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์นจ ๊ธฐ์กด์˜ ๋ถ„์„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์—ฌ๋Ÿฌ ๋Œ€์˜ ๋ถ„์‚ฐ ๋…ธ๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ถ„์‚ฐ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์กด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ณ€ํ˜•ํ•˜๊ธฐ๋„ ํ•จ ํ•˜๋‘ก, ์ŠคํŒŒํฌ ๋“ฑ์˜ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์—์„œ ์—ฌ๋Ÿฌ ๋ถ„์„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์†์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ ๋‹ค์–‘ํ•œ ๋„๋ฉ”์ธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์˜๋ฏธ ์žˆ๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•˜๋Š” ๊ฒƒ์„ ๋ชฉ์ ์œผ๋กœ ํ•จ ๋น…๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ธฐ์ˆ ์˜ ์ข…๋ฅ˜ ๋ถ„๋ฅ˜(Classfication) : ์ผ์ •ํ•œ ์ง‘๋‹จ์—์„œ ํŠน์ •ํ•œ ์ •์˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ถ„๋ฅ˜๋ฅผ ์ถ”๋ก ํ•จ ์˜ˆ์ธก(Forecasting) : ๋ฐฉ๋Œ€ํ•œ ์–‘์˜ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์˜ ํŒจํ„ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฏธ๋ž˜๋ฅผ ์˜ˆ์ธก ์‹œ๊ณ„์—ด ๋ถ„์„(Time-S..

[BigData] Spark ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, RDD

RDD(Resilient Distributed Dataset) ? ์ธ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์ตœ์ดˆ์— Disk์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜จ ๋’ค, ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์—ฐ์‚ฐ(operation)์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์—ฐ์‚ฐ ํ•จ์ˆ˜ ์ œ๊ณต RDD ํŠน์„ฑ In-memory Computation RDD์—์„œ ์ œ๊ณตํ•˜๋Š” operation์€ ์—ฐ์‚ฐ์˜ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋ฅผ ๋””์Šคํฌ์— ์ €์žฅํ•˜์ง€ ์•Š๊ณ , ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ์ƒ์ฃผ์‹œํ‚ด Transformations : RDD์—์„œ ๋‹ค๋ฅธ RDD๋ฅผ ๋งŒ๋“œ๋Š” ๋ณ€ํ˜• ์—ฐ์‚ฐ Actions : RDD์˜ ์ตœ์ข… ์—ฐ์‚ฐ์œผ๋กœ RDD์—์„œ RDD๊ฐ€ ์•„๋‹Œ data๋กœ ์ €์žฅ Immutable RDD๋Š” ํ•œ ๋ฒˆ ๋งŒ๋“ค์–ด์ง€๋ฉด ๋‚ด์šฉ ๋ณ€ํ˜•์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์Œ Lineage RDD์˜ transformation์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  RDD..

[BigData] Spark(์ŠคํŒŒํฌ)

Spark ? UC Berkely AMPLab์—์„œ ๊ฐœ๋ฐœํ•œ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ Disk ๊ธฐ๋ฐ˜์˜ Hadoop ์ฒ˜๋ฆฌ ๋ฐฉ์‹์„ ๊ฐœ์„ ํ•˜์—ฌ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋†’์ž„ ์ธ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์˜ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์šฉ๋Ÿ‰ ๊ณ ์† ์ฒ˜๋ฆฌ ์—”์ง„ RDD ๋ฐฉ์‹์˜ ์ธ๋ฉ”๋ชจ๋ฆฌํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ ์ œ๊ณต ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ ๋ฐ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ ๋ชจ๋‘ ์ง€์› SQL ๋ฐฉ์‹์˜ ์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฟ ์•„๋‹ˆ๋ผ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ชจ๋‘ ์ง€์› Spark ์„ค๊ณ„ ์ฒ ํ•™ ๊ณ ์†์ฒ˜๋ฆฌ Hadoop์—์„œ์˜ ๋””์Šคํฌ I/O๋กœ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์„ฑ๋Šฅ ์ง€์—ฐ์˜ ๋ฌธ์ œ์ ์„ ๊ฐœ์„ ํ•ด ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋Œ€ํญ ๋†’์ž„ ํ†ตํ•ฉ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์—”์ง„ SQL ๋ฐ์ดํ„ฐ, ์ŠคํŠธ๋ฆผ, ๋จธ์‹ ๋Ÿฌ๋‹, ๊ทธ๋ž˜ํ”„ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ํ†ตํ•ฉ๋œ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ ๊ธฐ์กด ๋ณต์žกํ•œ ํ”„๋ ˆ์ž„์›Œํฌ ์—ฐ๋™ ๋ฌธ์ œ ๊ฐœ์„  ๊ฒฐํ•จ ํ—ˆ์šฉ์„ฑ ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜..

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

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