๋ฐ˜์‘ํ˜•

HIVE ํ…Œ์ด๋ธ” ๊ด€๋ฆฌ

HIVE ํ…Œ์ด๋ธ”

1. ๋ฐ์ดํ„ฐ๋ฅผ HIVE ํ…Œ์ด๋ธ”๋กœ ๊ฐ€์ ธ์˜ค๋ฉด?

HiveQL, ํ”ผ๊ทธ, ์ŠคํŒŒํฌ ๋“ฑ์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌ > ์ƒํ˜ธ์šด์˜ ๋ณด์žฅ

2. HIVE๊ฐ€ ์ง€์›ํ•˜๋Š” ํ…Œ์ด๋ธ” ์ข…๋ฅ˜

    - ๋‚ด๋ถ€ ํ…Œ์ด๋ธ” : HIVE๊ฐ€ ๊ด€๋ฆฌ, HIVE/ ๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์Šค์— ์ €์žฅ, ๋‚ด๋ถ€ํ…Œ์ด๋ธ” ์‚ญ์ œ ์‹œ ๋ฉ”ํƒ€์ •์˜์™€ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ์‚ญ์ œ๋จ,

   ORC๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ €์žฅ๋˜์–ด ๋น„๊ต์  ๋น ๋ฅธ ์„ฑ๋Šฅ

    - ์™ธ๋ถ€ ํ…Œ์ด๋ธ” : ํ•˜์ด๋ธŒ๊ฐ€ ์ง์ ‘ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์Œ,

   ํ•˜์ด๋ธŒ์˜ ๋ฉ”ํƒ€์ •์˜๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ์›์‹œ ํ˜•ํƒœ๋กœ ์ €์žฅ๋œ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ

   ์™ธ๋ถ€ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•ด๋„ ํ…Œ์ด๋ธ” ๋ฉ”ํƒ€ ์ •์˜๋งŒ ์‚ญ์ œ๋˜๊ณ  ๋ฐ์ดํ„ฐ๋Š” ์œ ์ง€๋จ.

   ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ํ•˜์ด๋ธŒ ์™ธ๋ถ€์— ์ ์žฌ ๋˜์–ด์žˆ๊ฑฐ๋‚˜ ํ…Œ์ด๋ธ”์ด ์‚ญ์ œ๋˜๋”๋ผ๋„ ์›๋ณธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚จ์•„ ์žˆ์–ด์•ผํ•  ๋•Œ ์‚ฌ์šฉ

3.csv ํŒŒ์ผ์„ ํ•˜์ด๋ธŒ ํ…Œ์ด๋ธ”๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ

  1.names.csv ์„ HDFS์— ๋ณต์‚ฌ

  2. hdfs dfsmkdir names

  3. hdfs dfs –put names.csv names

  4. hive ์‹คํ–‰ ํ›„ ์ฟผ๋ฆฌ๋กœ ํ…Œ์ด๋ธ” ์ƒ์„ฑ  location ‘/directory’ ๊ตฌ๋ฌธ์€ ํ…Œ์ด๋ธ”์ด ์‚ฌ์šฉํ•  ์ž…๋ ฅ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ด๋‹ค.

  5. select * from ~ ๋ฐ์ดํ„ฐ ํ™•์ธํ•˜๊ธฐ

  6. stored as orc > ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”

  7. ๋ฐ์ดํ„ฐ ํ˜•์‹ ํ…์ŠคํŠธ ํŒŒ์ผ, ์‹œํ€€์Šค ํŒŒ์ผ(k-v์Œ), RC ํŒŒ์ผ, ORC ํ˜•์‹, Parquet ํ˜•์‹

 

์™ธ๋ถ€ ํ…Œ์ด๋ธ” ์ƒ์„ฑ

suhdfs

hdfs dfsmkdir /Smartcar

hdfs dfs –put /txtfile.txt /Smartcar

hdfs dfschown –R hive /Smartcar

hdfs dfschmod –R 777 /Smartcar

su – hive

hive

create external table (~) ~ location /Smartcar;

๋‚ด๋ถ€ ํ…Œ์ด๋ธ” ์ƒ์„ฑ

create table (~) ~ location /Smartcar;

์™ธ๋ถ€ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”๋กœ ๋ณต์‚ฌ

insert overwrite table SmartCar_in

select * from SmartCar_ex;

๋‚ด๋ถ€ ํ…Œ์ด๋ธ” ๋””๋ ‰ํ„ฐ๋ฆฌ ์ƒ์„ฑํ™•์ธ

