hadoop eco system

  • image

    • https://www.oreilly.com/library/view/apache-hive-essentials/9781788995092/e846ea02-6894-45c9-983a-03875076bb5b.xhtml

Data Ingestion

  • Flume

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

    • ํ”Œ๋ฃธ์€ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์˜ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‘ก์œผ๋กœ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ ๋‹ค์ˆ˜์˜ ์›น ์„œ๋ฒ„์—์„œ ๋กœ๊ทธํŒŒ์ผ์„ ์ˆ˜์ง‘ํ•˜๊ณ  ํ•ด๋‹น ํŒŒ์ผ์˜ ๋กœ๊ทธ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด HDFS์— ์œ„์น˜ํ•œ ์ƒˆ๋กœ์šด ํ†ตํ•ฉ ํŒŒ์ผ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์€ ํ”Œ๋ฃธ์„ ์‚ฌ์šฉํ•˜๋Š” ์ „ํ˜•์ ์ธ ์˜ˆ์ž…๋‹ˆ๋‹ค.

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

  • Kafka

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

    • ๊ธฐ๋ณธ์ ์œผ๋กœ ๋„์ฐฉํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ํ์— ์ €์žฅํ•˜๊ณ , ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์†Œ๋น„ํ•˜๋Š” Pub/Sub ํŒจํ„ด์„ ๊ฐ€์ง€๋Š” ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค

    • ๋ฐœํ–‰(publish) - ๊ตฌ๋…(subscribe) ๋ชจ๋ธ๋กœ ๊ตฌ์„ฑ๋˜์–ด ๋ฉ”์‹œ์ง•, ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘, ๋กœ๊ทธ ์ˆ˜์ง‘, ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ ๋“ฑ ๋‹ค์–‘ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • Sqoop

    • ์ผ๋ฐ˜์ ์œผ๋กœ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฐ„์— HDFS์™€ ์•„ํŒŒ์น˜ Hive๋กœ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ด๋™ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.์ฆ‰, ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ(๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)์™€ ํ•˜๋‘ก ๊ฐ„์˜ ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ์ „์†ก.

    • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์™€ ์•„ํŒŒ์น˜ ํ•˜๋‘ก๊ฐ„์˜ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋“ค์„ ํšจ์œจ์ ์œผ๋กœ ๋ณ€ํ™˜ ํ•˜์—ฌ ์ฃผ๋Š” ๋ช…๋ น ์ค„ ์ธํ„ฐํŽ˜์ด์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜. ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„๋ชจ๋ธ๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.

    • RDBMS์™€ HDFS๊ฐ„ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์œ„ํ•œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. HDFS, RDBMS, DW, NoSQL ๋“ฑ ๋‹ค์–‘ํ•œ ์ €์žฅ์†Œ์— ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ƒ์šฉRDBMS๋„ ์ง€์›ํ•˜๊ณ , MySQL, PostgreSQL ์˜คํ”ˆ์†Œ์Šค RDBMS๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

    • ํด๋ผ์ด์–ธํŠธ๋Š” ์†Œ์Šค ๋ฐ ๋Œ€์ƒ ๋ฐ์ดํ„ฐ์Šคํ† ์–ด์— ์„ค์น˜๋˜๊ณ  ๋ฐ์ดํ„ฐ ์ด๋™์€ ํด๋ผ์ด์–ธํŠธ์™€ ๋Œ€์‘ํ•˜๋Š” Sqoop ์„œ๋ฒ„์— ์˜ํ•ด MapReduce ์ž‘์—…์œผ๋กœ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜๋ฉ๋‹ˆ๋‹ค.

  • Nifi

    • ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ ๊ฐ„ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ž๋™ํ™”ํ•˜๋„๋ก ์„ค๊ณ„๋œ ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ์ ํŠธ๋กœ ๋ฏธ๊ตญ ๊ตญ๊ฐ€์•ˆ๋ณด๊ตญ(NSA)์—์„œ ๊ฐœ๋ฐœํ•œ ์‹œ์Šคํ…œ ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ, ๊ด€๋ฆฌ, ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์ ์˜ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

    • ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜์„ ์„ค๊ณ„, ์ œ์–ด, ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•œ ํ’๋ถ€ํ•œ ์›น ๊ธฐ๋ฐ˜ GUI๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. NiFi๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์†Œ์Šค(์ถ”์ถœํ•จ์ˆ˜), ํ”„๋กœ์„ธ์„œ(๋ณ€ํ™˜ ํ•จ์ˆ˜), ์‹ฑํฌ(๋กœ๋“œ ํ•จ์ˆ˜)๋ผ๋Š” ์„ธ ๊ฐ€์ง€ ์œ ํ˜•์œผ๋กœ ๊ตฌ๋ถ„๋œ 250๊ฐœ ์ด์ƒ์˜ ํ‘œ์ค€ํ™”๋œ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ํ”„๋กœ์„ธ์„œ ๊ธฐ๋Šฅ์˜ ์˜ˆ๋กœ๋Š” ๋ฐ์ดํ„ฐ ํ–ฅ์ƒ, ๊ฒ€์ฆ, ํ•„ํ„ฐ๋ง, ๊ฒฐํ•ฉ, ๋ถ„ํ• , ์กฐ์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

    • ์™ธ๋ถ€ ์†Œ์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋ฉด NiFi ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๋‚ด๋ถ€์˜ FlowFile๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. FlowFile์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ด€๋ จ ๋ฉ”ํƒ€ ์ •๋ณด๊ฐ€ ์žˆ๋Š” ์›๋ณธ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ

    • ํ”„๋กœ์„ธ์„œ์˜ ์„ธ ๊ฐ€์ง€ ์ถœ๋ ฅ

      • ์‹คํŒจ : FlowFIle์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ, ์›๋ณธ FlowFIle์ด ์ถœ๋ ฅ์œผ๋กœ ๋ผ์šฐํŒ…๋จ

      • ์›๋ณธ : ๋“ค์–ด์˜ค๋Š” FlowFile์ด ์ฒ˜๋ฆฌ๋˜๋ฉด ์›๋ณธ FlowFile์ด ์ถœ๋ ฅ์œผ๋กœ ๋ผ์šฐํŒ…๋จ

      • ์„ฑ๊ณต : ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋œ FlowFile์€ ์ด ๊ด€๊ณ„๋กœ ๋ผ์šฐํŒ…๋จ

  • Fluentd

    • ๋กœ๊ทธ ์ˆ˜์ง‘ ๋ฏธ๋“ค์›จ์–ด๋กœ ์ €์žฅ ์žฅ์†Œ๊ฐ€ ๋ถ„์‚ฐ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ์™€ ๋กœ๊ทธ์˜ ์ˆ˜์ง‘์„ ๊ฐ„๋‹จํ•˜๊ณ  ์Šค๋งˆํŠธํ•˜๊ฒŒ ํ•ด๊ฒฐํ•ด ์คŒ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ๋กœ๋ถ€ํ„ฐ ๊ฐ€์น˜๋ฅผ ์ฐฝ์ถœํ•˜๊ธฐ ์œ„ํ•œ ๋น„์šฉ์„ ์ตœ์†Œํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

    • ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๋Š” Flume NG์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. Flume์˜ Source, Channel, Sink๊ฐ€ Input, Buffer, Output์œผ๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์žฅ์ ์€ ๊ฐ ํŒŒํŠธ ๋ณ„๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋งŒ๋“ค๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

