๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT/HADOOP

[26์ผ์ฐจ] hadoop eco system/hive ์„ค์น˜/HiveQL์‚ฌ์šฉํ•˜๊ธฐ

by GWLEE 2022. 7. 26.

๐Ÿ’™2022-07-26๐Ÿ’™

 

ํ•˜๋‘ก ์—์ฝ” ์‹œ์Šคํ…œ 

hadoop eco system

 

๊ฐœ๋…์ƒ ๋งจ ํ•˜๋‹จ์— ํ•˜๋‘กํŒŒ์ผ ์‹œ์Šคํ…œ ์œ„์— ์–€์ด ์˜ฌ๋ผ๊ฐ. yarn์ด ์˜ฌ๋ผ๊ฐ€์„œ ์ˆ˜๋งŽ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํƒ„์ƒํ•จ.
HDFS๋ฅผ ์‚ฌ์šฉํ•œ noSQL ๋Œ€์šฉ๋Ÿ‰ hdfs ๋ฅผ ์‚ฌ์šฉ hbase.. HDFS๋ฅผ ๋จธ์‹ ๋Ÿฌ๋‹์— ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉ
PIG ์ž๋ฐ”๋ฅผ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ํŒŒ์ด์ฌ ๋น„์Šทํ•œ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด mapreduceํ•  ์ˆ˜ ์žˆ๊ฒŒ.. ๊ฑฐ์˜ ์•ˆ์”€ ์‚ฌ๋ผ์กŒ๋‹ค๊ณ  ๋ด๋„ ๋จ
์ด์œ ๊ฐ€ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ SQL๋กœ  SQL ํ•˜๋‘ก  mapreduce ์ž‘์—…์„ ํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ„.. 
cloudera .. HIVE ์™„๋ฒฝํ•œ ANSIํ‘œ์ค€ ์ง€์› X .. TAJO ๊ณ ๋ ค๋Œ€ ๋Œ€ํ•™๊ต DBํŒ€์ด ๋งŒ๋“ค์–ด๋ƒˆ๋‹ค. ์ฟผ๋ฆฌ๋ฌธ์„ ์ด์šฉ
๊ฐ์ข… ํ”„๋กœ์„ธ์Šค๋“ค ํ†ต์‹ //  ํ†ต์‹ ์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ ์žฌ๊ตฌ์„ฑ zookeeper ๋™๋ฌผ์› ๊ด€๋ฆฌ 
์ฃผํ‚คํผ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ†ต์‹ ์„ ๊ด€๋ฆฌ spark๋Š” toolSQL์„ ์ง€์›  ๋ฐ์ดํ„ฐ๋ฅผ ์ ์žฌํ•œ ์ƒํƒœ์—์„œ mapreduce spark๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•ด์„œ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€๊ณต๊นŒ์ง€ ์นจ๋ฒ”.. 

 

FLUME

์–˜๋งŒ ๋œฌ๊ธˆ์—†์ด ๋™๋ฌผ์ด ์•„๋‹Œ ์ด์œ ,,,? ํ†ต๋‚˜๋ฌด ๋ชจ์–‘

ํŠธ๋ Œ์žญ์…˜ ์ฒ˜๋ฆฌ์—๋Š” ํž˜๋“œ๋‹ˆ๊น ์–ด๋–ค ์žฅ๋น„๋ฅผ ์†Œํ”„ํŠธ์›จ์–ด ์„ค์น˜ ์ˆ˜๋งŽ์€ ๋กœ๊ทธ๋“ค์„ ์Ÿ์•„๋‚ด๋‹ˆ๊น ๋ชจ๋“  ๋กœ๊ทธ๋ฅผ ๋ถ„์„

HDFS ๋ฐฐ์น˜์„ฑ ์ฒ˜๋ฆฌ ์ž๋™ํ™”ํ•  ์ˆ˜ ์—†์„๊นŒ ? ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋‚˜์˜จ ๋กœ๊ทธ๋ฅผ ์Œ“์•„์ฃผ๋Š” ๊ฒƒ.. ํ”Œ๋ฃธ์œผ๋กœ ์—ฐ๊ฒฐ

๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•ด์„œ HDFS ์Œ“์•„๋‘๋Š” ๊ฒƒ 

 

 

HIVE๊ฐ€ mapreduce๋ฅผ ๋Œ€์‹  ํ•ด์ค€๋‹ค.

hadoop Cluster๊ฐ€ hdfs... CLI command line interface ์ง์ ‘ ๋•Œ๋ฆฐ๊ฑฐ

HIVEQL SQL ์ง์ ‘์ ์œผ๋กœ ์“ฐ์ง„ ์•Š์Œ

hadoop Cluster์˜ ๋ฐ์ดํ„ฐ = ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋‹ค . ๊ด€๋ฆฌํ•ด์•ผํ•จ.

RDB์— ๋‹ค๊ฐ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋•Œ๋ ค๋ฐ•๋Š”๋‹ค. RDB์—์„œ ๋’ค์ง€๋‹ค๊ฐ€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘

