5.10 Hadoop Ecosystem#

hadoop ecosystem

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

HDFS#

HDFS๋Š” Hadoop Distributed File System์˜ ์•ฝ์ž๋กœ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐ ์ €์žฅํ•˜๋Š” ํ•˜๋‘ก์˜ ๊ธฐ๋ณธ ์Šคํ† ๋ฆฌ์ง€ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

Hive#

Hive๋Š” HDFS์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ SQL๋กœ ์ฟผ๋ฆฌํ•˜๋ ค๋Š” ๋ชฉ์ ์—์„œ ํƒ„์ƒ๋œ ํˆด์ž…๋‹ˆ๋‹ค. ์ •ํ™•ํ•˜๊ฒŒ SQL๊ณผ ๋™์ผํ•˜์ง„ ์•Š์ง€๋งŒ SQL๊ณผ ์œ ์‚ฌํ•œ ๊ตฌ๋ฌธ์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. RDB์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ HDFS์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋ฉฐ, ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€์ƒ์œผ๋กœ SQL๊ณผ ์œ ์‚ฌํ•œ HiveQL ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ํฐ ํŠน์ง•์œผ๋กœ๋Š” ๋ฉ”ํƒ€์Šคํ† ์–ด๋ผ๋Š” ๊ฒƒ์ด ์กด์žฌํ•˜๋Š”๋ฐ, ํ•˜์ด๋ธŒ๋Š” ๊ธฐ์กด์˜ RDB์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ๋ฏธ๋ฆฌ ์Šคํ‚ค๋งˆ๋ฅผ ์ •์˜ํ•˜๊ณ  ๊ทธ ํ‹€์— ๋งž๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฑฐ๊ธฐ์— ์Šคํ‚ค๋งˆ๋ฅผ ์ž…ํžˆ๋Š”(๋ฉ”ํƒ€์Šคํ† ์–ด์— ์ž…๋ ฅํ•˜๋Š”) ๊ฒƒ์ด ๊ฐ€์žฅ ํฐ ํŠน์ง•์ž…๋‹ˆ๋‹ค.

HiveQL์ด๋ผ๋Š” ์ฟผ๋ฆฌ ๋ฌธ๋ฒ•์„ ํ™œ์šฉํ•ด MapReduce๋ฅผ ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ž…๋‹ˆ๋‹ค.

Apache Pig#

MapReduce๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์ž…๋‹ˆ๋‹ค.

MapReduce#

MapReduce๋Š” ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ์ธ HDFS์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋ ˆ์ž„์›Œํฌ ๊ตฌํ˜„์ฒด์ž…๋‹ˆ๋‹ค.

YARN#

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

  • ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž

  • ๋…ธ๋“œ ๊ด€๋ฆฌ์ž

Apache Spark#

Apache Spark๋Š” ๋ฌด์ฒ™ ๊ด‘๋ฒ”์œ„ํ•œ ์ƒํ™ฉ์— ์‚ฌ์šฉํ•˜๊ธฐ ์ ํ•ฉํ•œ ๊ณ ์†, ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์—”์ง„์ž…๋‹ˆ๋‹ค. Spark๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๊ณ  Java, Python, Scala์™€ R ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ํฌํ•จํ•˜๋ฉฐ SQL ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ, ๋จธ์‹  ๋Ÿฌ๋‹๊ณผ ๊ทธ๋ž˜ํ”„ ์ฒ˜๋ฆฌ๋ฅผ ์ง€์›ํ•˜์—ฌ ์ฃผ์–ด์ง„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ•œ ๊ฐœ์—์„œ ์ด๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •๋ฆฌ#

๊ฒฐ๊ตญ Hadoop ์ƒํƒœ๊ณ„์˜ ๋ฐœ์ „์œผ๋กœ ๋น…๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š”๋ฐ ๋“œ๋Š” ๋น„์šฉ์ด ๋งŽ์ด ์ค„์–ด๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ๊ธฐ์—…์—์„œ Hadoop์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋น…๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถ•ํ•˜์˜€๊ณ  ์ด์ œ๋Š” ์Œ“์•„๋‘” data๋ฅผ ๋ถ„์„ํ•˜๊ณ  ํ™œ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ธฐํšŒ๋ฅผ ์ฐฝ์ถœํ•˜๋Š” ์‹œ๋Œ€์— ๋Œ์ž…ํ–ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.