hdfs dfs –ls /Smartcar

/Smartcar/base_0000001/bucket_00000/bucket_00000

 

ํ•˜์ด๋ธŒ๋Š” SQL๊ณผ ์œ ์‚ฌํ•ด์„œ

๊ธฐ์กด์— SQL์„ ๊ณต๋ถ€ํ–ˆ๋‹ค๋ฉด ์–ด๋ ต์ง€์•Š๋‹ค.

728x90
๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

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

 

Index of /hive/hive-3.1.2

 

dlcdn.apache.org

apache mirror ์‚ฌ์ดํŠธ์—์„œ ์›ํ•˜๋Š” hive ๋ฒ„์ „์˜ binary ํด๋”๋ฅผ ๋‹ค์šด๋ฐ›๋Š”๋‹ค. 

 

์‚ฌ์ „์ž‘์—… - Hadoop Path ์„ค์ • ๋˜์–ด์žˆ์–ด์•ผํ•จ

export HADOOP_HOME=<hadoop-install-dir>

 

์••์ถ•ํ•ด์ œ

wget https://dlcdn.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
tar xvzf apache-hive-3.1.2-bin.tar.gz

 

ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •

Hive ํ™ˆ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผํ•œ๋‹ค.

.bash_prifile์—์„œ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ์‹๋ณด๋‹จ /etc/profile.d/์— ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค„๊ฒƒ

vi /etc/profile.d/hive_home.sh

export HIVE_HOME=/opt/apache-hive-3.1.2-bin

export PATH=$PATH:$HIVE_HOME/bin

 

ํ•ด๋‹น ํŒŒ์ผ ์ €์žฅ ํ›„ ํ•œ๋ฒˆ ์‹คํ–‰ํ•ด์ค€๋‹ค.

chmod +x hive_home.sh
./hive_home.sh
source hive_home.sh

echo $HIVE_HOME

ํ•ด๋‹น ๋ช…๋ น์–ด ๊ฒฐ๊ณผ๋กœ ์ •์ƒ์ ์œผ๋กœ ๋ฐ˜์˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธ์ž‘์—… ํ•„์š”ํ•˜๋‹ค.

 

 

Hadoop์— tmp, hive warehouse ๋””๋ ‰ํ„ฐ๋ฆฌ ์ƒ์„ฑ

hadoop fs -mkdir       /tmp
hadoop fs -mkdir       /user/hive/warehouse
hadoop fs -chmod g+w   /tmp
hadoop fs -chmod g+w   /user/hive/warehouse

 

Hive CLI ์‹คํ–‰

 $HIVE_HOME/bin/hive
 $HIVE_HOME/bin/schematool -dbType <db type> -initSchema

dbtype ์€ ๊ธฐ์กด์— ์„ค์น˜๋˜์–ด์žˆ๋Š” DB๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ•ด๋‹น ๋ถ€๋ถ„์— mysql, oracle, postgres ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋˜๊ณ ,

ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•˜๋ฉด derby๋ผ๋Š” hive ๋‚ด์žฅ DB๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

HIVE Config ์„ค์ •

cp /conf/hive-default.xml /conf/hive-site.xml

ํ•ด๋‹น ํ…œํ”Œ๋ฆฟ์„ hive-site๋กœ ๋ณต์‚ฌ

 

hive-site.xml ๋ณ€๊ฒฝ - postgresql DB ์‚ฌ์šฉ์‹œ

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:postgresql://mypostgresql.testabcd1111.us-west-2.rds.amazonaws.com:5432/mypgdb</value>
    <description>PostgreSQL JDBC driver connection URL</description>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>org.postgresql.Driver</value>
    <description>PostgreSQL metastore driver class name</description>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>database_username</value>
    <description>the username for the DB instance</description>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>database_password</value>
    <description>the password for the DB instance</description>
  </property>
728x90
๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

RDBMS

์Šคํ‚ค๋งˆ์— ์˜์กด์„ฑ ๊ฐ•ํ•จ ์œผ๋กœ

์ž‘์—…์ด ์ง„ํ–‰ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Œ

 - ์Šคํ‚ค๋งˆ๊ฐ€ ์ œ๋Œ€๋กœ ์ •์˜๋˜์–ด ์žˆ์ง€์•Š๊ฑฐ๋‚˜

 - ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•œ ์งˆ์˜๊ฐ€ ์Šคํ‚ค๋งˆ์— ๋งž์ง€ ์•Š์„ ๊ฒฝ์šฐ

๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ๋ถ€์ ์ ˆํ•จ ๋งŽ์€ ์‹œ๊ฐ„ ์†Œ์š”๋จ

 

HIVE

๋ฐ์ดํ„ฐ์›จ์–ด ํ•˜์šฐ์ง• ์ธํ”„๋ผ

๋ฐ์ดํ„ฐ ์ €์žฅ, ์ฒ˜๋ฆฌ์— ์Šคํ‚ค๋งˆ ๊ฒ€์ฆ ์—†์Œ

์Šคํ‚ค๋งˆ์— ๋งž์ง€ ์•Š๋Š” ์ฟผ๋ฆฌ๋Š” null ๋ฆฌํ„ด

 

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

HIVE Architecture

-HIVE Client

-JDBC ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ง€์› ,

-Thrift ๊ธฐ๋ฐ˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ง€์›(์„œ๋กœ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต์‹  ํ”„๋กœํ† ์ฝœ),

-ODBC๊ธฐ๋ฐ˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ง€์›

-HIVE Server

-HIVE ์„œ๋ฒ„ 

-CLI Command line interface : ์œ ์ €๊ฐ€ HIVE ์ฟผ๋ฆฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค

-Hive Web Interface : ์œ ์ €๊ฐ€ HIVE ์ฟผ๋ฆฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์ธํ„ฐํŽ˜์ด์Šค

-Driver : HIVE์— job์ด ์™”์„ ๋•Œ ์ƒ์„ฑํ•˜๊ณ  ํ–‰๋™ํ•จ, meta-store์— ๋ฌผ์–ด ๋ด„

-meta-store : ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ์ €์žฅ๊ณต๊ฐ„(ํ…Œ์ด๋ธ”์ •๋ณด ๋“ฑ)

-Apache Derby Database  : ์‹ค์ œ ํ…Œ์ด๋ธ”์˜ ๋‚ด์šฉ๋ฌผ์ธ ๋ฐ์ดํ„ฐ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ(HDFS๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•จ)

HIVE ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

Hadoop ์ƒ์— ๊ตฌ์ถ•๋œ ์ •ํ˜•ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ฟผ๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ

์Šคํ† ๋ฆฌ์ง€๋กœ HDFS์‚ฌ์šฉํ•จ

OLTP์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Œ

๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๋ฐฉ์‹

ํ…Œ์ด๋ธ”์— ํ•ด๋‹น ๋˜๋Š” ์š”์†Œ๋ฅผ HDFS ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋งตํ•‘

ํŒŒํ‹ฐ์…˜ ํ…Œ์ด๋ธ” ์š”์†Œ๋ฅผ ํŒŒํ‹ฐ์…”๋‹ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ HDFS ์„œ๋ธŒ ๋””๋ ‰ํ„ฐ๋ฆฌ

๋ฐ์ดํ„ฐ๋Š” HDFS์˜ ํŒŒ์ผ๋กœ ์ƒ๊ฐํ•˜์ž.

 

HIVE ๋ฉ”ํƒ€์Šคํ† ์–ด

ํ…Œ์ด๋ธ”์˜ ๋ฉ”ํƒ€์ •๋ณด๋ฅผ ์ €์žฅํ•จ

์นผ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋“ฑ ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ ์ •๋ณด๋“ค์€ ๋ฉ”ํƒ€์ •๋ณด๋กœ ๊ฐ„์ฃผ

ํ•˜์ด๋ธŒ ํ…Œ์ด๋ธ”์€ ๋ฉ”ํƒ€์Šคํ† ์–ด์— ์ €์žฅ๋œ ์Šคํ‚ค๋งˆ๋กœ ๊ตฌ์„ฑ๋˜๊ณ  ๋ฐ์ดํ„ฐ๋Š” HDFS์— ์ €์žฅ๋จ

 

ํ•˜์ด๋ธŒ ์ฟผ๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค

-ํ•˜์ด๋ธŒ ํด๋ผ์ด์–ธํŠธ(์˜ˆ์ „)

  hive ์ž…๋ ฅ

  ํ•˜์ด๋ธŒ ๋™์ž‘ ๊ณผ์ • 1. ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉ์ž์˜ HiveQL ๋ช…๋ น์–ด ํ•ด์„ํ•˜์—ฌ ๋งต๋ฆฌ๋“€์Šค ์ž‘์—…์œผ๋กœ ๋ณ€ํ™˜

  2. ๋ฉ”ํƒ€์Šคํ† ์–ด์—์„œ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ ์œ„์น˜๋ฅผ ์–ป์Œ

  3. ์‹ค์ œ ๋ฐ์ดํ„ฐ ์งˆ์˜ ์ „๋‹ฌ