์•„ํŒŒ์น˜์— Derby.. 1์ธ์šฉ DB ๋ฉ€ํ‹ฐ ์œ ์ € ๊ฐ๋‹น ๋ชปํ•จ.

MySQL์„ RDB๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 


update . upgrade

 

mysql ์„ค์น˜

3306/tcp๋ฅผ mysql ๋Œ€์‹  ์จ๋„ ๋จ 

 

์‹œ์Šคํ…œ ๋ช…๋ น์–ด ๋ณด๋Š” ๋ฐฉ๋ฒ• 

q ๋‚˜๊ฐ 

 

ํ„ฐ๋ฏธ๋„๋กœ ์™ธ๋ถ€์ ‘์†์„ ํ•˜๊ธฐ ์œ„ํ•ด #์œผ๋กœ ๋ง‰์•„์คŒ 

 

์šฐ๋ถ„ํˆฌ์—์„œ mysql 

์šฐ๋ถ„ํˆฌ ๋ฃจํŠธ ๊ณ„์ •๊ณผ ์—ฐ๋™๋˜์–ด ์žˆ์Œ

๋ฃจํŠธ๋กœ ์น˜๊ณ  ๋“ค์–ด๊ฐ.


 

 

ํ•˜์ด๋ธŒ๊ฐ€ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งŒ๋“ค๊ธฐ

 

 

 

์œ ์ € ๋งŒ๋“ค๊ธฐ

 

๋‚ด๋ถ€ ์ ‘์†

์™ธ๋ถ€ ์ ‘์† ์‚ฌ์šฉ์ž ๊ณ„์ • ๋งŒ๋“ค๊ธฐ

๊ถŒํ•œ ์ฃผ๊ธฐ 


 

์ •์ƒ์ ์œผ๋กœ ๋Œ์•„๊ฐ .. 

 

๋น ์ ธ ๋‚˜์™€์„œ ํ•˜์ด๋ธŒ ์„ค์น˜ํ•˜๊ธฐ

https://dlcdn.apache.org/hive/hive-3.1.3/

 

๋‘๋ฒˆ์งธ๊บผ ๋งํฌ์ฃผ์†Œ๋ณต์‚ฌํ•œ๋‹ค.

 

 

 

Index of /hive/hive-3.1.3

 

dlcdn.apache.org

 

 

wget https://dlcdn.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz ์„ค์น˜

(๋งํฌ์ฃผ์†Œ๋ณต์‚ฌํ•ด์„œ ๋ณต๋ถ™)

 

tar zxvf apache-hive-3.1.3-bin.tar.gz

tar ์••์ถ•ํ’€๊ธฐ 

 

apache-hive ์••์ถ• ์‚ญ์ œํ•˜๊ธฐ rm 

 

๊ฐ„๋žตํ•˜๊ฒŒ ๋ฐ”๊พธ๊ธฐ 

mv apache-hive-3.1.3์„ hive-3.1.3์œผ๋กœ ๋ฐ”๊พธ๊ธฐ 

cli = command line interface 

ํ—ค๋”๋ฅผ ๋ณด์—ฌ์ฃผ๋Š”๊ฑฐ ๋ช…๋ น์–ด ์ง์ ‘๋•Œ๋ฆฐ๊ฑฐ 

ํ•˜์ด๋ธŒ ์‰˜์— ๋Œ€ํ•œ ๋ช…๋ นํ–‰ ์ธํ„ฐํŽ˜์ด์Šค๋ฉฐ ๊ธฐ๋ณธ ์„œ๋น„์Šค 

 

 

 

vi hive-env.sh ์ˆ˜์ •ํ•˜๊ธฐ 

/HADOOP_HOMEํ•ด์„œ N.. ์ฐพ์•„์„œ ์ˆ˜์ •ํ•˜๊ธฐ 

 

hive-site.xml 

18๋ฒˆ์งธ ์ค„ ~ 6923์งธ ์ค„ ๊นŒ์ง€ ๋ชจ๋‘ ์ง€์šฐ๊ณ  ์ƒˆ๋กœ ์ž…๋ ฅ

 

์ด๋ ‡๊ฒŒ 4yy -> p ํ•ด์„œ ์ „์ฒด ์ˆ˜์ •ํ•˜๊ธฐ!

 

 

 

ํ•˜์ด๋ธŒ๋Š” ํ•˜๋‘ก๊ณผ ๊ฐ™์ด xml ์„ค์ • ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™˜๊ฒฝ์„ค์ •์„ ํ•œ๋‹ค.

hive-site.xml์ด๊ณ  ํ•˜์ด๋ธŒ์˜ conf์˜ ํŒŒ์ผ์— ์œ„์น˜ํ•œ๋‹ค.

hive-site.xml์€ ํด๋Ÿฌ์Šคํ„ฐ ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ์„ธ๋ถ€์‚ฌํ•ญ์„ ์ •์˜ํ•œ ํŒŒ์ผ 

 