Stream Processing

  • Flink

    • ์ŠคํŠธ๋ฆผ ๋ฐ ์ผ๊ด„ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ์˜คํ”ˆ ์†Œ์Šค ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

    • ํŠน์ง•

      • Dataflow ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ DataStream API์—์„œ ์ด๋ฒคํŠธ ์‹œ๊ฐ„ ๋ฐ ๋น„์ˆœ์ฐจ์  ์ฒ˜๋ฆฌ ์ง€์›

      • ๋งค์šฐ ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰๊ณผ ๋‚ฎ์€ ์ด๋ฒคํŠธ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ๋™์‹œ์— ์ง€์›ํ•˜๋Š” ๋Ÿฐํƒ€์ž„

      • ์ธ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์ฝ”์–ด ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ„์˜ ํšจ์œจ์ ์ด๊ณ  ๊ฐ•๋ ฅํ•œ ์ „ํ™˜์„ ์œ„ํ•œ ๋งž์ถคํ˜• ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

  • Beam

    • ์ผ๊ด„ ์ฒ˜๋ฆฌ ๋ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ํ†ตํ•ฉ ๋ชจ๋ธ

    • ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ์ž๋Š” ์˜คํ”ˆ์†Œ์Šค Beam SDK ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•ด ํŒŒ์ดํ”„๋ผ์ธ์„ ์ •์˜ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค.

    • ํŒŒ์ดํ”„๋ผ์ธ์€ Beam์ด ์ง€์›ํ•˜๋Š” ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ๋ฐฑ์—”๋“œ ์ค‘ ํ•˜๋‚˜์— ์˜ํ•ด ์‹คํ–‰๋˜๋ฉฐ ์•„ํŒŒ์น˜ Apex, ์•„ํŒŒ์น˜ Flink, ์•„ํŒŒ์น˜ Spark, ๊ตฌ๊ธ€ Cloud Dataflow๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • Storm

    • YARN์—์„œ๋„ Twitter์˜ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

    • ์…€ํ”„์„œ๋น„์Šค ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ ํŒจํ„ด์˜ ์˜ˆ์ด๋ฉฐ, ์ผ๊ด„ ์ฒ˜๋ฆฌ๋ฅผ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์œผ๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.

    • ๋น ๋ฅธ ์ฒ˜๋ฆฌ๊ฐ€ ์žฅ์ ์ž…๋‹ˆ๋‹ค.

  • Samza

    • Apache Samza๋Š” LinkedIn์—์„œ ๋งŒ๋“  ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋กœ Kafka ๋ฐ YARN์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

    • Samza๋Š” ์—ฌ๋Ÿฌ Kafka ์ฃผ์ œ์—์„œ ๋ฉ”ํŠธ๋ฆญ์„ ์ŠคํŠธ๋ฆฌ๋ฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Hadoop YARN์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • Disk ํ™œ์šฉ ๋Œ€๋Ÿ‰ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

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

  • MapReduce

    • MapReduce๋Š” ์—ฌ๋Ÿฌ ์ปดํ“จํ„ฐ์— ๊ฑธ์ณ ๋ถ„์‚ฐ๋œ ๋ฐฉ์‹์œผ๋กœ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋งž์ถค ์ œ์ž‘๋œ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋ณ‘๋ ฌ ๋ถ„์‚ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.

    • https://github.com/mjs1995/muse-data-engineer/blob/main/doc/Batch%20Processing/hadoop_map_yarn.md.

  • Spark

    • ์ŠคํŒŒํฌ(Spark)๋Š” ์ธ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์˜ ๋ฒ”์šฉ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ, ๋จธ์‹ ๋Ÿฌ๋‹, SQL ์งˆ์˜ ์ฒ˜๋ฆฌ, ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ๊ทธ๋ž˜ํ”„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฒ˜๋ฆฌ์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

    • ์ŠคํŒŒํฌ๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋Š” ์ž์ฒด ๋ถ„์‚ฐ ๋Ÿฐํƒ€์ž„ ์—”์ง„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‘ก๊ณผ ๋ฐ€์ ‘ํ•˜๊ฒŒ ํ†ตํ•ฉ๋˜์–ด ์žˆ์–ด์„œ YARN ๊ธฐ๋ฐ˜์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ , ํ•˜๋‘ก ํŒŒ์ผ ํฌ๋งท๊ณผ HDFS ๊ฐ™์€ ๊ธฐ๋ฐ˜ ์ €์žฅ์†Œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

    • https://github.com/mjs1995/muse-data-engineer/blob/main/doc/Batch%20Processing/spark_base.md

  • Impala

    • HDFS ๋˜๋Š” HBase ๊ธฐ๋ฐ˜์˜ ๋‚ฎ์€ ์ง€์—ฐ ์‹œ๊ฐ„์˜ ๋Œ€ํ™”ํ˜• SQL ์งˆ์˜

    • ์ž„ํŒ”๋ผ(Impala)๋Š” ํด๋ผ์šฐ๋ฐ๋ผ์—์„œ ๊ฐœ๋ฐœํ•œ ํ•˜๋‘ก ๊ธฐ๋ฐ˜์˜ ๋ถ„์‚ฐ ์ฟผ๋ฆฌ ์—”์ง„์ž…๋‹ˆ๋‹ค. ๋งต๋ฆฌ๋“€์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , C++๋กœ ๊ฐœ๋ฐœํ•œ ์ธ๋ฉ”๋ชจ๋ฆฌ ์—”์ง„์„ ์‚ฌ์šฉํ•ด ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

    • ์ž„ํŒ”๋ผ๋Š” ๋ฐ์ดํ„ฐ ์กฐํšŒ๋ฅผ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ HiveQL์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ˆ˜์ดˆ ๋‚ด์— SQL ์งˆ์˜ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ์‹ค์‹œ๊ฐ„ ์ฟผ๋ฆฌ, ๋ฉ”๋ชจ๋ฆฌ๊ธฐ๋ฐ˜, ์ปฌ๋Ÿผ๊ธฐ๋ฐ˜

  • Presto

    • ํ”„๋ ˆ์Šคํ† (Presto)๋Š” ํŽ˜์ด์Šค๋ถ์ด ๊ฐœ๋ฐœํ•œ ๋Œ€ํ™”ํ˜• ์งˆ์˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ถ„์‚ฐ ์ฟผ๋ฆฌ ์—”์ง„์ž…๋‹ˆ๋‹ค. ๋น…๋ฐ์ดํ„ฐ ์• ๋“œํ˜น ์ฟผ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌ ํ•˜๊ธฐ ์œ„ํ•œ ๋ถ„์‚ฐํ˜• ANSI SQL ์—”์ง„

    • ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ SQL๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ์งˆ์˜ ๊ฒฝ์šฐ ํ•˜์ด๋ธŒ ๋Œ€๋น„ 10๋ฐฐ ์ •๋„ ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

    • https://github.com/mjs1995/muse-data-engineer/blob/main/doc/Batch%20Processing/presto_base.md

  • Hive

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

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

    • ํ•˜์ด๋ธŒ์—์„œ ๋ ˆ์ฝ”๋“œ ๋‹จ์œ„ ๊ฐฑ์‹ (record-level update), ์‚ฝ์ž…, ์‚ญ์ œ๋ฅผ ํ•  ์ˆ˜ ์—†๊ธด ํ•˜์ง€๋งŒ ์ฟผ๋ฆฌ๋กœ ์ƒˆ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ  ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ํŒŒ์ผ๋กœ ๋‚จ๊ธธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

    • https://github.com/mjs1995/muse-data-engineer/blob/main/doc/Batch%20Processing/hive_base.md

  • Pig

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

    • MapReduce ๊ธฐ๋ฐ˜์˜ ๋‹จ์ˆœํ•œ script๋กœ ๋ฐ์ดํ„ฐ ์กฐํšŒ ๋ฐ ๋ถ„์„์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    • ๋งต๋ฆฌ๋“€์Šค API๋ฅผ ๋งค์šฐ ๋‹จ์ˆœํ™”ํ•œ ํ˜•ํƒœ์ด๊ณ  SQL๊ณผ ์œ ์‚ฌํ•œ ํ˜•ํƒœ๋กœ ์„ค๊ณ„๋์Šต๋‹ˆ๋‹ค. SQL๊ณผ ์œ ์‚ฌํ•˜๊ธฐ๋งŒ ํ•  ๋ฟ, ๊ธฐ์กด SQL ์ง€์‹์„ ํ™œ์šฉํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์šด ํŽธ์ž…๋‹ˆ๋‹ค.

    • ํ”ผ๊ทธ๋Š” ์ฟผ๋ฆฌ ์–ธ์–ด๊ฐ€ ์•„๋‹Œ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์–ธ์–ด(data flow language)๋กœ ํ”ผ๊ทธ์—์„œ๋Š” ๋‹ค๋ฅธ ๊ด€๊ณ„๋กœ๋ถ€ํ„ฐ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ์ผ๋ จ์˜ ์„ ์–ธ๋ฌธ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ์ƒˆ๋กœ์šด ๊ด€๊ณ„๋ณ„๋กœ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

