본문 바로가기

Hadoop Ecosystem/Hive

Apache Hive 실습(WSL2 Ubuntu 환경)

Hive 설치가 안된 분들은 이전 포스팅 참조

https://kind-door.tistory.com/30

 

Apache Hive 설치(WSL2 Ubuntu 환경)

Hive 실습에 앞서 Hadoop과 Mysql 설치가 필요 (설치하지 않았다면 이전 포스팅 참조)https://kind-door.tistory.com/31 Mysql 설치 (WSL2 Ubuntu 환경)Hive를 위해 WSL 환경에서 Mysql 설치  1. 설치sudo apt-get updatesudo ap

kind-door.tistory.com

 

 

 

 

데이터베이스 생성 및 조회, 입력 등 간단한 쿼리를 실습해보자

 

1. 테이블 생성

# dept 테이블 생성  
CREATE TABLE dept (
    deptno  INT,
    dname   STRING,
    loc     STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';

# emp 테이블 생성
CREATE TABLE emp (
    empno       INT,
    ename       STRING,
    job         STRING,
    mgr         INT,
    hiredate    STRING,
    sal         INT,
    comm        INT,
    deptno      INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';

# salgrade 테이블 생성
CREATE TABLE salgrade (
    GRADE INT,
    LOSAL INT,
    HISAL INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';


# 테이블 생성 확인
show tables;

 

 

2. 테이블에 데이터 옮기기

https://cafe.daum.net/oracleoracle/SUR7/93

 

emp.csv 외 기타 csv

dept.csv emp.csv salgrade.csv

cafe.daum.net

다음 카페에서 실습에 필요한 csv 파일을 다운 후 /home/user/hive/data 위치에 업로드

 

# 헤더 삭제
sed -e '1d' /home/user/hive/data/dept.csv > /home/user/hive/data/dept_header.csv
mv /home/user/hive/data/dept_header.csv /home/user/hive/data/dept.csv

sed -e '1d' /home/user/hive/data/emp.csv > /home/user/hive/data/emp_header.csv
mv /home/user/hive/data/emp_header.csv /home/user/hive/data/emp.csv

sed -e '1d' /home/user/hive/data/salgrade.csv > /home/user/hive/data/salgrade_header.csv
mv /home/user/hive/data/salgrade_header.csv /home/user/hive/data/salgrade.csv

 

Hive는 csv 파일의 헤더를 가져오지 못하기에 헤더(1번째 줄) 제거 후 테이블 입력

# 로컬환경 csv 파일 테이블에 옮기기
load data local inpath '/home/user/hive/data/dept.csv' overwrite into table dept;
load data local inpath '/home/user/hive/data/emp.csv' overwrite into table emp;
load data local inpath '/home/user/hive/data/salgrade.csv' overwrite into table salgrade;

# 테이블 이름 포함하지 않고 열 이름만 출력
SET hive.cli.print.header=true;
SET hive.resultset.use.unique.column.names=false;

 

 

3. 확인

# emp 테이블 조회
select * from emp;

# 간단한 쿼리 조회
select e.ename, d.deptno, d.dname
from emp e, dept d
where e.deptno = d.deptno
and e.job like '%CLERK%';


맵리듀스 작업으로 변환되어 쿼리 실행되는 모습 확인

'Hadoop Ecosystem > Hive' 카테고리의 다른 글

Apache Hive 설치(WSL2 Ubuntu 환경)  (0) 2024.06.18