ํด๋Ÿฌ์Šคํ„ฐ : ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ๋“ค์ด ์—ฐ๊ฒฐ๋˜์–ด ํ•˜๋‚˜์˜ ์‹œ์Šคํ…œ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š” ์ปดํ“จํ„ฐ๋“ค์˜ ์ง‘ํ•ฉ

 

 

https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.29

๋งํฌ ์ฃผ์†Œ ๋ณต์‚ฌ 

 

 

 

๋ฃจํŠธ ๊ณ„์ • ๋“ค์–ด๊ฐ€๊ธฐ /tmp/gyuwon

 

 

schematool ์ดˆ๊ธฐํ™”

 

./schematool -initSchema -dbType mysql ์ตœ์ดˆ ํ•œ๋ฒˆ๋งŒ ์‹คํ–‰ํ•œ๋‹ค. 

 

 

 

 

ํ•˜๋‘ก์ด ๊ฐ–๊ณ  ์žˆ๋Š” ๊ตฌ์•„๋ฐ”์™€ ํ•˜์ด๋ธŒ๊ฐ€ ๊ฐ–๊ณ ์žˆ๋Š” ๊ตฌ์•„๋ฐ”๊ฐ€

๋ฒ„์ „์ด ์„œ๋กœ ๋‹ค๋ฅด๋‹ค ๊ทธ๋ž˜์„œ ์—๋Ÿฌ๊ฐ€ ๋‚จ..

 

 

 

์ด๊ฑฐ ๋‚˜์˜ค๋ฉด ์„ฑ๊ณต 

 

hive ์‹คํ–‰ํ•˜๊ธฐ

 

 

 


slack ์—์„œ ์ฃผ์‹  ์ฟผ๋ฆฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ

 

 

 

ํŒŒ์ผ ์ €์žฅํ•œ๊ฑฐ ํ™•์ธํ•˜๊ธฐ 

 

 

show tables; ๋กœ ํ™•์ธ 

ALTER TABLE airline_delay DROP PARTITION(delayYear='2008');

๋ฐ์ดํ„ฐ ๋‚ ๋ฆฌ๋Š” ๊ฒƒ.. ํ•˜์ง€๋Š” ๋ง ๊ฒƒ..

hdfs dfs -ls air-input ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ 


 

hdfs dfs -ls air-input

 

hdfs dfs -ls /tmp/gyuwon

hdfs dfs -ls /tmp/hive

 

hdfs dfs -ls /user/hive/warehouse/airline_delay/delayyear=1999

 

hdfs dfs -ls air-input

 

load data inpath '/user/gyuwon/air-input/airOT199904.csv'

 

partition์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๊ธฐ... ๊ณ„์† ๋ถ„๋ฅ˜~

 

 


 

 

2. HiveQL

 

โ— ํ•˜์ด๋ธŒ๋Š” HiveQL ์ด๋ผ๋Š” SQL๋ฌธ๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•œ ์–ธ์–ด๋ฅผ ์ œ๊ณต
โ— ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์€ SQL๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฐจ์ด์ ์ด ์žˆ์Œ

a. ํ•˜์ด๋ธŒ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ HDFS์— ์ €์žฅ๋˜๋Š”๋ฐ, HDFS๊ฐ€ ํ•œ ๋ฒˆ ์ €์žฅํ•œ ํŒŒ์ผ์€ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—                 UPDATE์™€ DELETE๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
b. ๊ฐ™์€ ์ด์œ ๋กœ INSERT๋„ ๋น„์–ด ์žˆ๋Š” ๋ฐ์ด๋ธ”์— ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜, ์ด๋ฏธ ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ overwrite ํ•˜๋Š” ๊ฒฝ์šฐ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.  ๊ทธ๋ž˜์„œ ํ•˜์ด๋ธŒ๋Š” INSERT OVERWRITE ๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
c. SQL์€ ์–ด๋– ํ•œ ์ ˆ์—์„œ๋„ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ HIveQL ์€ FROM ์ ˆ์—์„œ๋งŒ ์„œ๋ธŒ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
d. SQL์˜ ๋ทฐ๋Š” ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๊ณ , ๊ตฌ์ฒดํ™”๋œ ๋ทฐ ๋˜๋Š” ์ธ๋ผ์ธ ๋ทฐ๋ฅผ ์ง€์›ํ•œ๋‹ค. 
    ํ•˜์ง€๋งŒ HiveQL์˜ ๋ทฐ๋Š” ์ฝ๊ธฐ ์ „์šฉ์ด๋ฉฐ ์ธ๋ผ์ธ ๋ทฐ๋Š” ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค.
e. SELECT ๋ฌธ์„ ์‚ฌ์šฉํ•  ๋•Œ HAVING ์ ˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.f. ์ €์žฅ ํ”„๋กœ์‹œ์ €๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค.
    ๋Œ€์‹  ๋งต๋ฆฌ๋“€์Šค ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. 

    

 

#1 

 


#2

 


#3

 

 


 

#4

 

 


#5

 


#6

 



#7

 

๋Œ“๊ธ€