-beeline ํด๋ผ์ด์–ธํŠธ(์ตœ์‹ )

 

ํ•˜์ด๋ธŒ์™€ Hcatalog

-์—์ฝ”์‹œ์Šคํ…œ์ด ๋ฉ”ํƒ€์Šคํ† ์–ด์— ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘๊ฐ„๊ณ ๋ฆฌ ์—ญํ• 

-๋ฉ”ํƒ€์Šคํ† ์–ด ๊ด€๋ฆฌ

 

HIVE ํ…Œ์ด๋ธ” ๊ด€๋ฆฌ

HIVE ํ…Œ์ด๋ธ”

1. ๋ฐ์ดํ„ฐ๋ฅผ HIVE ํ…Œ์ด๋ธ”๋กœ ๊ฐ€์ ธ์˜ค๋ฉด?

HiveQL, ํ”ผ๊ทธ, ์ŠคํŒŒํฌ ๋“ฑ์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌ > ์ƒํ˜ธ์šด์˜ ๋ณด์žฅ

2. HIVE๊ฐ€ ์ง€์›ํ•˜๋Š” ํ…Œ์ด๋ธ” ์ข…๋ฅ˜

    - ๋‚ด๋ถ€ ํ…Œ์ด๋ธ” : HIVE๊ฐ€ ๊ด€๋ฆฌ, HIVE/ ๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์Šค์— ์ €์žฅ, ๋‚ด๋ถ€ํ…Œ์ด๋ธ” ์‚ญ์ œ ์‹œ ๋ฉ”ํƒ€์ •์˜์™€ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ์‚ญ์ œ๋จ,

   ORC๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ €์žฅ๋˜์–ด ๋น„๊ต์  ๋น ๋ฅธ ์„ฑ๋Šฅ

    - ์™ธ๋ถ€ ํ…Œ์ด๋ธ” : ํ•˜์ด๋ธŒ๊ฐ€ ์ง์ ‘ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์Œ,

   ํ•˜์ด๋ธŒ์˜ ๋ฉ”ํƒ€์ •์˜๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ์›์‹œ ํ˜•ํƒœ๋กœ ์ €์žฅ๋œ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ

   ์™ธ๋ถ€ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•ด๋„ ํ…Œ์ด๋ธ” ๋ฉ”ํƒ€ ์ •์˜๋งŒ ์‚ญ์ œ๋˜๊ณ  ๋ฐ์ดํ„ฐ๋Š” ์œ ์ง€๋จ.

   ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ํ•˜์ด๋ธŒ ์™ธ๋ถ€์— ์ ์žฌ ๋˜์–ด์žˆ๊ฑฐ๋‚˜ ํ…Œ์ด๋ธ”์ด ์‚ญ์ œ๋˜๋”๋ผ๋„ ์›๋ณธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚จ์•„ ์žˆ์–ด์•ผํ•  ๋•Œ ์‚ฌ์šฉ

3.csv ํŒŒ์ผ์„ ํ•˜์ด๋ธŒ ํ…Œ์ด๋ธ”๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ

  1.names.csv ์„ HDFS์— ๋ณต์‚ฌ

  2. hdfs dfsmkdir names

  3. hdfs dfs –put names.csv names

  4. hive ์‹คํ–‰ ํ›„ ์ฟผ๋ฆฌ๋กœ ํ…Œ์ด๋ธ” ์ƒ์„ฑ  location ‘/directory’ ๊ตฌ๋ฌธ์€ ํ…Œ์ด๋ธ”์ด ์‚ฌ์šฉํ•  ์ž…๋ ฅ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ด๋‹ค.

  5. select * from ~ ๋ฐ์ดํ„ฐ ํ™•์ธํ•˜๊ธฐ

  6. stored as orc > ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”

  7. ๋ฐ์ดํ„ฐ ํ˜•์‹ ํ…์ŠคํŠธ ํŒŒ์ผ, ์‹œํ€€์Šค ํŒŒ์ผ(k-v์Œ), RC ํŒŒ์ผ, ORC ํ˜•์‹, Parquet ํ˜•์‹

 