Scheduler

  • AIrflow

    • ์—์–ดํ”Œ๋กœ์šฐ๋Š” ์—์–ด๋น„์•ค๋น„์—์„œ ๊ฐœ๋ฐœํ•œ ๋ฐ์ดํ„ฐ ํ๋ฆ„์˜ ์‹œ๊ฐํ™”, ์Šค์ผ€์ฅด๋ง, ๋ชจ๋‹ˆํ„ฐ๋ง์ด ๊ฐ€๋Šฅํ•œ ์›Œํฌํ”Œ๋กœ์šฐ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ํ•˜์ด๋ธŒ, ํ”„๋ ˆ์Šคํ† , DBMS ์—”์ง„๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • Airflow ์Šค์ผ€์ค„๋Ÿฌ๋Š” ๋ชจ๋“  ์ž‘์—…๊ณผ ๋ชจ๋“  DAG๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ข…์†์„ฑ์ด ์ถฉ์กฑ๋œ ์ž‘์—… ์ธ์Šคํ„ด์Šค๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

    • Airflow๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์ „์ฒด ๋“ฑ๋ก๋œ ๋ฐฐ์น˜ ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ํ•œ๋ˆˆ์— ์‚ดํŽด ๋ณด๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐ๊ฐ์˜ ํ”„๋กœ๊ทธ๋žจ์˜ ๋‹จ๊ณ„๋ณ„ ํ˜„ํ™ฉ๊นŒ์ง€ ํ™•์ธ ํ›„ ์‰ฝ๊ฒŒ ๋ฐ์ดํ„ฐ ์žฌ์ƒ์„ฑ๊ณผ ๊ฐ™์€ ์กฐ์น˜๋ฅผ ์ทจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Slack๊ณผ์˜ ์—ฐ๋™์„ ํ†ตํ•ด ์‹คํŒจํ•  ๊ฒฝ์šฐ ๋ฐ”๋กœ ํŒŒ์•…ํ•ด ๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Azkaban

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

    • Azkaban์€ LinkedIn์—์„œ Hadoop ์ž‘์—…์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ๋ฐฐ์น˜ ์›Œํฌํ”Œ๋กœ ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ์ž…๋‹ˆ๋‹ค.

    • ์‹œ๊ฐํ™”๋œ ์ ˆ์ฐจ, ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๊ด€๋ฆฌ, ์ž‘์—… ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์•Œ๋žŒ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๋Š” ์›Œํฌํ”Œ๋กœ์šฐ ๊ด€๋ฆฌ ๋„๊ตฌ ์ž…๋‹ˆ๋‹ค.

  • Oozie

    • ์ข…์†๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ์—ฌ๋Ÿฌ ์žก์„ ํ๋ฆ„์— ๋”ฐ๋ผ ์‹คํ–‰ํ•ด์ฃผ๋Š” ์‹œ์Šคํ…œ

    • ์šฐ์ง€๋Š” ํ•˜๋‘ก ์ž‘์—…์„ ๊ด€๋ฆฌํ•˜๋Š” ์›Œํฌํ”Œ๋กœ์šฐ ๋ฐ ์ฝ”๋””๋„ค์ดํ„ฐ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋กœ UI ์ œ๊ณต ํ•˜๊ณ , ๋งต๋ฆฌ๋“€์Šค, hive, pig ์ž‘์—… ๊ฐ™์€ ํŠนํ™”๋œ ์•ก์…˜์œผ๋กœ ๊ตฌ์„ฑ๋œ XML ํฌ๋งท์˜ ์›Œํฌํ”Œ๋กœ์šฐ๋กœ ์ž‘์—…์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

    • ์›Œํฌํ”Œ๋กœ ์—”์ง„์€ ๋‹ค๋ฅธ ํ˜•ํƒœ์˜ ํ•˜๋‘ก์žก(๋งต๋ฆฌ๋“€์Šค, ํ”ผ๊ทธ, ํ•˜์ด๋ธŒ ๋“ฑ)์„ ๊ตฌ์„ฑํ•˜๋Š” ์ž‘์—… ํ๋ฆ„์„ ์ €์žฅํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ฉฐ, ์ฝ”๋””๋„ค์ดํ„ฐ ์—”์ง„(coordinator engine)์€ ๋ฏธ๋ฆฌ ์ •์˜๋œ ์ผ์ •๊ณผ ๋ฐ์ดํ„ฐ ๊ฐ€์šฉ์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์›Œํฌํ”Œ๋กœ ์žก์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • ์šฐ์ง€๋Š” ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ๊ณ  ํ•˜๋‘ก ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์— ์ˆ˜์ฒœ ๊ฐœ์˜ ์›Œํฌํ”Œ๋กœ(์ˆ˜์‹ญ ๊ฐœ์˜ ์—ฐ์†์ ์ธ ์žก์œผ๋กœ ๊ตฌ์„ฑ๋œ)๋ฅผ ์‹œ์˜ ์ ์ ˆํ•˜๊ฒŒ ์‹คํ–‰ํ•˜๋„๋ก ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

    • ์šฐ์ง€๋Š” ์‹คํŒจํ•œ์›Œํฌํ”Œ๋กœ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•  ๋•Œ ์„ฑ๊ณตํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค์‹œ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์ ์ด๋ฉฐ ๋”ฐ๋ผ์„œ ์‹œ๊ฐ„ ๋‚ญ๋น„๋„ ์—†์Šต๋‹ˆ๋‹ค.

    • ์šฐ์ง€์˜ ์›Œํฌํ”Œ๋กœ๋Š” ์•ก์…˜ ๋…ธ๋“œ(action node)์™€ ์ œ์–ดํ๋ฆ„๋…ธ๋“œ(control-flow node)๋กœ ์ด๋ฃจ์–ด์ง„ DAG

      • ์•ก์…˜ ๋…ธ๋“œ๋Š” HDFS์— ์ €์žฅ๋œ ํŒŒ์ผ์„ ์˜ฎ๊ธฐ๊ฑฐ๋‚˜ ๋งต๋ฆฌ๋“€์Šค, ์ŠคํŠธ๋ฆฌ๋ฐ, ํ”ผ๊ทธ, ํ•˜์ด๋ธŒ ์žก์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ์Šค์ฟฑ ์ž„ํฌํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋‚˜ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๋“ฑ ์›Œํฌํ”Œ๋กœ์˜ ํƒœ์Šคํฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      • ์ œ์–ดํ๋ฆ„ ๋…ธ๋“œ๋Š” ์กฐ๊ฑด๋ถ€ ๋กœ์ง(๋ถ„๊ธฐ๋ฌธ)๊ณผ ๊ฐ™์€ ๊ตฌ๋ฌธ์„ ํ†ตํ•ด ์•ก์…˜ ์‚ฌ์ด์˜ ์›Œํฌํ”Œ๋กœ ์‹คํ–‰์„ ๊ด€์žฅํ•ฉ๋‹ˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ

  • YARN

    • ์–€(YARN)์€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํด๋Ÿฌ์Šคํ„ฐ ์ž์›(CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ๋“ฑ)๊ณผ ์Šค์ผ€์ฅด๋ง์„ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ž์›์„ ์š”์ฒญํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

    • ๋งต๋ฆฌ๋“€์Šค, ์ŠคํŒŒํฌ ๋“ฑ๊ณผ ๊ฐ™์€ ๋ถ„์‚ฐ ์ปดํ“จํŒ… ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๊ณ„์‚ฐ ๊ณ„์ธต(YARN)๊ณผ ํด๋Ÿฌ์Šคํ„ฐ ์ €์žฅ ๊ณ„์ธต(HDFS์™€ HBase) ์œ„์—์„œ YARN ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • Mesos

    • ๋ฉ”์†Œ์Šค(Mesos)๋Š” ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ์ŠคํŠธ๋Ÿญ์ฒ˜ ๋ฐ ์ปดํ“จํŒ… ์—”์ง„์˜ ๋‹ค์–‘ํ•œ ์ž์›(CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ)์„ ํ†ตํ•ฉ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ์ž์› ๊ด€๋ฆฌ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

    • ๋ฉ”์†Œ์Šค๋Š” ๋ฒ”์šฉ ํด๋Ÿฌ์Šคํ„ฐ ์ž์› ๊ด€๋ฆฌ์ž๋กœ ์กฐ์ง์˜ ์ •์ฑ…์— ๋”ฐ๋ผ ๋‹ค์ˆ˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ž์›์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ๋ฉ”์†Œ์Šค๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ™˜๊ฒฝ์—์„œ ๋™์ ์œผ๋กœ ์ž์›์„ ํ• ๋‹นํ•˜๊ณ  ๊ฒฉ๋ฆฌํ•ด์ฃผ๋Š” ๋งค์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ์ž‘์—… ์‹คํ–‰์„ ์ตœ์ ํ™”์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1๋งŒ๋Œ€ ์ด์ƒ์˜ ๋…ธ๋“œ์—๋„ ๋Œ€์‘์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์›น ๊ธฐ๋ฐ˜์˜ UI, ์ž๋ฐ”, C++, ํŒŒ์ด์ฌ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‘ก, ์ŠคํŒŒํฌ(Spark), ์Šคํ†ฐ(Storm), ์—˜๋ผ์Šคํ‹ฑ ์„œ์น˜(Elastic Search), ์นด์‚ฐ๋“œ๋ผ(Cassandra), ์  ํ‚จ์Šค(Jenkins) ๋“ฑ ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฉ”์†Œ์Šค์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ๊ธฐ๋ณธ ์ •์ฑ…์ธ ๋ฏธ์„ธ ๋‹จ์œ„(fine-grained) ๋ชจ๋“œ์—์„œ ๊ฐ ์ŠคํŒŒํฌ ํƒœ์Šคํฌ๋Š” ๋ฉ”์†Œ์Šค ํƒœ์Šคํฌ๋กœ ์‹คํ–‰๋˜๋ฉฐ, ๋ฏธ์„ธ ๋‹จ์œ„ ๋ชจ๋“œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ž์›์„ ๋งค์šฐ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜์ง€๋งŒ ํ”„๋กœ์„ธ์Šค ๊ตฌ๋™ ์‹œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ํฐ ๋‹จ์œ„(coarse-grained)๋ชจ๋“œ์—์„œ ์ต์Šคํํ„ฐ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๋‚ด๋ถ€์—์„œ ํ•ด๋‹น ํƒœ์Šคํฌ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ŠคํŒŒํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์ต์Šคํํ„ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ž์›์„ ๊ณ„์† ์œ ์ง€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ €์žฅ

  • HDFS

    • ํ•˜๋‘ก ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ(HDFS, Hadoop distributed file system)์€ ํ•˜๋‘ก ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์œ„ํ•ด ์ž๋ฐ” ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ๋ถ„์‚ฐ ํ™•์žฅ ํŒŒ์ผ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

    • HDFS๋Š” ๋ฒ”์šฉ ์ปดํ“จํ„ฐ๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ๋Œ€์šฉ๋Ÿ‰์˜ ํŒŒ์ผ์„ ๋ธ”๋ก๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•˜์—ฌ ์—ฌ๋Ÿฌ์„œ๋ฒ„์— ๋ณต์ œํ•˜์—ฌ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

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

  • S3

    • S3๋Š” ์•„๋งˆ์กด์—์„œ ์ œ๊ณตํ•˜๋Š” ์ธํ„ฐ๋„ท์šฉ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค.

    • ์–ด๋А ๊ณณ์—์„œ๋“ ์ง€ ์šฉ๋Ÿ‰์— ๊ด€๊ณ„์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ์ˆœํ•œ ์›น ์„œ๋น„์Šค ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ–์ถ˜ ๊ฐ์ฒด ์Šคํ† ๋ฆฌ์ง€

    • ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ ๊ธฐ๋ณธ ์Šคํ† ๋ฆฌ์ง€, ๋ถ„์„์„ ์œ„ํ•œ ๋ฒŒํฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋˜๋Š” '๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ', ๋ฐฑ์—…, ๋ณต๊ตฌ, ์žฌํ•ด ๋ณต๊ตฌ์˜ ๋Œ€์ƒ, ์„œ๋ฒ„ ์—†๋Š” ์ปดํ“จํŒ…์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • HBase

    • HBase๋Š” HDFS ๊ธฐ๋ฐ˜์˜ ์นผ๋Ÿผ ๊ธฐ๋ฐ˜ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(distributed column-oriented database)์ž…๋‹ˆ๋‹ค.

    • ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ์…‹์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฝ๊ณ  ์“ฐ๋Š” ๋žœ๋ค ์•ก์„ธ์Šค๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜๋‘ก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜. ์ž„์˜์˜ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ์ปฌ๋Ÿผ ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค.

    • HBase์™€ RDBMS์˜ ๋น„๊ต

      • HBase

        • ๋ถ„์‚ฐ ๋ฐ ์ปฌ๋Ÿผ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ์ €์žฅ ์‹œ์Šคํ…œ, ํ•˜๋‘ก์ด HDFS์˜ ๋ฌด์ž‘์œ„ ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์„ ๋ฐœ๊ฒฌํ–ˆ์œผ๋ฉฐ ๋ชจ๋“  ๋ฐฉํ–ฅ์˜ ํ™•์žฅ์„ฑ์— ์ค‘์ ์„ ๋‘์–ด ๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

        • ๋กœ์šฐ ๊ฐœ์ˆ˜๊ฐ€ ๊ธธ๊ณ (์ˆ˜์–ต), ์ปฌ๋Ÿผ ๊ฐœ์ˆ˜๊ฐ€ ๋„“์œผ๋ฉฐ(์ˆ˜๋ฐฑ๋งŒ), ์ˆ˜ํ‰์ ์œผ๋กœ ๋ถ„ํ•  ๊ฐ€๋Šฅํ•ด์„œ ์ˆ˜์ฒœ ๋Œ€์˜ ์ƒ์šฉ ๋…ธ๋“œ์— ์ž๋™์œผ๋กœ ๋ณต์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

        • ํ…Œ์ด๋ธ” ์Šคํ‚ค๋งˆ๋Š” ๋ฌผ๋ฆฌ์  ์ €์žฅ์†Œ๋ฅผ ๋ฐ˜์˜ํ•ด์„œ ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ง๋ ฌํ™”, ์ €์žฅ, ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ์‹œ์Šคํ…œ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

      • RDBMS

        • ์ „ํ˜•์ ์ธ RDBMS๋Š” ๊ณ ์ •๋œ ์Šคํ‚ค๋งˆ, ACID ํŠน์„ฑ์˜ ๋กœ์šฐ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋ณต์žกํ•œ SQL ์ฟผ๋ฆฌ ์—”์ง„, ๊ฐ•ํ•œ ์ผ๊ด€์„ฑ, ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ, ๋ฌผ๋ฆฌ์ธต์˜ ์ถ”์ƒํ™”, SQL ์–ธ์–ด๋กœ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฅผ ํ•˜๋Š” ๊ฒƒ์— ์ฃผ์•ˆ์ ์„ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ 2์ฐจ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ณ , ๋ณต์žกํ•œ ๋‚ด๋ถ€,์™ธ๋ถ€ ์กฐ์ธ์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”, ๋กœ์šฐ ์ปฌ๋Ÿผ์„ ์นด์šดํŠธ, ํ•ฉ๊ณ„, ์ •๋ ฌ, ๊ทธ๋ฃน, ํŽ˜์ด์ง• ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

        • ๋ฐ์ดํ„ฐ์…‹ ํฌ๊ธฐ๋‚˜ ์ฝ๊ธฐ/์“ฐ๊ธฐ ๋ณ‘ํ–‰์„ฑ์„ ๊ณ ๋ คํ•ด์„œ ๊ทœ๋ชจ๋ฅผ ๋Š˜๋ ค์•ผ ํ•  ๋•Œ RDBMS์˜ ํŽธ๋ฆฌํ•จ์€ ๋ง‰๋Œ€ํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๋กœ ์ด์–ด์ง€๋ฉฐ ํƒœ์ƒ์ ์œผ๋กœ ๋ถ„์‚ฐ์€ ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. RDBMS๋ฅผ ํ™•์žฅํ•˜๋ฉด ๋Œ€๊ฐœ ์ฝ”๋“œ์˜ ๊ทœ์น™์„ ์–ด๊ธฐ๊ณ , ACID ์ œ์•ฝ์„ ๋А์Šจํ•˜๊ฒŒ ํ•˜๊ณ , ์ „ํ†ต์ ์ธ DBA์˜ ์ง€ํ˜œ๋ฅผ ๋ฌด์šฉ์ง€๋ฌผ๋กœ ๋งŒ๋“ค์–ด ์ฒ˜์Œ์— ๋„ˆ๋ฌด๋‚˜ ํŽธ๋ฆฌํ–ˆ๋˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ด์ƒ์ ์ธ ์†์„ฑ ๋Œ€๋ถ€๋ถ„์„ ์žƒ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์ง๋ ฌํ™”

  • Avro

    • ์•„ํŒŒ์น˜ ์—์ด๋ธŒ๋กœ๋Š” ํŠน์ • ์–ธ์–ด์— ์ข…์†๋˜์ง€ ์•Š๋Š” ์–ธ์–ด ์ค‘๋ฆฝ์  ๋ฐ์ดํ„ฐ ์ง๋ ฌํ™” ์‹œ์Šคํ…œ, ํ•˜๋‘ก Writable (์ง๋ ฌํ™” ๋ฐฉ์‹)์˜ ์ฃผ์š” ๋‹จ์ ์ธ ์–ธ์–ด ์ด์‹์„ฑ(language portability)์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

    • ์—์ด๋ธŒ๋กœ(Avro)๋Š” ์•„ํŒŒ์น˜์˜ ํ•˜๋‘ก ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐœ๋ฐœ๋œ ์›๊ฒฉ ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ(RPC) ๋ฐ ๋ฐ์ดํ„ฐ ์ง๋ ฌํ™” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ž๋ฃŒํ˜•๊ณผ ํ”„๋กœํ† ์ฝœ ์ •์˜๋ฅผ ์œ„ํ•ด JSON์„ ์‚ฌ์šฉํ•˜๋ฉฐ ์ฝคํŒฉํŠธ ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ๋งท์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ง๋ ฌํ™”ํ•ฉ๋‹ˆ๋‹ค.

    • ์Šคํ‚ค๋งˆ๊ฐ€ ํŒŒ์ผ ํ—ค๋”์™€ ํ•จ๊ป˜ ์ €์žฅ๋œ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๋ฉด SequenceFile๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ˜•์‹์€ ํ‘œํ˜„์„ฑ์ด ์žˆ๊ณ  ์ƒํ˜ธ ์šด์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    • ์ด์ง„ ํ‘œํ˜„์—๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์žˆ์œผ๋ฉฐ, ์ตœ์ ํ™”๊ฐ€ ์ตœ๊ณ ๋กœ ์ž˜๋œ ๊ฒƒ์€ ์•„๋‹ˆ๋ฉฐ ์ „๋ฐ˜์ ์œผ๋กœ ๋ฒ”์šฉ ์›Œํฌ๋กœ๋“œ์— ์ ํ•ฉํ•จ

  • Thrift

    • ์“ฐ๋ฆฌํ”„ํŠธ๋Š” ํŽ˜์ด์Šค๋ถ์—์„œ ๊ฐœ๋ฐœํ•œ ์„œ๋กœ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๊ฐœ๋ฐœ๋œ ๋ชจ๋“ˆ์˜ ํ†ตํ•ฉ์„ ์ง€์›ํ•˜๋Š” RPC ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ํ•˜์ด๋ธŒ์™€ ํ†ตํ•ฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์›๊ฒฉ ํ”„๋กœ์„ธ์Šค์—์„œ ์“ฐ๋ฆฌํ”„ํŠธ๋ฅผ ํ†ตํ•ด ํ•˜์ด๋ธŒ์— ๋ช…๋ น์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ์„œ๋น„์Šค ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์„ ์–ธํ•˜๋ฉด, RPC ํ˜•ํƒœ์˜ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด ์ค๋‹ˆ๋‹ค.

    • ์ž๋ฐ”, C++, C#, Perl, PHP, ํŒŒ์ด์ฌ, ๋ธํŒŒ์ด, Erlang, Go, Node.js ๋“ฑ๊ณผ ๊ฐ™์ด ๋‹ค์–‘ํ•œ ์–ธ์–ด๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค

  • Protocol Buffers

    • ํ”„๋กœํ† ์ฝœ ๋ฒ„ํผ(Protocol Buffers)๋Š” ๊ตฌ๊ธ€์—์„œ ๊ฐœ๋ฐœํ•œ RPC ํ”„๋ ˆ์ž„์›Œํฌ ์ž…๋‹ˆ๋‹ค.

    • ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง๋ ฌํ™”ํ•˜๋Š” ๋ฐฉ์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. C++,C#, Go, Java, Python, Object C, Javascript, Ruby ๋“ฑ ๋‹ค์–‘ํ•œ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋ฉฐ ํŠนํžˆ ์ง๋ ฌํ™” ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ์ง๋ ฌํ™”๋œ ํŒŒ์ผ์˜ ํฌ๊ธฐ๋„ ์ž‘์•„์„œ Apache Avro ํŒŒ์ผ ํฌ๋งท๊ณผ ํ•จ๊ป˜ ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ณด์•ˆ

  • Apache Ranger

    • ๋ ˆ์ธ์ €๋Š” ํ•˜๋‘ก ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ๋ณด์•ˆ ์ •์ฑ…์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HDFS์˜ ACL, Hive ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ ‘๊ทผ๊ถŒํ•œ ๋“ฑ์˜ ๋ณด์•ˆ ์ •์ฑ…๊ณผ ๊ฐ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ธฐ๋ก(Audit)์„ ๋ณด๊ด€ํ•ฉ๋‹ˆ๋‹ค.

    • ์„ธ๋ถ„ํ™”๋œ ๊ถŒํ•œ ๋ถ€์—ฌ์™€ ์ ‘๊ทผ ์ œ์–ด๋ฅผ ์œ„ํ•ด ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์˜คํ”ˆ์†Œ์Šค ์†”๋ฃจ์…˜

    • Atlas ์นดํƒˆ๋กœ๊ทธ์™€ ๋ชจ๋“  Hadoop ์—์ฝ”์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๋ณด์•ˆ ์ •์ฑ… ๊ตฌํ˜„์„ ์œ„ํ•œ ์ค‘์•™ ์ง‘์ค‘์‹ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    • ๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž, ๊ทธ๋ฃน, ์ ‘๊ทผ ์œ ํ˜•, ์‚ฌ์šฉ์ž ์ •์˜ ํƒœ๊ทธ, IP ์ฃผ์†Œ์™€ ๊ฐ™์€ ๋™์  ํƒœ๊ทธ ๋“ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ RBAC ๋ฐ ABAC ์ •์ฑ…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

    • ๋ฐ์ดํ„ฐ ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•ด ์ •์˜๋œ ์†์„ฑ์— ๋”ฐ๋ผ ์•ก์„ธ์Šค๋ฅผ ์ ์šฉํ•˜๋Š” ์ค‘์•™ ์ง‘์ค‘์‹ ๋ณด์•ˆ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ. ๋ฐ์ดํ„ฐ ๋งˆ์Šคํฌ ๋˜๋Š” ํ–‰ ํ•„ํ„ฐ๋ง์— ๋Œ€ํ•ด ์—ด ์ˆ˜์ค€ ๋˜๋Š” ํ–‰ ์ˆ˜์ค€์˜ ์†์„ฑ ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๊ฑฐ๋ฒ„๋„Œ์Šค

  • ๊ธฐ์—…์˜ ์—ฌ๊ธฐ์ €๊ธฐ ์‚ฐ์žฌํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ™์€ ์ €์žฅ์†Œ์— ๊ด€๋ฆฌ, ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ๊ทœ์น™์— ๋งž๊ฒŒ ํ‘œ์ค€ํ™”ํ•˜๋Š” ์ „์‚ฌ ์ฐจ์›์˜ ๋น…๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ์ฒด๊ณ„

  • Atlas

    • ์•„ํ‹€๋ผ์Šค๋Š” ๋ฐ์ดํ„ฐ ๊ฑฐ๋ฒ„๋„Œ์Šค๋กœ ์กฐ์ง์ด ๋ณด์•ˆ/์ปดํ”Œ๋ผ์ด์–ธ์Šค ์š”๊ตฌ์‚ฌํ•ญ์„ ์ค€์ˆ˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์ž์›์— ๋Œ€ํ•œ ํƒœ๊น…, ๋‹ค์šด์ŠคํŠธ๋ฆผ ๋ฐ์ดํ„ฐ์…‹์— ๋Œ€ํ•œ ํƒœ๊ทธ ์ „ํŒŒ, ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์— ๋Œ€ํ•œ ๋ณด์•ˆ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์•Œ๋ฆผ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ , Hive, HBase, Kafka์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ์•Œ๋ฆฌ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    • ๋ฐ์ดํ„ฐ ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ํƒœ๊ทธ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ์นดํƒˆ๋กœ๊ทธ

    • Atlas๋Š” ํ…Œ์ด๋ธ” ์ˆ˜์ค€ ๊ณ„๋ณด ์™ธ์—๋„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์œ ํ˜•์˜ ์ข…์†์„ฑ์„ ์ถ”์ ํ•ด ์—ด ์ˆ˜์ค€ ๊ณ„๋ณด๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค

      • ๋‹จ์ผ ์ข…์†์„ฑ : ์ถœ๋ ฅ ์—ด์˜ ๊ฐ’์ด ์ž…๋ ฅ ์—ด๊ณผ ๋™์ผํ•จ

      • ํ‘œํ˜„ ์ข…์†์„ฑ : ์ถœ๋ ฅ ์—ด์€ ๋Ÿฐํƒ€์ž„ ์‹œ ์ž…๋ ฅ ์—ด์˜ ์ผ๋ถ€ ํ‘œํ˜„์‹(Hive SQL ํ‘œํ˜„์‹)์— ์˜ํ•ด ๋ณ€ํ™˜๋จ

      • ์Šคํฌ๋ฆฝํŠธ ์ข…์†์„ฑ : ์ถœ๋ ฅ ์—ด์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ œ๊ณตํ•œ ์Šคํฌ๋ฆฝํŠธ์— ์˜ํ•ด ๋ณ€ํ™˜๋จ

  • Amundsen

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

    • ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ

    • ๋ฐ์ดํ„ฐ ์„ธํŠธ์™€ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์ธ๋ฑ์‹ฑํ•˜์—ฌ ์ž…๋ ฅ ๊ตฌ๋ฌธ ๋ถ„์„์—์„œ๋Š” ์ •ํ™•ํ•œ ๋งค์นญ ๊ฐœ์„ ์„ ์œ„ํ•ด ์ž๋™ ์™„์„ฑ(type-ahead) ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ ๋ฌธ์ž์—ด์€ ์™€์ผ๋“œ์นด๋“œ์™€ ํ‚ค์›Œ๋“œ, ๋ฒ”์ฃผ, ๋น„์ฆˆ๋‹ˆ์Šค ์–ดํœ˜ ๋“ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

    • ์•„๋ฌธ์„ผ์€ ์–‡์€ Elasticsearch ํ”„๋ก์‹œ ๊ณ„์ธต์„ ๊ตฌํ˜„ํ•ด ์นดํƒˆ๋กœ๊ทธ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•จ์œผ๋กœ์จ ํผ์ง€ ๊ฒ€์ƒ‰์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

    • ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” Neo4j์—์„œ ์œ ์ง€๋จ. ์ธ๋ฑ์Šค ๊ตฌ์ถ•์„ ์œ„ํ•ด์„œ๋Š” ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Data Visualization

  • Zeppelin

    • Zeppelin์€ ํ•œ๊ตญ์˜ NFLab์ด๋ผ๋Š” ํšŒ์‚ฌ์—์„œ ๊ฐœ๋ฐœํ•˜์—ฌ Apache top level ํ”„๋กœ์ ํŠธ๋กœ ์ตœ๊ทผ ์Šน์ธ ๋ฐ›์€ ์˜คํ”ˆ์†Œ์Šค ์†”๋ฃจ์…˜์œผ๋กœ, Notebook ์ด๋ผ๊ณ  ํ•˜๋Š” ์›น ๊ธฐ๋ฐ˜ Workspace์— Spark, Tajo, Hive, ElasticSearch ๋“ฑ ๋‹ค์–‘ํ•œ ์†”๋ฃจ์…˜์˜ API, Query ๋“ฑ์„ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์›น์— ๋‚˜ํƒ€๋‚ด๋Š” ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

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

  • Hue

    • ํ•˜๋‘ก ํœด(Hue, Hadoop User Experience)๋Š” ํ•˜๋‘ก๊ณผ ํ•˜๋‘ก ์—์ฝ”์‹œ์Šคํ…œ์˜ ์ง€์›์„ ์œ„ํ•œ ์›น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ์ž…๋‹ˆ๋‹ค. Hive ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ , ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์žก์˜ ์Šค์ผ€์ค„๋ง์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์žก, HDFS, ๋“ฑ ํ•˜๋‘ก์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

