Data Engineering/Hadoop

[Hadoop Study] ํ•˜์ด๋ธŒ(Hive) (1) - ํ•˜์ด๋ธŒ ๊ตฌ์กฐ์™€ ์ž‘๋™ ๊ณผ์ •

๋žญํ˜ธ(Langho) 2021. 2. 21.

 

Hadoop ์ด์ „๊ธ€

2020/11/12 - [Data Science/Hadoop] - [Hadoop Study] vol 1. Hadoop์ด๋ž€?

2020/11/28 - [Data Science/Hadoop] - [Hadoop Study] vol 2. HDFS(Hadoop Distributed File System) ๊ฐœ๋…๊ณผ ๊ตฌ์กฐ

2021/01/10 - [Data Science/Hadoop] - [Hadoop Study] vol 3. ๋งต๋ฆฌ๋“€์Šค(MapReduce) ๊ฐœ๋…๊ณผ ๊ตฌ์กฐ

 

 

๋“ค์–ด๊ฐ€๋ฉฐ

ํ•˜๋‘ก์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ(HDFS)๋ฅผ SQL๊ฐ™์€ ์ฟผ๋ฆฌ๋กœ ์งˆ์˜, ๋ถ„์„ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ํ•ด์ฃผ๋Š” ํ•˜์ด๋ธŒ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐ์— Facebook์—์„œ RDBMS๋กœ๋Š” ์ฒ˜๋ฆฌํ•˜๊ธฐ ํž˜๋“   ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœํ–ˆ์œผ๋ฉฐ ํ˜„์žฌ๋Š” ์•„ํŒŒ์น˜์— ์†ํ•ด์žˆ๋Š” ์˜คํ”ˆ์†Œ์Šค๋กœ ํ•˜๋‘ก ์—์ฝ”์‹œ์Šคํ…œ์˜ ์ผ๋ถ€๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. HDFS๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋งต๋ฆฌ๋“€์Šค ์ž‘์—…์„ Java/Python์œผ๋กœ ์ง์ ‘ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ์ž‘์—…์€ ์˜ค๋ž˜๊ฑธ๋ฆฌ๊ณ  ์ง„์ž…์žฅ๋ฒฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด, SQL๋งŒ ์•Œ๋ฉด ๋ˆ„๊ตฌ๋‚˜ HDFS๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜์ด๋ธŒ๊ฐ€ ๊ฐœ๋ฐœ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ด๋ธŒ์—์„œ ์‚ฌ์šฉํ•˜๋Š” SQL์€ HiveQL์ด๋ผ๊ณ  ํ•˜๋Š” SQL์˜ ์ผ๋ถ€์— ์†ํ•˜๋Š” ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. SQL๊ณผ ๊ฑฐ์˜ ๋น„์Šทํ•˜์ง€๋งŒ Having์ ˆ๊ณผ ๊ฐ™์€ ์ผ๋ถ€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

Hive Architecture

Hive๊ฐ€ ์–ด๋–ค ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ https://datacookbook.kr/88

์ „์ฒด์ ์ธ ๊ตฌ์กฐ์—์„œ ์ฃผ์š” ์—ญํ• ์„ ํ•˜๋Š” ์„ธ๊ฐ€์ง€ ์š”์†Œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

1. Meta Store

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

 

2. Hive Server

ํ•˜์ด๋ธŒ ์„œ๋ฒ„๋Š” ํ•˜์ด๋ธŒ์— ์งˆ์˜ํ•˜๋Š” ๊ฐ€์žฅ ์•ž๋‹จ์˜ ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. ์ฆ‰, JDBC๋‚˜ ODBC๋กœ๋ถ€ํ„ฐ ์งˆ์˜๋ฅผ ๋ฐ›๊ณ  ์ด๋ฅผ Driver์— ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ด๋ธŒ ์„œ๋ฒ„๋Š” ๊ถŒํ•œ๊ณผ ์ ‘๊ทผ์„ฑ ๊ฒ€์ฆ์„ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆผ์—์„œ ํ•˜์ด๋ธŒ ์„œ๋ฒ„ ์œ„์— CLI(Comment Line Interface)๊ฐ€ ๋ณด์ด๋Š”๋ฐ CLI๋ฅผ ํ†ตํ• ๊ฒฝ์šฐ, Driver์— ๋ฐ”๋กœ ์ ‘๊ทผํ•˜์—ฌ ๊ธฐํƒ€ ๊ถŒํ•œ์ด๋‚˜ ์ œ์–ด๊ถŒ์„ ๋ฌด์‹œํ•˜๊ณ  ๋ชจ๋“  ์ปจํŠธ๋กค์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค. ์‹ค์ œ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•  ๋•Œ๋Š” ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

 

3. Driver

๋“œ๋ผ์ด๋ฒ„๋Š” Hive์˜ ์—”์ง„์œผ๋กœ์จ ์—ฌ๋Ÿฌ ์งˆ์˜๋ฅผ ๋ฐ›์•„์„œ Optimizer๋ฅผ ํ†ตํ•ด HiveQL์„ ํ•ด์„ํ•˜๊ณ  MR, Spark ๋“ฑ์˜ ์—ฌ๋Ÿฌ ์ฒ˜๋ฆฌ ๋„๊ตฌ์™€ ์—ฐ๋™ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

 

 

Hive Work Process

ํ•˜์ด๋ธŒ Work์˜ ์‹คํ–‰ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•˜์ž๋ฉด

1. ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•œ SQL๋ฌธ์„ ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ปดํŒŒ์ผ๋Ÿฌ์— ์š”์ฒญ

2. ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ฉ”ํƒ€์Šคํ† ์–ด ์ •๋ณด๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฒ˜๋ฆฌ์— ์ ํ•ฉํ•œ ํ˜•ํƒœ๋กœ ์ปดํŒŒ์ผ

3. ์ปดํŒŒ์ผ๋œ SQL ์‹คํ–‰

4. ๋ฆฌ์†Œ์Šค ๋งค๋‹ˆ์ €๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ ์ž์›์„ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰

5. ์‹คํ–‰ ์ค‘ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Š” HDFS ๋“ฑ์˜ ์ €์žฅ์žฅ์น˜๋ฅผ ์ด์šฉ

6. ์‹คํ–‰๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ˜ํ™˜

 

 

๋งˆ์น˜๋ฉฐ

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

๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ ํ•˜์ด๋ธŒ์˜ ํ…Œ์ด๋ธ”๊ณผ ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

 

 

Reference

wikidocs.net/23572

datacookbook.kr/88

dontdiethere.tistory.com/14

๋Œ“๊ธ€