์™ธ๋ถ€ ํ…Œ์ด๋ธ” ์ƒ์„ฑ

suhdfs

hdfs dfsmkdir /Smartcar

hdfs dfs –put /txtfile.txt /Smartcar

hdfs dfschown –R hive /Smartcar

hdfs dfschmod –R 777 /Smartcar

su – hive

hive

create external table (~) ~ location /Smartcar;

๋‚ด๋ถ€ ํ…Œ์ด๋ธ” ์ƒ์„ฑ

create table (~) ~ location /Smartcar;

์™ธ๋ถ€ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”๋กœ ๋ณต์‚ฌ

insert overwrite table SmartCar_in

select * from SmartCar_ex;

๋‚ด๋ถ€ ํ…Œ์ด๋ธ” ๋””๋ ‰ํ„ฐ๋ฆฌ ์ƒ์„ฑํ™•์ธ

hdfs dfs –ls /Smartcar

/Smartcar/base_0000001/bucket_00000/bucket_00000

728x90
๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

ํ•˜๋‘ก์— ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ ๋น…๋ฐ์ดํ„ฐ๊ฐ€ ๋ญ”์ง€ ์•Œ์•„๋ณด๋ ค ํ•œ๋‹ค.

 

๋น…๋ฐ์ดํ„ฐ๋ž€ ? 

๊ธฐ์กด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ๋„๊ตฌ ๋ฐฉ๋ฒ•์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ๊ทœ๋ชจ๋กœ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

๊ธฐ์กด์˜ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋Š” OLTP์„ฑ์œผ๋กœ ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๋‹ค.

 

๋น…๋ฐ์ดํ„ฐ๋Š” ์ •ํ™•์„ฑ์— ์ดˆ์ ์„ ๋‘๊ธฐ๋ณด๋‹ค๋Š” ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ์— ์ดˆ์ ์„ ๋‘๊ณ  ์žˆ๋‹ค.

 

๋”ฐ๋ผ์„œ pk, update๋“ฑ ์•ˆ๋˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ๋กœ putํ•ด์•ผ ํ•œ๋‹ค.

 

๋น…๋ฐ์ดํ„ฐ 3V

  • Volume 
    • ๋Œ€๊ทœ๋ชจ์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. (๊ธฐ์—…๋งˆ๋‹ค ์ฐจ์ด๋Š” ์žˆ์ง€๋งŒ ์ˆ˜์‹ญํ…Œ๋ผ๋ฐ”์ดํŠธ๋ถ€ํ„ฐ ์ˆ˜์‹ญํŽ˜ํƒ€๋ฐ์ดํ„ฐ ์ด์ƒ)
  • Variety
    • ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฐฉ์‹์ด ๋‹ค์–‘ํ•˜๋‹ค.
    • ์ •ํ˜•   : ์˜๋ฏธ ํŒŒ์•…ํ•˜๊ธฐ ์‰ฌ์šฐ๋ฉฐ ๊ทœ์น™์ ์ธ ๋ฐ์ดํ„ฐ
    • ๋ฐ˜์ •ํ˜•: HTML, XML,JSON ํ˜•ํƒœ๋กœ ํ•œ ํ…์ŠคํŠธ์— column, value ๊ฐ™์ด
    • ๋น„์ •ํ˜•:ํ…์ŠคํŠธ, ์Œ์„ฑ, ์˜์ƒ ๋“ฑ์œผ๋กœ ๊ทœ์น™์ ์ด์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์ด๋‹ค. ์˜ˆ์‹œ๋กœ ๋ฉ”์‹ ์ €๋กœ ์ฃผ๊ณ  ๋ฐ›์€ ๋‚ด์šฉ, ํ†ตํ™”๋‚ด์šฉ ๋“ฑ์ด ์žˆ๋‹ค.
  • Velocity
    • ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ด์—ฌ์•ผ ํ•œ๋‹ค

ํ•˜๋‘ก ์ด๋ž€?

๋Œ€๋Ÿ‰์˜ ์ž๋ฃŒ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํฐ ์ปดํ“จํ„ฐ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋™์ž‘ํ•˜๋Š” ๋ถ„์‚ฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ง€์›ํ•œ๋‹ค.

์™œ ํ•˜๋‘ก?

๋ผ์ด์„ ์Šค ๋น„์šฉ ๋“ค์ง€ ์•Š์Œ > ์ €๋ ดํ•œ ๊ตฌ์ถ• ๋น„์šฉ

๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ๋น ๋ฅธ ์ฒ˜๋ฆฌ