๋ถ„์‚ฐ ์„œ๋ฒ„ ๊ด€๋ฆฌ

  • ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ธฐ์ˆ ์ด ์ด์šฉ๋  ๋•Œ ํ•˜๋‚˜์˜ ์„œ๋ฒ„์—์„œ ๋ชจ๋“  ์ž‘์—…์ด ์ง„ํ–‰๋˜๋ฉด ์ด ์„œ๋ฒ„๊ฐ€ ๋‹จ์ผ์‹คํŒจ์ง€์ (SPOF)๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•œ ๋ฆฌ์Šคํฌ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋ถ„์‚ฐ ์„œ๋ฒ„ ๊ด€๋ฆฌ ๊ธฐ์ˆ ์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.

  • Zookeeper

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

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

    • ํŠน์ง•

      • ๋‹จ์ˆœํ•˜๋‹ค : ์ฃผํ‚คํผ๋Š” ๋ช‡ ๊ฐœ์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์„ ํ•ต์‹ฌ์œผ๋กœ ์ œ๊ณตํ•˜๊ณ  ๋ช…๋ น ๋ฐ ํ†ต์ง€์™€ ๊ฐ™์€ ์ถ”์ƒํ™” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฐ„์†Œํ™”๋œ ํŒŒ์ผ ์‹œ์Šคํ…œ

      • ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํ’๋ถ€ํ•จ : ์ฃผํ‚คํผ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ(primitive)๋Š” ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ํ”„๋กœํ† ์ฝœ ์ฝ”๋””๋„ค์ด์…˜์— ์‚ฌ์šฉ๋˜๋Š” ํ’๋ถ€ํ•œ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Œ

      • ๊ณ ๊ฐ€์šฉ์„ฑ์„ ์ œ๊ณตํ•จ : ์ฃผํ‚คํผ๋Š” ๋‹ค์ˆ˜์˜ ๋จธ์‹ ์—์„œ ์‹คํ–‰๋˜๋ฉฐ ๊ณ ๊ฐ€์šฉ์„ฑ์„ ๋ณด์žฅํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ฃผํ‚คํผ์˜ ์ด๋Ÿฌํ•œ ํŠน์„ฑ์„ ์ „์ ์œผ๋กœ ์‹ ๋ขฐํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ, ์ฃผํ‚คํผ๋Š” ์‹œ์Šคํ…œ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ์ผ ์žฅ์• ์ (single points of failure - SPOF)๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๋ฏ€๋กœ ์‹ ๋ขฐ์„ฑ ๋†’์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Œ

      • ๋А์Šจํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋œ ์ƒํ˜ธ์ž‘์šฉ์— ๋„์›€์„ ์คŒ : ์ฃผํ‚คํผ๊ฐ€ ๋™์ž‘ํ•  ๋•Œ ์ฐธ์—ฌ์ž๋“ค์€ ์„œ๋กœ์— ๋Œ€ํ•ด ๋ชฐ๋ผ๋„ ์ƒ๊ด€์—†์Œ

      • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‹ค : ์ฃผํ‚คํผ๋Š” ์ผ๋ฐ˜์ ์ธ ์ฝ”๋””๋„ค์ด์…˜ ํŒจํ„ด์— ๋Œ€ํ•œ ๊ตฌํ˜„์ฒด์™€ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ๊ณต์œ  ์ €์žฅ์†Œ์— ์˜คํ”ˆ ์†Œ์Šค๋กœ ์ œ๊ณตํ•จ

    • ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ์„œ๋ฒ„ ๊ฐ„์˜ ์ƒํ˜ธ ์กฐ์ •์ด ํ•„์š”ํ•œ ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์‹œ์Šคํ…œ์œผ๋กœ, ํฌ๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋„ค ๊ฐ€์ง€ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      • ์ฒซ์งธ, ํ•˜๋‚˜์˜ ์„œ๋ฒ„์—๋งŒ ์„œ๋น„์Šค๊ฐ€ ์ง‘์ค‘๋˜์ง€ ์•Š๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์•Œ๋งž๊ฒŒ ๋ถ„์‚ฐํ•ด ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ๋‘˜์งธ, ํ•˜๋‚˜์˜ ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค๋ฅธ ์„œ๋ฒ„์™€๋„ ๋™๊ธฐํ™”ํ•ด์„œ ๋ฐ์ดํ„ฐ์˜ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์…‹์งธ, ์šด์˜(active) ์„œ๋ฒ„์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์—†์„ ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ๋Œ€๊ธฐ ์ค‘์ธ ์„œ๋ฒ„๋ฅผ ์šด์˜ ์„œ๋ฒ„๋กœ ๋ฐ”๊ฟ”์„œ ์„œ๋น„์Šค๊ฐ€ ์ค‘์ง€ ์—†์ด ์ œ๊ณต๋˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋„ท์งธ, ๋ถ„์‚ฐ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๋Š” ์„œ๋ฒ„์˜ ํ™˜๊ฒฝ์„ค์ •์„ ํ†ตํ•ฉ์ ์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • Ambari

    • ์ „์ฒด ์ˆ˜๋ช… ์ฃผ๊ธฐ์— ๊ฑธ์ณ ํ•˜๋‘ก ํด๋Ÿฌ์Šคํ„ฐ์˜ ์„ค์น˜ ๋ฐ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์ „์šฉ ๋„๊ตฌ

    • ๊ฐ„๋‹จํ•œ ์›น ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ํ•˜๋‘ก ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž์™€ ์šด์˜์ž์—๊ฒŒ ๊ถŒ์žฅ๋˜๋Š” ๋ฐฉ์‹

Reference

  • https://www.oreilly.com/library/view/hadoop-the-definitive/9780596521974/

  • https://www.oreilly.com/library/view/programming-hive/9781449326944/

Last updated