hadoop eco system

https://www.oreilly.com/library/view/apache-hive-essentials/9781788995092/e846ea02-6894-45c9-983a-03875076bb5b.xhtml
Data Ingestion
ํ๋ฃธ์ ๋ง์ ์์ ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์์ง, ์ทจํฉ, ์ด๋ํ๊ธฐ ์ํ ๋ถ์ฐํ ์ํํธ์จ์ด๋ก ํด๋ผ์ฐ๋ฐ๋ผ์์ ๊ฐ๋ฐํ ์๋ฒ ๋ก๊ทธ ์์ง ๋๊ตฌ ์ ๋๋ค. ๊ฐ ์๋ฒ์ ์์ด์ ํธ๊ฐ ์ค์น ๋๊ณ , ์์ด์ ํธ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ ๋ฐ๋ ์ฝ๋ ํฐ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
ํ๋ฃธ์ ์ด๋ฒคํธ ๊ธฐ๋ฐ์ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋ก์ผ๋ก ์์งํ๊ธฐ ์ํด ๊ฐ๋ฐ๋์์ผ๋ฉฐ ๋ค์์ ์น ์๋ฒ์์ ๋ก๊ทธํ์ผ์ ์์งํ๊ณ ํด๋น ํ์ผ์ ๋ก๊ทธ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด HDFS์ ์์นํ ์๋ก์ด ํตํฉ ํ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ํ๋ฃธ์ ์ฌ์ฉํ๋ ์ ํ์ ์ธ ์์ ๋๋ค.
Flume์ ๊ธฐ๋ณธ์ ์ผ๋ก ์น ์๋ฒ์์ ์์ฑ๋ ๋๋์ ๋ก๊ทธ ํ์ผ์ Hadoop์ผ๋ก ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ์คํธ๋ฆฌ๋ฐํ ์ ์๋๋ก ์ค๊ณ๋์ผ๋ฉฐ, Kafka ๋ธ๋ก์ปค, ํ์ด์ค๋ถ, ํธ์ํฐ์ ๊ฐ์ ์์ค์ ๋ฐ์ดํฐ๋ฅผ ํฌํจํด ์ด๋ฒคํธ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋๋ก ์งํํ์ต๋๋ค.
์นดํ์นด๋ ๋งํฌ๋์ธ์์ ๊ฐ๋ฐํ ์ฌ๋ฌ ๋์ ๋ถ์ฐ ์๋ฒ์์ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ถ์ฐ ๋ฉ์์ง ์์คํ ์ ๋๋ค. ๋์ฉ๋ ์ค์๊ฐ ๋ก๊ทธ ์ฒ๋ฆฌ์ ํนํ ๋์ด ์์ผ๋ฉฐ ๋ฉ์์ง๋ฅผ ๋ฐ๊ณ , ๋ฐ์ ๋ฉ์์ง๋ฅผ ๋ค๋ฅธ ์์คํ ์ด๋ ์ฅ์น์ ๋ณด๋ด๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋์ฐฉํ ๋ฉ์์ง๋ฅผ ํ์ ์ ์ฅํ๊ณ , ์์ฐจ์ ์ผ๋ก ๋ฉ์์ง๋ฅผ ์๋นํ๋ Pub/Sub ํจํด์ ๊ฐ์ง๋ ๋ฉ์์ง ๋ธ๋ก์ปค
๋ฐํ(publish) - ๊ตฌ๋ (subscribe) ๋ชจ๋ธ๋ก ๊ตฌ์ฑ๋์ด ๋ฉ์์ง, ๋ฉํธ๋ฆญ ์์ง, ๋ก๊ทธ ์์ง, ์คํธ๋ฆผ ์ฒ๋ฆฌ ๋ฑ ๋ค์ํ ์ฉ๋๋ก ์ฌ์ฉํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ์ผ ์์คํ ๊ฐ์ HDFS์ ์ํ์น Hive๋ก ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.์ฆ, ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ ์ ์ฅ์(๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค)์ ํ๋ก ๊ฐ์ ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์ ์ก.
๊ด๊ณํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ํ์น ํ๋ก๊ฐ์ ๋์ฉ๋ ๋ฐ์ดํฐ๋ค์ ํจ์จ์ ์ผ๋ก ๋ณํ ํ์ฌ ์ฃผ๋ ๋ช ๋ น ์ค ์ธํฐํ์ด์ค ์ ํ๋ฆฌ์ผ์ด์ . ํด๋ผ์ด์ธํธ-์๋ฒ๋ชจ๋ธ๋ก ๊ตฌํ๋ฉ๋๋ค.
RDBMS์ HDFS๊ฐ ๋์ฉ๋ ๋ฐ์ดํฐ ์ ์ก์ ์ํ ์๋ฃจ์ ์ ๋๋ค. HDFS, RDBMS, DW, NoSQL ๋ฑ ๋ค์ํ ์ ์ฅ์์ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๊ฒ ์ ์กํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์์ฉRDBMS๋ ์ง์ํ๊ณ , MySQL, PostgreSQL ์คํ์์ค RDBMS๋ ์ง์ํฉ๋๋ค.
ํด๋ผ์ด์ธํธ๋ ์์ค ๋ฐ ๋์ ๋ฐ์ดํฐ์คํ ์ด์ ์ค์น๋๊ณ ๋ฐ์ดํฐ ์ด๋์ ํด๋ผ์ด์ธํธ์ ๋์ํ๋ Sqoop ์๋ฒ์ ์ํด MapReduce ์์ ์ผ๋ก ์ค์ผ์คํธ๋ ์ด์ ๋ฉ๋๋ค.
์ํํธ์จ์ด ์์คํ ๊ฐ ๋ฐ์ดํฐ ํ๋ฆ์ ์๋ํํ๋๋ก ์ค๊ณ๋ ์ํํธ์จ์ด ํ๋ก์ ํธ๋ก ๋ฏธ๊ตญ ๊ตญ๊ฐ์๋ณด๊ตญ(NSA)์์ ๊ฐ๋ฐํ ์์คํ ๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌ, ๊ด๋ฆฌ, ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํ ์ต์ ์ ์์คํ ์ ๋๋ค.
๋ฐ์ดํฐ ๋ณํ์ ์ค๊ณ, ์ ์ด, ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํ ํ๋ถํ ์น ๊ธฐ๋ฐ GUI๋ฅผ ์ ๊ณตํฉ๋๋ค. NiFi๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ค(์ถ์ถํจ์), ํ๋ก์ธ์(๋ณํ ํจ์), ์ฑํฌ(๋ก๋ ํจ์)๋ผ๋ ์ธ ๊ฐ์ง ์ ํ์ผ๋ก ๊ตฌ๋ถ๋ 250๊ฐ ์ด์์ ํ์คํ๋ ํจ์๋ฅผ ์ ๊ณตํ๋ฉฐ ํ๋ก์ธ์ ๊ธฐ๋ฅ์ ์๋ก๋ ๋ฐ์ดํฐ ํฅ์, ๊ฒ์ฆ, ํํฐ๋ง, ๊ฒฐํฉ, ๋ถํ , ์กฐ์ ์ด ์์ต๋๋ค.
ํ์ด์ฌ, ์ ธ, Spark์๋ ๋ถ๊ฐ์ ์ธ ํ๋ก์ธ์๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. ํ๋ก์ธ์๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์์ ๋งค์ฐ ๋์์ ์ผ๋ก ๊ตฌํ๋๋ฉฐ, ๋ณ๋ ฌ ํ๋ก๊ทธ๋๋ฐ์ ๊ณ ์ ํ ๋ณต์ก์ฑ์ ์ฌ์ฉ์์๊ฒ ์จ๊น๋๋ค. ํ๋ก์ธ์๋ ๋์์ ์คํ๋๋ฉฐ ๋ก๋์ ๋์ฒํ๊ธฐ ์ํด ์ฌ๋ฌ ์ค๋ ๋์ ๊ฑธ์ณ ์์ต๋๋ค.
์ธ๋ถ ์์ค์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ฉด NiFi ๋ฐ์ดํฐ ํ๋ฆ ๋ด๋ถ์ FlowFile๋ก ํ์๋ฉ๋๋ค. FlowFile์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ด๋ จ ๋ฉํ ์ ๋ณด๊ฐ ์๋ ์๋ณธ ๋ฐ์ดํฐ์ ๋ํ ํฌ์ธํฐ
ํ๋ก์ธ์์ ์ธ ๊ฐ์ง ์ถ๋ ฅ
์คํจ : FlowFIle์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋ ๊ฒฝ์ฐ, ์๋ณธ FlowFIle์ด ์ถ๋ ฅ์ผ๋ก ๋ผ์ฐํ ๋จ
์๋ณธ : ๋ค์ด์ค๋ FlowFile์ด ์ฒ๋ฆฌ๋๋ฉด ์๋ณธ FlowFile์ด ์ถ๋ ฅ์ผ๋ก ๋ผ์ฐํ ๋จ
์ฑ๊ณต : ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ๋ FlowFile์ ์ด ๊ด๊ณ๋ก ๋ผ์ฐํ ๋จ
๋ก๊ทธ ์์ง ๋ฏธ๋ค์จ์ด๋ก ์ ์ฅ ์ฅ์๊ฐ ๋ถ์ฐ๋์ด ์๋ ๋ฐ์ดํฐ์ ๋ก๊ทธ์ ์์ง์ ๊ฐ๋จํ๊ณ ์ค๋งํธํ๊ฒ ํด๊ฒฐํด ์ค์ผ๋ก์จ ๋ฐ์ดํฐ๋ก๋ถํฐ ๊ฐ์น๋ฅผ ์ฐฝ์ถํ๊ธฐ ์ํ ๋น์ฉ์ ์ต์ํ ํ ์ ์์ต๋๋ค.
ํฌ๋ก์ค ํ๋ซํผ ์คํ ์์ค ๋ฐ์ดํฐ ์์ง ์ํํธ์จ์ด ํ๋ก์ ํธ๋ก ํธ๋ ์ ๋ฐ์ดํฐ์์ ๊ฐ๋ฐํ ๋ก๊ทธ ์์ง์์คํ ์ ๋๋ค. ์ฃผ๋ก ๋ฃจ๋น์ C๋ก ์์ฑ๋์์ต๋๋ค. ์ฌ๋ฌ ํํ์ ๋ก๊ทธ๋ฅผ ์ ๋ฌ๋ฐ์์ ์ํ๋ ์ ์ฅ์์ ์์์ ์์ต๋๋ค. ๋น์ ํ, ๋ฐ์ ํ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋ง, ๋ฒํผ๋งํ์ฌ ์ฌ์ฉ์๊ฐ ์ง์ ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํด๋ผ์ฐ๋ ์ ์ฅ์์ ํจ์จ์ ์ผ๋ก ์ ์ฅํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๋ Flume NG์ ๋น์ทํฉ๋๋ค. Flume์ Source, Channel, Sink๊ฐ Input, Buffer, Output์ผ๋ก ๋์ฒด๋์์ต๋๋ค. ์ฅ์ ์ ๊ฐ ํํธ ๋ณ๋ก ํ๋ฌ๊ทธ์ธ์ ๋ง๋ค๊ธฐ ์ฝ์ต๋๋ค.
Stream Processing
์คํธ๋ฆผ ๋ฐ ์ผ๊ด ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์คํ ์์ค ์คํธ๋ฆผ ์ฒ๋ฆฌ ํ๋ ์์ํฌ์ ๋๋ค.
ํน์ง
Dataflow ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก DataStream API์์ ์ด๋ฒคํธ ์๊ฐ ๋ฐ ๋น์์ฐจ์ ์ฒ๋ฆฌ ์ง์
๋งค์ฐ ๋์ ์ฒ๋ฆฌ๋๊ณผ ๋ฎ์ ์ด๋ฒคํธ ๋๊ธฐ ์๊ฐ์ ๋์์ ์ง์ํ๋ ๋ฐํ์
์ธ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์ฝ์ด ์ธ๋ถ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ ๊ฐ์ ํจ์จ์ ์ด๊ณ ๊ฐ๋ ฅํ ์ ํ์ ์ํ ๋ง์ถคํ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
์ผ๊ด ์ฒ๋ฆฌ ๋ฐ ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ์ ์ ์ํ๊ธฐ ์ํ ์คํ์์ค ํตํฉ ๋ชจ๋ธ
๋ฐ์ดํฐ ์ฌ์ฉ์๋ ์คํ์์ค Beam SDK ์ค ํ๋๋ฅผ ์ฌ์ฉํด ํ์ดํ๋ผ์ธ์ ์ ์ํ๋ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ถํฉ๋๋ค.
ํ์ดํ๋ผ์ธ์ Beam์ด ์ง์ํ๋ ๋ถ์ฐ ์ฒ๋ฆฌ ๋ฐฑ์๋ ์ค ํ๋์ ์ํด ์คํ๋๋ฉฐ ์ํ์น Apex, ์ํ์น Flink, ์ํ์น Spark, ๊ตฌ๊ธ Cloud Dataflow๊ฐ ํฌํจ๋ฉ๋๋ค.
YARN์์๋ Twitter์ ์คํธ๋ฆผ ์ฒ๋ฆฌ๋ฅผ ์ํ ํ๋ ์์ํฌ์ ๋๋ค.
์ ํ์๋น์ค ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ ํจํด์ ์์ด๋ฉฐ, ์ผ๊ด ์ฒ๋ฆฌ๋ฅผ ์คํธ๋ฆผ ์ฒ๋ฆฌ์ ํ์ ์งํฉ์ผ๋ก ์ทจ๊ธํฉ๋๋ค.
๋น ๋ฅธ ์ฒ๋ฆฌ๊ฐ ์ฅ์ ์ ๋๋ค.
Apache Samza๋ LinkedIn์์ ๋ง๋ ์คํ ์์ค ํ๋ก์ ํธ๋ก Kafka ๋ฐ YARN์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์คํธ๋ฆผ ์ฒ๋ฆฌ ํ๋ ์์ํฌ์ ๋๋ค.
Samza๋ ์ฌ๋ฌ Kafka ์ฃผ์ ์์ ๋ฉํธ๋ฆญ์ ์คํธ๋ฆฌ๋ฐํ ์ ์์ผ๋ฉฐ Hadoop YARN์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
Disk ํ์ฉ ๋๋ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
๋ฐ์ดํฐ ์ฒ๋ฆฌ
MapReduce๋ ์ฌ๋ฌ ์ปดํจํฐ์ ๊ฑธ์ณ ๋ถ์ฐ๋ ๋ฐฉ์์ผ๋ก ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ง์ถค ์ ์๋ ํ๋ ์์ํฌ๋ก ํด๋ฌ์คํฐ์์ ๋ณ๋ ฌ ๋ถ์ฐ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ์ ๋๋ค.
https://github.com/mjs1995/muse-data-engineer/blob/main/doc/Batch%20Processing/hadoop_map_yarn.md.
์คํํฌ(Spark)๋ ์ธ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ์ ๋ฒ์ฉ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ํ๋ซํผ์ ๋๋ค. ๋ฐฐ์น ์ฒ๋ฆฌ, ๋จธ์ ๋ฌ๋, SQL ์ง์ ์ฒ๋ฆฌ, ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ๊ทธ๋ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฒ๋ฆฌ์ ๊ฐ์ ๋ค์ํ ์์ ์ ์์ฉํ ์ ์๋๋ก ์ค๊ณ๋์ด ์์ต๋๋ค.
์คํํฌ๋ ํด๋ฌ์คํฐ ๊ธฐ๋ฐ์ผ๋ก ์์ ์ ์คํํ๋ ์์ฒด ๋ถ์ฐ ๋ฐํ์ ์์ง์ด ์์ต๋๋ค. ํ๋ก๊ณผ ๋ฐ์ ํ๊ฒ ํตํฉ๋์ด ์์ด์ YARN ๊ธฐ๋ฐ์ผ๋ก ์คํํ ์ ์๊ณ , ํ๋ก ํ์ผ ํฌ๋งท๊ณผ HDFS ๊ฐ์ ๊ธฐ๋ฐ ์ ์ฅ์๋ฅผ ์ง์ํฉ๋๋ค.
https://github.com/mjs1995/muse-data-engineer/blob/main/doc/Batch%20Processing/spark_base.md
HDFS ๋๋ HBase ๊ธฐ๋ฐ์ ๋ฎ์ ์ง์ฐ ์๊ฐ์ ๋ํํ SQL ์ง์
์ํ๋ผ(Impala)๋ ํด๋ผ์ฐ๋ฐ๋ผ์์ ๊ฐ๋ฐํ ํ๋ก ๊ธฐ๋ฐ์ ๋ถ์ฐ ์ฟผ๋ฆฌ ์์ง์ ๋๋ค. ๋งต๋ฆฌ๋์ค๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , C++๋ก ๊ฐ๋ฐํ ์ธ๋ฉ๋ชจ๋ฆฌ ์์ง์ ์ฌ์ฉํด ๋น ๋ฅธ ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋๋ค.
์ํ๋ผ๋ ๋ฐ์ดํฐ ์กฐํ๋ฅผ ์ํ ์ธํฐํ์ด์ค๋ก HiveQL์ ์ฌ์ฉํ๋ฉฐ, ์์ด ๋ด์ SQL ์ง์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์ค์๊ฐ ์ฟผ๋ฆฌ, ๋ฉ๋ชจ๋ฆฌ๊ธฐ๋ฐ, ์ปฌ๋ผ๊ธฐ๋ฐ
ํ๋ ์คํ (Presto)๋ ํ์ด์ค๋ถ์ด ๊ฐ๋ฐํ ๋ํํ ์ง์๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ถ์ฐ ์ฟผ๋ฆฌ ์์ง์ ๋๋ค. ๋น ๋ฐ์ดํฐ ์ ๋ํน ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌ ํ๊ธฐ ์ํ ๋ถ์ฐํ ANSI SQL ์์ง
๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ฉฐ, ๋ค์ํ ๋ฐ์ดํฐ ์ ์ฅ์์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ SQL๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ํน์ ์ง์ ๊ฒฝ์ฐ ํ์ด๋ธ ๋๋น 10๋ฐฐ ์ ๋ ๋น ๋ฅธ ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋๋ค.
https://github.com/mjs1995/muse-data-engineer/blob/main/doc/Batch%20Processing/presto_base.md
ํ๋ก ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ง ํ๋ ์์ํฌ๋ก, ๋น ๋ฅธ ์๋๋ก ์ฑ์ฅํ๋ ํ์ด์ค๋ถ์ ์์ ๋คํธ์ํฌ์์ ๋งค์ผ๊ฐ์ด ์์ฐ๋๋ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ํ์ตํ๊ธฐ ์ํด ๊ฐ๋ฐ๋์์ต๋๋ค.
ํ์ด๋ธ๋ ํ๋ก ํด๋ฌ์คํฐ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๊ธฐ ์ํด ํ์ด๋ธ ์ฟผ๋ฆฌ ์ธ์ด(HiveQL) ํน์ HQL์ด๋ผ ๋ถ๋ฅด๋ SQL ํธํ ์ธ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค. ์๋ฐ๋ฅผ ๋ชจ๋ฅด๋ ๋ฐ์ดํฐ ๋ถ์๊ฐ๋ค๋ ์ฝ๊ฒ ํ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ ์ ์๊ฒ ๋์์ค๋๋ค. HiveQL์ ๋ด๋ถ์ ์ผ๋ก ๋งต๋ฆฌ๋์ค ์ก์ผ๋ก ๋ณํ๋์ด ์คํ๋ฉ๋๋ค.
ํ์ด๋ธ์์ ๋ ์ฝ๋ ๋จ์ ๊ฐฑ์ (record-level update), ์ฝ์ , ์ญ์ ๋ฅผ ํ ์ ์๊ธด ํ์ง๋ง ์ฟผ๋ฆฌ๋ก ์ ํ ์ด๋ธ์ ๋ง๋ค ์ ์๊ณ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ํ์ผ๋ก ๋จ๊ธธ ์๋ ์์ต๋๋ค.
https://github.com/mjs1995/muse-data-engineer/blob/main/doc/Batch%20Processing/hive_base.md
ํผ๊ทธ(Pig)๋ ์ผํ์์ ๊ฐ๋ฐ๋์ผ๋ ํ์ฌ๋ ์ํ์น ํ๋ก์ ํธ์ ์ํ ํ๋ก์ ํธ๋ก์, ๋ณต์กํ ๋งต๋ฆฌ๋์ค ํ๋ก๊ทธ๋๋ฐ์ ๋์ฒดํ ํผ๊ทธ ๋ผํด(Pig Latin)์ด๋ผ๋ ์์ฒด ์ธ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค. ํผ๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์ค๊ฐ์ด๋ ์ค์ฒฉ๋ ํํ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ณ ๋ฐ์ดํฐ ๋ณํ๋ ์ฝ๊ฒ ํ ์ ์์ต๋๋ค.
MapReduce ๊ธฐ๋ฐ์ ๋จ์ํ script๋ก ๋ฐ์ดํฐ ์กฐํ ๋ฐ ๋ถ์์ด ๊ฐ๋ฅํฉ๋๋ค.
๋งต๋ฆฌ๋์ค API๋ฅผ ๋งค์ฐ ๋จ์ํํ ํํ์ด๊ณ SQL๊ณผ ์ ์ฌํ ํํ๋ก ์ค๊ณ๋์ต๋๋ค. SQL๊ณผ ์ ์ฌํ๊ธฐ๋ง ํ ๋ฟ, ๊ธฐ์กด SQL ์ง์์ ํ์ฉํ๊ธฐ๊ฐ ์ด๋ ค์ด ํธ์ ๋๋ค.
ํผ๊ทธ๋ ์ฟผ๋ฆฌ ์ธ์ด๊ฐ ์๋ ๋ฐ์ดํฐ ํ๋ฆ ์ธ์ด(data flow language)๋ก ํผ๊ทธ์์๋ ๋ค๋ฅธ ๊ด๊ณ๋ก๋ถํฐ ๊ด๊ณ๋ฅผ ์ ์ํ๊ธฐ ์ํด ์ผ๋ จ์ ์ ์ธ๋ฌธ์ ์์ฑํฉ๋๋ค. ๊ฐ๊ฐ์ ์๋ก์ด ๊ด๊ณ๋ณ๋ก ์๋ก์ด ๋ฐ์ดํฐ ๋ณํ์ ์คํํฉ๋๋ค.
ํผ๊ทธ ๋ผํด ํ๋ก๊ทธ๋จ์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ์ฌ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋ ์ผ๋ จ์ ์ฐ์ฐ(operation) ๋ฐ ๋ณํ(transformation)์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ์ ์ฒด์ ์ผ๋ก ๋ณด๋ฉด ๊ฐ๊ฐ์ ์ฐ์ฐ์ ๋ฐ์ดํฐ์ ์ฐ์์ ์ธ ํ๋ฆ์ ํํํ๋ฉฐ, ํผ๊ทธ์ ์คํ ํ๊ฒฝ์ ์ด๋ฅผ ์คํ ๊ฐ๋ฅํ ํํ์ผ๋ก ๋ณํํ ํ ์ค์ ์ํํฉ๋๋ค. ํผ๊ทธ๋ ๋ด๋ถ์ ์ผ๋ก ์ด๋ฌํ ๊ณผ์ ์ ์ผ๋ จ์ ๋งต๋ฆฌ๋์ค ์ก์ผ๋ก ๋ณํํฉ๋๋ค.
Scheduler
์์ดํ๋ก์ฐ๋ ์์ด๋น์ค๋น์์ ๊ฐ๋ฐํ ๋ฐ์ดํฐ ํ๋ฆ์ ์๊ฐํ, ์ค์ผ์ฅด๋ง, ๋ชจ๋ํฐ๋ง์ด ๊ฐ๋ฅํ ์ํฌํ๋ก์ฐ ํ๋ซํผ์ ๋๋ค. ํ์ด๋ธ, ํ๋ ์คํ , DBMS ์์ง๊ณผ ๊ฒฐํฉํ์ฌ ์ฌ์ฉ ํ ์ ์์ต๋๋ค.
Airflow ์ค์ผ์ค๋ฌ๋ ๋ชจ๋ ์์ ๊ณผ ๋ชจ๋ DAG๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ์ข ์์ฑ์ด ์ถฉ์กฑ๋ ์์ ์ธ์คํด์ค๋ฅผ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค.
Airflow๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ์ ์ฒด ๋ฑ๋ก๋ ๋ฐฐ์น ํ๋ก๊ทธ๋จ๋ค์ ํ๋์ ์ดํด ๋ณด๋ ๊ฒ ๋ฟ๋ง ์๋๋ผ ๊ฐ๊ฐ์ ํ๋ก๊ทธ๋จ์ ๋จ๊ณ๋ณ ํํฉ๊น์ง ํ์ธ ํ ์ฝ๊ฒ ๋ฐ์ดํฐ ์ฌ์์ฑ๊ณผ ๊ฐ์ ์กฐ์น๋ฅผ ์ทจํ ์ ์์ต๋๋ค. Slack๊ณผ์ ์ฐ๋์ ํตํด ์คํจํ ๊ฒฝ์ฐ ๋ฐ๋ก ํ์ ํด ๋ณผ ์๋ ์์ต๋๋ค.
์์ฆ์นด๋ฐ์ ์คํ๋ผ์ธ ํํฐ ๋จ๊ณ์ ์จ๋ผ์ธ ๋งคํผ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ผ๋ฐ ์์ ์ํฌํ๋ก์ ๋๋ค.
Azkaban์ LinkedIn์์ Hadoop ์์ ์ ์คํํ๊ธฐ ์ํด ๋ง๋ ๋ฐฐ์น ์ํฌํ๋ก ์์ ์ค์ผ์ค๋ฌ์ ๋๋ค.
์๊ฐํ๋ ์ ์ฐจ, ์ธ์ฆ ๋ฐ ๊ถํ ๊ด๋ฆฌ, ์์ ๋ชจ๋ํฐ๋ง ๋ฐ ์๋ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ๊ฐ์ง๋ ์ํฌํ๋ก์ฐ ๊ด๋ฆฌ ๋๊ตฌ ์ ๋๋ค.
์ข ์๊ด๊ณ๊ฐ ์๋ ์ฌ๋ฌ ์ก์ ํ๋ฆ์ ๋ฐ๋ผ ์คํํด์ฃผ๋ ์์คํ
์ฐ์ง๋ ํ๋ก ์์ ์ ๊ด๋ฆฌํ๋ ์ํฌํ๋ก์ฐ ๋ฐ ์ฝ๋๋ค์ดํฐ ์์คํ ์ ๋๋ค. ์๋ฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ก UI ์ ๊ณต ํ๊ณ , ๋งต๋ฆฌ๋์ค, hive, pig ์์ ๊ฐ์ ํนํ๋ ์ก์ ์ผ๋ก ๊ตฌ์ฑ๋ XML ํฌ๋งท์ ์ํฌํ๋ก์ฐ๋ก ์์ ์ ์ ์ดํฉ๋๋ค.
์ํฌํ๋ก ์์ง์ ๋ค๋ฅธ ํํ์ ํ๋ก์ก(๋งต๋ฆฌ๋์ค, ํผ๊ทธ, ํ์ด๋ธ ๋ฑ)์ ๊ตฌ์ฑํ๋ ์์ ํ๋ฆ์ ์ ์ฅํ๊ณ ์คํํ๋ฉฐ, ์ฝ๋๋ค์ดํฐ ์์ง(coordinator engine)์ ๋ฏธ๋ฆฌ ์ ์๋ ์ผ์ ๊ณผ ๋ฐ์ดํฐ ๊ฐ์ฉ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์ํฌํ๋ก ์ก์ ์คํํฉ๋๋ค.
์ฐ์ง๋ ํ์ฅ ๊ฐ๋ฅํ๋๋ก ์ค๊ณ๋์๊ณ ํ๋ก ํด๋ฌ์คํฐ ๋ด์ ์์ฒ ๊ฐ์ ์ํฌํ๋ก(์์ญ ๊ฐ์ ์ฐ์์ ์ธ ์ก์ผ๋ก ๊ตฌ์ฑ๋)๋ฅผ ์์ ์ ์ ํ๊ฒ ์คํํ๋๋ก ๊ด๋ฆฌํฉ๋๋ค.
์ฐ์ง๋ ์คํจํ์ํฌํ๋ก๋ฅผ ๋ค์ ์คํํ ๋ ์ฑ๊ณตํ ๋ถ๋ถ์ ๋ํด์๋ ๋ค์ ์คํํ์ง ์๊ธฐ ๋๋ฌธ์ ํจ์จ์ ์ด๋ฉฐ ๋ฐ๋ผ์ ์๊ฐ ๋ญ๋น๋ ์์ต๋๋ค.
์ฐ์ง์ ์ํฌํ๋ก๋ ์ก์ ๋ ธ๋(action node)์ ์ ์ดํ๋ฆ๋ ธ๋(control-flow node)๋ก ์ด๋ฃจ์ด์ง DAG
์ก์ ๋ ธ๋๋ HDFS์ ์ ์ฅ๋ ํ์ผ์ ์ฎ๊ธฐ๊ฑฐ๋ ๋งต๋ฆฌ๋์ค, ์คํธ๋ฆฌ๋ฐ, ํผ๊ทธ, ํ์ด๋ธ ์ก์ ์คํํ๊ฑฐ๋ ์ค์ฟฑ ์ํฌํธ๋ฅผ ์ํํ๊ฑฐ๋ ์ ์คํฌ๋ฆฝํธ๋ ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๋ฑ ์ํฌํ๋ก์ ํ์คํฌ๋ฅผ ์ํํฉ๋๋ค.
์ ์ดํ๋ฆ ๋ ธ๋๋ ์กฐ๊ฑด๋ถ ๋ก์ง(๋ถ๊ธฐ๋ฌธ)๊ณผ ๊ฐ์ ๊ตฌ๋ฌธ์ ํตํด ์ก์ ์ฌ์ด์ ์ํฌํ๋ก ์คํ์ ๊ด์ฅํฉ๋๋ค.
ํด๋ฌ์คํฐ ๊ด๋ฆฌ
์(YARN)์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์ ์ ์คํํ๊ธฐ ์ํ ํด๋ฌ์คํฐ ์์(CPU, ๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ๋ฑ)๊ณผ ์ค์ผ์ฅด๋ง์ ์ํ ํ๋ ์์ํฌ์ ๋๋ค. ํด๋ฌ์คํฐ์ ์์์ ์์ฒญํ๊ณ ์ฌ์ฉํ๊ธฐ ์ํด API๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ธฐ์กด ํ๋ก์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ํ๋ ์์ํฌ์ธ ๋งต๋ฆฌ๋์ค์ ๋จ์ ์ ๊ทน๋ณตํ๊ธฐ ์ํด์ ์์๋ ํ๋ก์ ํธ์ด๋ฉฐ, ํ๋ก2.0๋ถํฐ ์ด์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค. ๋งต๋ฆฌ๋์ค, ํ์ด๋ธ, ์ํ๋ผ, ํ์กฐ, ์คํํฌ ๋ฑ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ๋ค์ ์์์ ๋ฆฌ์์ค๋ฅผ ํ ๋น๋ฐ์์, ์์ ์ ์คํํ๊ฒ ๋ฉ๋๋ค.
๋งต๋ฆฌ๋์ค, ์คํํฌ ๋ฑ๊ณผ ๊ฐ์ ๋ถ์ฐ ์ปดํจํ ํ๋ ์์ํฌ๋ ํด๋ฌ์คํฐ ๊ณ์ฐ ๊ณ์ธต(YARN)๊ณผ ํด๋ฌ์คํฐ ์ ์ฅ ๊ณ์ธต(HDFS์ HBase) ์์์ YARN ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํฉ๋๋ค.
๋ฉ์์ค(Mesos)๋ ํด๋ผ์ฐ๋ ์ธํ๋ผ์คํธ๋ญ์ฒ ๋ฐ ์ปดํจํ ์์ง์ ๋ค์ํ ์์(CPU, ๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ)์ ํตํฉ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋๋ก ๋ง๋ ์์ ๊ด๋ฆฌ ํ๋ก์ ํธ์ ๋๋ค.
๋ฉ์์ค๋ ๋ฒ์ฉ ํด๋ฌ์คํฐ ์์ ๊ด๋ฆฌ์๋ก ์กฐ์ง์ ์ ์ฑ ์ ๋ฐ๋ผ ๋ค์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ธ๋ฐํ๊ฒ ์์์ ๊ณต์ ํ ์ ์์ต๋๋ค.
๋ฉ์์ค๋ ํด๋ฌ์คํฐ๋ง ํ๊ฒฝ์์ ๋์ ์ผ๋ก ์์์ ํ ๋นํ๊ณ ๊ฒฉ๋ฆฌํด์ฃผ๋ ๋งค์ปค๋์ฆ์ ์ ๊ณตํ๋ฉฐ, ์ด๋ฅผ ํตํด ๋ถ์ฐ ํ๊ฒฝ์์ ์์ ์คํ์ ์ต์ ํ์ํฌ ์ ์์ต๋๋ค. 1๋ง๋ ์ด์์ ๋ ธ๋์๋ ๋์์ด ๊ฐ๋ฅํ๋ฉฐ, ์น ๊ธฐ๋ฐ์ UI, ์๋ฐ, C++, ํ์ด์ฌ API๋ฅผ ์ ๊ณตํฉ๋๋ค. ํ๋ก, ์คํํฌ(Spark), ์คํฐ(Storm), ์๋ผ์คํฑ ์์น(Elastic Search), ์นด์ฐ๋๋ผ(Cassandra), ์ ํจ์ค(Jenkins) ๋ฑ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฉ์์ค์์ ์คํํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ ์ ์ฑ ์ธ ๋ฏธ์ธ ๋จ์(fine-grained) ๋ชจ๋์์ ๊ฐ ์คํํฌ ํ์คํฌ๋ ๋ฉ์์ค ํ์คํฌ๋ก ์คํ๋๋ฉฐ, ๋ฏธ์ธ ๋จ์ ๋ชจ๋๋ ํด๋ฌ์คํฐ์ ์์์ ๋งค์ฐ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ์ง๋ง ํ๋ก์ธ์ค ๊ตฌ๋ ์ ์ค๋ฒํค๋๊ฐ ์์ต๋๋ค.
ํฐ ๋จ์(coarse-grained)๋ชจ๋์์ ์ต์คํํฐ๋ ํ๋ก์ธ์ค์ ๋ด๋ถ์์ ํด๋น ํ์คํฌ๋ฅผ ์คํํฉ๋๋ค. ์คํํฌ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋๋ ๋์ ์ต์คํํฐ ํ๋ก์ธ์ค๊ฐ ํด๋ฌ์คํฐ์ ์์์ ๊ณ์ ์ ์งํ๊ณ ์์ต๋๋ค.
์ ์ฅ
ํ๋ก ๋ถ์ฐ ํ์ผ ์์คํ (HDFS, Hadoop distributed file system)์ ํ๋ก ํ๋ ์์ํฌ๋ฅผ ์ํด ์๋ฐ ์ธ์ด๋ก ์์ฑ๋ ๋ถ์ฐ ํ์ฅ ํ์ผ ์์คํ ์ ๋๋ค.
HDFS๋ ๋ฒ์ฉ ์ปดํจํฐ๋ฅผ ํด๋ฌ์คํฐ๋ก ๊ตฌ์ฑํ์ฌ ๋์ฉ๋์ ํ์ผ์ ๋ธ๋ก๋จ์๋ก ๋ถํ ํ์ฌ ์ฌ๋ฌ์๋ฒ์ ๋ณต์ ํ์ฌ ์ ์ฅํฉ๋๋ค.
ํ๋ก ๋์คํฌ ์์ ๊ฑฐ๋ํ ์ฐ์ ๋ฐ์ดํฐ ๋ธ๋ญ์ ์ค์บํ๋ ๋ฐ ์ต์ ํ๋ ๋ถ์ฐ, ๋ฌด ์ ์ง ํ์ผ์์คํ ์ผ๋ก HDFS๋ ํด๋ฌ์คํฐ์ ๋ถ์ฐ๋์ด ๋ฐ์ดํฐ ์ ์ฅ์์ ์ํํ์ฅ์ฑ์ ์ ๊ณตํฉ๋๋ค.
S3๋ ์๋ง์กด์์ ์ ๊ณตํ๋ ์ธํฐ๋ท์ฉ ์ ์ฅ์์ ๋๋ค.
์ด๋ ๊ณณ์์๋ ์ง ์ฉ๋์ ๊ด๊ณ์์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ฒ์ํ ์ ์๋ ๋จ์ํ ์น ์๋น์ค ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ถ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง
ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ฉ ๊ธฐ๋ณธ ์คํ ๋ฆฌ์ง, ๋ถ์์ ์ํ ๋ฒํฌ ๋ฆฌํฌ์งํ ๋ฆฌ ๋๋ '๋ฐ์ดํฐ ๋ ์ดํฌ', ๋ฐฑ์ , ๋ณต๊ตฌ, ์ฌํด ๋ณต๊ตฌ์ ๋์, ์๋ฒ ์๋ ์ปดํจํ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
HBase๋ HDFS ๊ธฐ๋ฐ์ ์นผ๋ผ ๊ธฐ๋ฐ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ผ๊ด์ฑ์ ๋ณด์ฅํ๋ ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค(distributed column-oriented database)์ ๋๋ค.
๋๊ท๋ชจ ๋ฐ์ดํฐ์ ์์ ์ค์๊ฐ์ผ๋ก ์ฝ๊ณ ์ฐ๋ ๋๋ค ์ก์ธ์ค๊ฐ ํ์ํ ๋ ์ฌ์ฉํ ์ ์๋ ํ๋ก ์ ํ๋ฆฌ์ผ์ด์ . ์์์ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ ๊ทผ์ด ๊ฐ๋ฅํ ์ปฌ๋ผ ๊ธฐ๋ฐ ์ค์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค.
HBase์ RDBMS์ ๋น๊ต
HBase
๋ถ์ฐ ๋ฐ ์ปฌ๋ผ ๊ธฐ๋ฐ ๋ฐ์ดํฐ ์ ์ฅ ์์คํ , ํ๋ก์ด HDFS์ ๋ฌด์์ ์ฝ๊ธฐ์ ์ฐ๊ธฐ๋ฅผ ์ ๊ณตํ์ง ์๋๋ค๋ ์ ์ ๋ฐ๊ฒฌํ์ผ๋ฉฐ ๋ชจ๋ ๋ฐฉํฅ์ ํ์ฅ์ฑ์ ์ค์ ์ ๋์ด ๋ฐ๋ฐ๋ฅ๋ถํฐ ์ค๊ณ๋์์ต๋๋ค.
๋ก์ฐ ๊ฐ์๊ฐ ๊ธธ๊ณ (์์ต), ์ปฌ๋ผ ๊ฐ์๊ฐ ๋์ผ๋ฉฐ(์๋ฐฑ๋ง), ์ํ์ ์ผ๋ก ๋ถํ ๊ฐ๋ฅํด์ ์์ฒ ๋์ ์์ฉ ๋ ธ๋์ ์๋์ผ๋ก ๋ณต์ ํ ์ ์์ต๋๋ค.
ํ ์ด๋ธ ์คํค๋ง๋ ๋ฌผ๋ฆฌ์ ์ ์ฅ์๋ฅผ ๋ฐ์ํด์ ํจ์จ์ ์ธ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ง๋ ฌํ, ์ ์ฅ, ๊ฒ์์ ์ํ ์์คํ ์ ์์ฑํฉ๋๋ค.
RDBMS
์ ํ์ ์ธ RDBMS๋ ๊ณ ์ ๋ ์คํค๋ง, ACID ํน์ฑ์ ๋ก์ฐ ๊ธฐ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ณต์กํ SQL ์ฟผ๋ฆฌ ์์ง, ๊ฐํ ์ผ๊ด์ฑ, ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ, ๋ฌผ๋ฆฌ์ธต์ ์ถ์ํ, SQL ์ธ์ด๋ก ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ํ๋ ๊ฒ์ ์ฃผ์์ ์ ๋์์ต๋๋ค. ์ฝ๊ฒ 2์ฐจ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ ์ ์๊ณ , ๋ณต์กํ ๋ด๋ถ,์ธ๋ถ ์กฐ์ธ์ ์ํํ๊ณ , ์ฌ๋ฌ ํ ์ด๋ธ, ๋ก์ฐ ์ปฌ๋ผ์ ์นด์ดํธ, ํฉ๊ณ, ์ ๋ ฌ, ๊ทธ๋ฃน, ํ์ด์ง ํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ ์ฝ๊ธฐ/์ฐ๊ธฐ ๋ณํ์ฑ์ ๊ณ ๋ คํด์ ๊ท๋ชจ๋ฅผ ๋๋ ค์ผ ํ ๋ RDBMS์ ํธ๋ฆฌํจ์ ๋ง๋ํ ์ฑ๋ฅ ์ ํ๋ก ์ด์ด์ง๋ฉฐ ํ์์ ์ผ๋ก ๋ถ์ฐ์ ์ด๋ ต๋ค๋ ๊ฒ์ ์๊ฒ ๋ ๊ฒ์ ๋๋ค. RDBMS๋ฅผ ํ์ฅํ๋ฉด ๋๊ฐ ์ฝ๋์ ๊ท์น์ ์ด๊ธฐ๊ณ , ACID ์ ์ฝ์ ๋์จํ๊ฒ ํ๊ณ , ์ ํต์ ์ธ DBA์ ์งํ๋ฅผ ๋ฌด์ฉ์ง๋ฌผ๋ก ๋ง๋ค์ด ์ฒ์์ ๋๋ฌด๋ ํธ๋ฆฌํ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด์์ ์ธ ์์ฑ ๋๋ถ๋ถ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ์ง๋ ฌํ
์ํ์น ์์ด๋ธ๋ก๋ ํน์ ์ธ์ด์ ์ข ์๋์ง ์๋ ์ธ์ด ์ค๋ฆฝ์ ๋ฐ์ดํฐ ์ง๋ ฌํ ์์คํ , ํ๋ก Writable (์ง๋ ฌํ ๋ฐฉ์)์ ์ฃผ์ ๋จ์ ์ธ ์ธ์ด ์ด์์ฑ(language portability)์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ง๋ ํ๋ก์ ํธ์ ๋๋ค.
์์ด๋ธ๋ก(Avro)๋ ์ํ์น์ ํ๋ก ํ๋ก์ ํธ์์ ๊ฐ๋ฐ๋ ์๊ฒฉ ํ๋ก์์ ํธ์ถ(RPC) ๋ฐ ๋ฐ์ดํฐ ์ง๋ ฌํ ํ๋ ์์ํฌ์ ๋๋ค. ์๋ฃํ๊ณผ ํ๋กํ ์ฝ ์ ์๋ฅผ ์ํด JSON์ ์ฌ์ฉํ๋ฉฐ ์ฝคํฉํธ ๋ฐ์ด๋๋ฆฌ ํฌ๋งท์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ง๋ ฌํํฉ๋๋ค.
์คํค๋ง๊ฐ ํ์ผ ํค๋์ ํจ๊ป ์ ์ฅ๋๋ค๋ ์ ์ ์ ์ธํ๋ฉด SequenceFile๊ณผ ์ ์ฌํฉ๋๋ค. ํ์์ ํํ์ฑ์ด ์๊ณ ์ํธ ์ด์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ด์ง ํํ์๋ ์ค๋ฒํค๋๊ฐ ์์ผ๋ฉฐ, ์ต์ ํ๊ฐ ์ต๊ณ ๋ก ์๋ ๊ฒ์ ์๋๋ฉฐ ์ ๋ฐ์ ์ผ๋ก ๋ฒ์ฉ ์ํฌ๋ก๋์ ์ ํฉํจ
์ฐ๋ฆฌํํธ๋ ํ์ด์ค๋ถ์์ ๊ฐ๋ฐํ ์๋ก ๋ค๋ฅธ ์ธ์ด๋ก ๊ฐ๋ฐ๋ ๋ชจ๋์ ํตํฉ์ ์ง์ํ๋ RPC ํ๋ ์์ํฌ๋ก ํ์ด๋ธ์ ํตํฉ๋์ด ์์ต๋๋ค. ์๊ฒฉ ํ๋ก์ธ์ค์์ ์ฐ๋ฆฌํํธ๋ฅผ ํตํด ํ์ด๋ธ์ ๋ช ๋ น์ ๋ณด๋ผ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ํ์ ๊ณผ ์๋น์ค ์ธํฐํ์ด์ค๋ฅผ ์ ์ธํ๋ฉด, RPC ํํ์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฝ๋๋ฅผ ์๋์ผ๋ก ์์ฑํด ์ค๋๋ค.
์๋ฐ, C++, C#, Perl, PHP, ํ์ด์ฌ, ๋ธํ์ด, Erlang, Go, Node.js ๋ฑ๊ณผ ๊ฐ์ด ๋ค์ํ ์ธ์ด๋ฅผ ์ง์ํฉ๋๋ค
ํ๋กํ ์ฝ ๋ฒํผ(Protocol Buffers)๋ ๊ตฌ๊ธ์์ ๊ฐ๋ฐํ RPC ํ๋ ์์ํฌ ์ ๋๋ค.
๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ์ง๋ ฌํํ๋ ๋ฐฉ์์ ์ ๊ณตํฉ๋๋ค. C++,C#, Go, Java, Python, Object C, Javascript, Ruby ๋ฑ ๋ค์ํ ์ธ์ด๋ฅผ ์ง์ํ๋ฉฐ ํนํ ์ง๋ ฌํ ์๋๊ฐ ๋น ๋ฅด๊ณ ์ง๋ ฌํ๋ ํ์ผ์ ํฌ๊ธฐ๋ ์์์ Apache Avro ํ์ผ ํฌ๋งท๊ณผ ํจ๊ป ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค.
๋ณด์
๋ ์ธ์ ๋ ํ๋ก ํด๋ฌ์คํฐ์ ๊ฐ ๋ชจ๋์ ๋ํ ๋ณด์ ์ ์ฑ ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. HDFS์ ACL, Hive ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผ๊ถํ ๋ฑ์ ๋ณด์ ์ ์ฑ ๊ณผ ๊ฐ ๋ชจ๋์ ๋ํ ์ ๊ทผ ๊ธฐ๋ก(Audit)์ ๋ณด๊ดํฉ๋๋ค.
์ธ๋ถํ๋ ๊ถํ ๋ถ์ฌ์ ์ ๊ทผ ์ ์ด๋ฅผ ์ํด ๋๋ฆฌ ์ฌ์ฉ๋๋ ์คํ์์ค ์๋ฃจ์
Atlas ์นดํ๋ก๊ทธ์ ๋ชจ๋ Hadoop ์์ฝ์์คํ ์ ๋ํ ๋ณด์ ์ ์ฑ ๊ตฌํ์ ์ํ ์ค์ ์ง์ค์ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ฐ๋ณ ์ฌ์ฉ์, ๊ทธ๋ฃน, ์ ๊ทผ ์ ํ, ์ฌ์ฉ์ ์ ์ ํ๊ทธ, IP ์ฃผ์์ ๊ฐ์ ๋์ ํ๊ทธ ๋ฑ์ ๊ธฐ๋ฐ์ผ๋ก ํ RBAC ๋ฐ ABAC ์ ์ฑ ์ ์ง์ํฉ๋๋ค.
๋ฐ์ดํฐ ์ํฐํฐ์ ๋ํด ์ ์๋ ์์ฑ์ ๋ฐ๋ผ ์ก์ธ์ค๋ฅผ ์ ์ฉํ๋ ์ค์ ์ง์ค์ ๋ณด์ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํ๋ฉฐ. ๋ฐ์ดํฐ ๋ง์คํฌ ๋๋ ํ ํํฐ๋ง์ ๋ํด ์ด ์์ค ๋๋ ํ ์์ค์ ์์ฑ ๊ธฐ๋ฐ ์ก์ธ์ค ์ ์ด๋ฅผ ์ ์ํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ๊ฑฐ๋ฒ๋์ค
๊ธฐ์ ์ ์ฌ๊ธฐ์ ๊ธฐ ์ฐ์ฌํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ์ ์ฅ์์ ๊ด๋ฆฌ, ๋น์ ํ ๋ฐ์ดํฐ๋ฅผ ๊ท์น์ ๋ง๊ฒ ํ์คํํ๋ ์ ์ฌ ์ฐจ์์ ๋น ๋ฐ์ดํฐ ๊ด๋ฆฌ ์ฒด๊ณ
์ํ๋ผ์ค๋ ๋ฐ์ดํฐ ๊ฑฐ๋ฒ๋์ค๋ก ์กฐ์ง์ด ๋ณด์/์ปดํ๋ผ์ด์ธ์ค ์๊ตฌ์ฌํญ์ ์ค์ํ ์ ์๋๋ก ์ง์ํฉ๋๋ค. ๋ฐ์ดํฐ ์์์ ๋ํ ํ๊น , ๋ค์ด์คํธ๋ฆผ ๋ฐ์ดํฐ์ ์ ๋ํ ํ๊ทธ ์ ํ, ๋ฉํ ๋ฐ์ดํฐ ์ ๊ทผ์ ๋ํ ๋ณด์๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ฉํ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์๋ฆผ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ , Hive, HBase, Kafka์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒ์ ์๋ฆฌ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
๋ฐ์ดํฐ ์ํฐํฐ์ ๋ํด ๋ฉํ๋ฐ์ดํฐ์ ํ๊ทธ๋ฅผ ์ ์ํ ์ ์๋ ์นดํ๋ก๊ทธ
Atlas๋ ํ ์ด๋ธ ์์ค ๊ณ๋ณด ์ธ์๋ ๋ค์๊ณผ ๊ฐ์ ์ ํ์ ์ข ์์ฑ์ ์ถ์ ํด ์ด ์์ค ๊ณ๋ณด๋ฅผ ์ง์ํฉ๋๋ค
๋จ์ผ ์ข ์์ฑ : ์ถ๋ ฅ ์ด์ ๊ฐ์ด ์ ๋ ฅ ์ด๊ณผ ๋์ผํจ
ํํ ์ข ์์ฑ : ์ถ๋ ฅ ์ด์ ๋ฐํ์ ์ ์ ๋ ฅ ์ด์ ์ผ๋ถ ํํ์(Hive SQL ํํ์)์ ์ํด ๋ณํ๋จ
์คํฌ๋ฆฝํธ ์ข ์์ฑ : ์ถ๋ ฅ ์ด์ ์ฌ์ฉ์๊ฐ ์ ๊ณตํ ์คํฌ๋ฆฝํธ์ ์ํด ๋ณํ๋จ
์๋ฌธ์ผ์ ๋ฐ์ดํฐ ๋์ค์ปค๋ฒ๋ฆฌ ํ๋ซํผ์ ๋๋ค. ๊ธฐ์ ์ ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๊ณ , ์ถ์ฒํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ฒ์, ์ถ์ฒ, ๋ฏธ๋ฆฌ๋ณด๊ธฐ, ์ปฌ๋ผํต๊ณ, ์์ ์, ์ฃผ์ฌ์ฉ์๋ค์ด ์ ํํ๋ ํ ์ด๋ธ ์์ธ ํ์ด์ง๋ฅผ ์ง์ํฉ๋๋ค.
๋ค๋ฅธ ๋ฐ์ดํฐ ์ ๋ํ ์ ๋ณด๋ฅผ ์ค๋ช ํ๊ณ ์ ๊ณตํ๋ ๋ฐ์ดํฐ ์งํฉ
๋ฐ์ดํฐ ์ธํธ์ ์ํฐํฉํธ๋ฅผ ์ธ๋ฑ์ฑํ์ฌ ์ ๋ ฅ ๊ตฌ๋ฌธ ๋ถ์์์๋ ์ ํํ ๋งค์นญ ๊ฐ์ ์ ์ํด ์๋ ์์ฑ(type-ahead) ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค. ์ ๋ ฅ ๋ฌธ์์ด์ ์์ผ๋์นด๋์ ํค์๋, ๋ฒ์ฃผ, ๋น์ฆ๋์ค ์ดํ ๋ฑ์ ์ง์ํฉ๋๋ค.
์๋ฌธ์ผ์ ์์ Elasticsearch ํ๋ก์ ๊ณ์ธต์ ๊ตฌํํด ์นดํ๋ก๊ทธ์ ์ํธ ์์ฉํจ์ผ๋ก์จ ํผ์ง ๊ฒ์์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
๋ฉํ๋ฐ์ดํฐ๋ Neo4j์์ ์ ์ง๋จ. ์ธ๋ฑ์ค ๊ตฌ์ถ์ ์ํด์๋ ๋ฐ์ดํฐ ์์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Data Visualization
Zeppelin์ ํ๊ตญ์ NFLab์ด๋ผ๋ ํ์ฌ์์ ๊ฐ๋ฐํ์ฌ Apache top level ํ๋ก์ ํธ๋ก ์ต๊ทผ ์น์ธ ๋ฐ์ ์คํ์์ค ์๋ฃจ์ ์ผ๋ก, Notebook ์ด๋ผ๊ณ ํ๋ ์น ๊ธฐ๋ฐ Workspace์ Spark, Tajo, Hive, ElasticSearch ๋ฑ ๋ค์ํ ์๋ฃจ์ ์ API, Query ๋ฑ์ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์น์ ๋ํ๋ด๋ ์๋ฃจ์ ์ ๋๋ค.
๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๋ ์์ ์ ๊ฒฝ์ฐ ๊ฐ ๋จ๊ณ๋ณ ๋ง์ ๋ฐ์ดํฐ ๊ฒ์ฆ์ด ํ์ํ๊ณ ํ๋ก๊ทธ๋จ์ ์ง๊ณ ๋๋ฒ๊น ํด์ ๋ณด๋ ๊ฒ๋ณด๋ค ์ฝ๋ ๋ช ์ค์ ์ง๊ณ ๋ฐ๋ก ๋ฐ์ดํฐ๋ฅผ ํ์ธํด ๋ณผ ์ ์๋ ์ธํฐ๋ ํฐ๋ธํ ๋ฐฉ์์ด ํจ์จ์ ์ ๋๋ค. ์ ํ๋ฆฐ์ ์ด๋ฅผ ๋ถํธํ ์ปค๋งจ๋๋ผ์ธ์ด ์๋ ์น์์ ์ฝ๊ณ ํจ์จ์ ์ผ๋ก ํด์ค ์ ์๋ ์ดํ๋ฆฌ์ผ์ด์
ํ๋ก ํด(Hue, Hadoop User Experience)๋ ํ๋ก๊ณผ ํ๋ก ์์ฝ์์คํ ์ ์ง์์ ์ํ ์น ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ์คํ ์์ค ์ ๋๋ค. Hive ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๊ณ , ์๊ฐํ๋ฅผ ์ํ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ก์ ์ค์ผ์ค๋ง์ ์ํ ์ธํฐํ์ด์ค์ ์ก, HDFS, ๋ฑ ํ๋ก์ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํ ์ธํฐํ์ด์ค๋ ์ ๊ณตํฉ๋๋ค.
์นด๋๋๋ฆฌํฐ ํต๊ณ์ ํจ๊ป ํ ์ด๋ธ๊ณผ ์ด์ ์๋์ผ๋ก ๋์ดํ๊ณ ํํฐ๋งํ๋ ๋ฉํ๋ฐ์ดํฐ ๊ฒ์์ ์ ๊ณตํฉ๋๋ค. ๋ชจ๋ SQL ์ธ์ด์ ๋ํ ์ฟผ๋ฆฌ ํธ์ง ์๋ ์์ฑ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ , ์ ํจํ ๊ตฌ๋ฌธ๋ง ํ์ํ๊ฑฐ๋ ํค์๋, ์ถ๊ฐ ์๊ฐํ, ์ฟผ๋ฆฌ ํ์ํ, ๋งค๊ฐ๋ณ์ํ์ ๋ํ ๊ตฌ๋ฌธ ๊ฐ์กฐ ํ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ถ์ฐ ์๋ฒ ๊ด๋ฆฌ
ํด๋ฌ์คํฐ์์ ์ฌ๋ฌ๊ฐ์ง ๊ธฐ์ ์ด ์ด์ฉ๋ ๋ ํ๋์ ์๋ฒ์์ ๋ชจ๋ ์์ ์ด ์งํ๋๋ฉด ์ด ์๋ฒ๊ฐ ๋จ์ผ์คํจ์ง์ (SPOF)๊ฐ ๋ฉ๋๋ค. ์ด๋ก ์ธํ ๋ฆฌ์คํฌ๋ฅผ ์ค์ด๊ธฐ ์ํด ๋ถ์ฐ ์๋ฒ ๊ด๋ฆฌ ๊ธฐ์ ์ ์ด์ฉํฉ๋๋ค.
๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ์ฝ๋๋ค์ด์ ์์คํ ์ ๋๋ค. ๋ถ์ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ณด๋ฅผ ์ค์์ ์ง์คํ๊ณ ๊ตฌ์ฑ ๊ด๋ฆฌ, ๊ทธ๋ฃน, ๋ค์ด๋ฐ, ๋๊ธฐํ ๋ฑ์ ์๋น์ค๋ฅผ ์ํํฉ๋๋ค.
๋ถ์ฐ ์์คํ ์ ์์ด์ ๋ถ๋ถ ์คํจ๋ ์ ๋ ํผํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฃผํคํผ๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํด๋ ๋ถ๋ถ ์คํจ๊ฐ ์์ ํ ์ฌ๋ผ์ง๋ ๊ฒ์ ์๋๋ฉฐ ์๋ฒฝํ ๊ฐ์ถ ์๋ ์์ต๋๋ค. ์ฃผํคํผ๋ ๋ถ๋ถ ์คํจ๋ฅผ ์์ ํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ ๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํน์ง
๋จ์ํ๋ค : ์ฃผํคํผ๋ ๋ช ๊ฐ์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ํต์ฌ์ผ๋ก ์ ๊ณตํ๊ณ ๋ช ๋ น ๋ฐ ํต์ง์ ๊ฐ์ ์ถ์ํ ๊ธฐ๋ฅ์ ์ถ๊ฐ๋ก ์ ๊ณตํ๋ ๊ฐ์ํ๋ ํ์ผ ์์คํ
์ ๊ณตํ๋ ๊ธฐ๋ฅ์ด ํ๋ถํจ : ์ฃผํคํผ ํ๋ฆฌ๋ฏธํฐ๋ธ(primitive)๋ ๋๊ท๋ชจ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ํ๋กํ ์ฝ ์ฝ๋๋ค์ด์ ์ ์ฌ์ฉ๋๋ ํ๋ถํ ๊ตฌ์ฑ์์๋ฅผ ์ ๊ณตํ๊ณ ์์
๊ณ ๊ฐ์ฉ์ฑ์ ์ ๊ณตํจ : ์ฃผํคํผ๋ ๋ค์์ ๋จธ์ ์์ ์คํ๋๋ฉฐ ๊ณ ๊ฐ์ฉ์ฑ์ ๋ณด์ฅํ๋๋ก ์ค๊ณ๋์๊ธฐ ๋๋ฌธ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฃผํคํผ์ ์ด๋ฌํ ํน์ฑ์ ์ ์ ์ผ๋ก ์ ๋ขฐํ๊ณ ์ฌ์ฉํ ์ ์์, ์ฃผํคํผ๋ ์์คํ ์์ ๋ฐ์ํ ์ ์๋ ๋จ์ผ ์ฅ์ ์ (single points of failure - SPOF)๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ ์ฃผ๋ฏ๋ก ์ ๋ขฐ์ฑ ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์์
๋์จํ๊ฒ ์ฐ๊ฒฐ๋ ์ํธ์์ฉ์ ๋์์ ์ค : ์ฃผํคํผ๊ฐ ๋์ํ ๋ ์ฐธ์ฌ์๋ค์ ์๋ก์ ๋ํด ๋ชฐ๋ผ๋ ์๊ด์์
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค : ์ฃผํคํผ๋ ์ผ๋ฐ์ ์ธ ์ฝ๋๋ค์ด์ ํจํด์ ๋ํ ๊ตฌํ์ฒด์ ๊ตฌํ ๋ฐฉ๋ฒ์ ๊ณต์ ์ ์ฅ์์ ์คํ ์์ค๋ก ์ ๊ณตํจ
๋ถ์ฐ ํ๊ฒฝ์์ ์๋ฒ ๊ฐ์ ์ํธ ์กฐ์ ์ด ํ์ํ ๋ค์ํ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์์คํ ์ผ๋ก, ํฌ๊ฒ ๋ค์๊ณผ ๊ฐ์ ๋ค ๊ฐ์ง ์ญํ ์ ์ํํฉ๋๋ค.
์ฒซ์งธ, ํ๋์ ์๋ฒ์๋ง ์๋น์ค๊ฐ ์ง์ค๋์ง ์๊ฒ ์๋น์ค๋ฅผ ์๋ง๊ฒ ๋ถ์ฐํด ๋์์ ์ฒ๋ฆฌํ๊ฒ ํด์ค๋๋ค. ๋์งธ, ํ๋์ ์๋ฒ์์ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ฅผ ๋ค๋ฅธ ์๋ฒ์๋ ๋๊ธฐํํด์ ๋ฐ์ดํฐ์ ์์ ์ฑ์ ๋ณด์ฅํฉ๋๋ค. ์ ์งธ, ์ด์(active) ์๋ฒ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํด์ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์์ ๊ฒฝ์ฐ, ๋ค๋ฅธ ๋๊ธฐ ์ค์ธ ์๋ฒ๋ฅผ ์ด์ ์๋ฒ๋ก ๋ฐ๊ฟ์ ์๋น์ค๊ฐ ์ค์ง ์์ด ์ ๊ณต๋๊ฒ ํฉ๋๋ค. ๋ท์งธ, ๋ถ์ฐ ํ๊ฒฝ์ ๊ตฌ์ฑํ๋ ์๋ฒ์ ํ๊ฒฝ์ค์ ์ ํตํฉ์ ์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค.
์ ์ฒด ์๋ช ์ฃผ๊ธฐ์ ๊ฑธ์ณ ํ๋ก ํด๋ฌ์คํฐ์ ์ค์น ๋ฐ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์ ์ฉ ๋๊ตฌ
๊ฐ๋จํ ์น ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ฉฐ, ํ๋ก ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ถํ๋ ค๋ ์ฌ์ฉ์์ ์ด์์์๊ฒ ๊ถ์ฅ๋๋ ๋ฐฉ์
Reference
https://www.oreilly.com/library/view/hadoop-the-definitive/9780596521974/
https://www.oreilly.com/library/view/programming-hive/9781449326944/
Last updated