๋ฐ์ดํ„ฐ์˜ ๋ณต์ œ ๋ณธ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ๋ณต๊ตฌ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

HDFS + MapReduce ๊ตฌ์กฐ

 

Hadoop Data File System

ํ•˜๋‘ก์€ ์„œ๋ฒ„๋ฅผ ๋‘๊ฐœ๋ฅผ ์“ด๋‹ค.(๋ถ„์‚ฐ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•˜์—ฌ - ์„œ๋ฒ„ ๊ณผ๋ถ€ํ™” ๋ฐฉ์ง€, ๋ฐ์ดํ„ฐ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณต์‚ฌํ•˜์—ฌ ์ €์žฅํ•˜๊ธฐ์œ„ํ•ด)

์„œ๋ฒ„๋ฅผ ์ด์ค‘ํ™” ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ ๊ฐ„๋‹จํ•˜๊ฒŒ Master-Slave๋ฐฉ์‹์œผ๋กœ๋งŒ ์ดํ•ดํ–ˆ๋‹ค.

Master ์„œ๋ฒ„์—๋Š” "๋„ค์ž„๋…ธ๋“œ"๊ฐ€ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ, ๋„ค์ž„๋…ธ๋“œ๋ž€ ๋ฐ์ดํ„ฐ์˜ Meta Data๋ฅผ ๊ฐ€์ง„๋‹ค.

Meta Data - ๋ฐ์ดํ„ฐ์˜ FSImage (namespace์ •๋ณด, data node๊ฐ„์˜ block ๋งคํ•‘ ์ •๋ณด),

         Editslog (๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์ •๋ณด)๋ฅผ ๊ฐ€์ง

๋ฐ์ดํ„ฐ๋…ธ๋“œ - ๋Š” 3-copy๋ฐฉ์‹์œผ๋กœ master์— ํ•œ ๊ฐœ, slave์„œ๋ฒ„์— 2๊ฐœ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๊ณ  ์‹ค์ œ ํŒŒ์ผ์ด๋‹ค.

โ€‹

HDFS์˜ ์“ฐ๊ธฐ

-APP์—์„œ HDFS CLient์— ๋ฐ์ดํ„ฐ ์“ฐ๊ธฐ ์ •๋ณด ์š”์ฒญํ•จ.

client๊ฐ€ name node์—๊ฒŒ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ ์ฃผ์†Œ 3๊ฐœ๋ฅผ ์คŒ.

๊ทธ์ค‘ ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๋…ธ๋“œ ์ฃผ์†Œ์— ๋ฐ์ดํ„ฐ๋ฅผ 3๊ตฐ๋ฐ ๋ถ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•จ

HDFS์˜ ์ฝ๊ธฐ

-App์—์„œ HDFS Client์— ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ ์ •๋ณด ์š”์ฒญํ•จ.

client๊ฐ€ name node์—๊ฒŒ ๋ฉ”ํƒ€์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๊ณ 

 master, slave์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ ์ฃผ์†Œ๋ฅผ ์ œ๊ณตํ•˜์—ฌ

๊ทธ ์ค‘ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ฃผ์†Œ๋กœ ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

 

MapReduce

๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜๋ฉด ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ

Map๊ณผ Reduce๊ฐ€ ์žˆ๋‹ค

Map์˜ ์—ญํ• 

์›์‹œ๋ฐ์ดํ„ฐ๋ฅผ 64MB๋กœ ์ž๋ฅด๊ณ 

splitํ•˜์—ฌ key/value ์Œ์œผ๋กœ ์ž„์‹œ์ ์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค.

์ž„์‹œ์ ์œผ๋กœ ๋‚˜๋ˆ” >> ๋””์Šคํฌ ์ƒ

๋‚˜๋ˆˆ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ์ƒ์—์„œ

 ํŒŒํ‹ฐ์…˜ ํ•จ์ˆ˜๋กœ ํŒŒํ‹ฐ์…˜์˜์—ญ์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.

Reduce ์—ญํ• 

๊ตฌ๋ถ„ํ•œ ์ค‘๊ฐ„ํŒŒ์ผ์„ Reduce๋กœ ํ•ฉ์ณ key์— ์˜ํ•ด sort๋˜๊ณ  reduce ํ•จ์ˆ˜๋กœ ๊ฒฐ๊ณผ๋ฌผ์„ ๋””์Šคํฌ์— ์ €์žฅํ•œ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

+ Recent posts