본문 바로가기
BigData/Hive

[Hive] virtual box linux [ubuntu 18.04]에 Hive Metastore Mysql로 설정하기(변경하기)

by 스파이디웹 2021. 6. 26.
728x90

이번 포스트에는

저번에 설치한 Hive의 MetaStore Embedded MetaStore인 derbyDB에서

이번포스트에는 local MetaStore인 MySQL,

다음 포스트에는 PostgreSQL로 각각 변경해보고 확인해보겠습니다.

 

vritualbox 설치,ubuntu설치, ssh통신, hadoop 설치가 완료 되지 않으신 분은 아래의 URL을 참고하여 완료해 주세요.


1.virtualbox 설치 및 ubuntu 설치

spidyweb.tistory.com/212?category=842040

 

[Hadoop] virtual box linux [ubuntu 18.04]에 하둡 설치,다운로드 1.virtualbox에 ubuntu 설치하기

1.virtual box를 다운로드한다. www.virtualbox.org/wiki/Downloads Downloads – Oracle VM VirtualBox Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox..

spidyweb.tistory.com

 

2.power shell과 ssh통신

spidyweb.tistory.com/213

 

[Hadoop] virtual box linux [ubuntu 18.04]에 하둡 설치,다운로드 2.ubuntu terminal과 SSH 통신

1.ubuntu에 openssh-server 설치 2.ssh 시작하기 3.포트포워딩 설정하기 virtualbox 설정 - 네트워크 - 포트포워딩 + 클릭 - ubuntu를 만들게되면 보통 ip가 10.0.2.15로 할당됩니다. 여기서 중요한건 게스트ip..

spidyweb.tistory.com

 

3.hadoop 설치

spidyweb.tistory.com/214

 

[Hadoop] virtual box linux [ubuntu 18.04]에 하둡 설치,다운로드 3.ubuntu 에 hadoop(하둡) 다운로드,설치

이번 포스트에는 virtualbox에 하둡을 설치하겠습니다. virtualbox에 ubuntu를 설치하지 못하신 분이나, windows의 powershell로 ssh통신을 할 줄 모르시는 분이면 아래URL의 포스트부터 선행하여 주세요! spidyw

spidyweb.tistory.com

 

4.hive 설치

https://spidyweb.tistory.com/215

 

[Hive] virtual box linux [ubuntu 18.04]에 하둡 설치,다운로드 4.ubuntu 에 Hive(하이브) 다운로드,

이번 포스트에는 Hive를 설치해 보겠습니다. vritualbox 설치,ubuntu설치, ssh통신, hadoop 설치가 완료 되지 않으신 분은 아래의 URL을 참고하여 완료해 주세요. 1.virtualbox 설치 및 ubuntu 설치 spidyweb.tist..

spidyweb.tistory.com

 

그리고 Hive의 metastore가 뭔지 잘 모르시는 분은 아래의 링크에서 개념을 보고 와주세요.

https://spidyweb.tistory.com/231

 

[Hive] Hive MetaStore(하이브 메타스토어)란? hive metastore 유형, metastore 파라미터

1.Hive metastore(메타스토어)란 하이브는 테이블과 파티션과 관련된 메타정보를 모두 메타스토어에 저장합니다. 하이브는 기존의 RDBMS와 달리 데이터를 insert후 스키마를 입히게 되는데, 그때 스키

spidyweb.tistory.com

Hive metastore MySQL 로 변경하기

https://spidyweb.tistory.com/232

 

[Hive] virtual box linux [ubuntu 18.04]에 Hive Metastore Mysql로 설정하기(변경하기)

이번 포스트에는 저번에 설치한 Hive의 MetaStore Embedded MetaStore인 derbyDB에서 이번포스트에는 local MetaStore인 MySQL, 다음 포스트에는 PostgreSQL로 각각 변경해보고 확인해보겠습니다. vritualbox 설치..

spidyweb.tistory.com


1. 현재 metastoreDB derbyDB 확인하기

hive-site.xml에서 현재 embedded metastore인 derby를 확인 하실 수 있습니다.


2. 바꾸게 될 MetaStoreDB local metastore 파라미터 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://[IP]:[port]/[DB NAME]</value>
    <description>username to use against metastore database</description>
</property>
 
<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>org.mariadb.jdbc.Driver</value>
    <description>username to use against metastore database</description>
</property>
 
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>User</value>
    <description>username to use against metastore database</description>
</property>
 
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>Password</value>
    <description>password to use against metastore database</description>
</property>
cs

3.MySQL java connector 설치 및 소프트링크만들기, 유저 권한부여

*MySQL이 설치 안되신 분은 아래의 링크를 참조해주세요.

https://spidyweb.tistory.com/233

 

[Linux] ubuntu 18.04에 MySQL, PostgreSQL 설치하기

1.MySQL 설치 1) apt-get update 2) MySQL server 설치 sudo apt-get install-mysql server 3) mysql 실행하기 sudo systemctl start mysql *시작할때 자동으로 mysql실행하기 sudo systemctl enable mysql 4) m..

spidyweb.tistory.com

 

1) MySQL java connector 설치

1
sudo apt-get install libmysql-java
cs

 

2) MySQL java 소프트링크만들기

1
ln -/usr/share/java/mysql-connector-java.jar $HIVE_HOME/lib/mysql-connector-java.jar
cs

3) my sql prompt 접속후 root 계정에 모든 권한 부여하기

1
sudo systemctl start mysql #mysql 실행
cs
 
1
sudo /usr/bin/mysql -u root -#mysql프롬프트 접속
cs
1
2
3
4
5
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root';
 
FLUSH PRIVILEGES;
 
--root계정에 모든 권한 부여
cs


4.hive-site.xml 변경하기

1) hive-site.xml 가 있는 /apache-hive-3.1.2-bin/conf에 가서 nano hive-site.xml로 편집합니다.

1
2
cd apache-hive-3.1.2-bin/conf
nano hive-site.xml
cs

2)위에 2번에서 나온 4가지 파라미터들을 ctrl+w로 찾아갑니다.

<property>

    <name>javax.jdo.option.ConnectionURL</name>

    <value>jdbc:mysql://localhost/hive?createDatabaseIfNotExist=true&amp;serverTimezone=Asia/Seoul&amp;useSSL=false</value>

    <description>username to use against metastore database</description>

</property>

*데이터베이스가 hive라는 이름으로 없을 시 생성하고, 서버timezone을 아시아/서울로 설정, SSL사용x로 설정

 

<property>

    <name>javax.jdo.option.ConnectionDriverName</name>

    <value>com.mysql.jdbc.Driver</value>

    <description>username to use against metastore database</description>

</property>

 

<property>

    <name>javax.jdo.option.ConnectionUserName</name>

    <value>root</value>

    <description>username to use against metastore database</description>

</property>

 

<property>

    <name>javax.jdo.option.ConnectionPassword</name>

    <value>root</value>

    <description>password to use against metastore database</description>

</property>

 

ctrl+x로 저장하고 나옵니다.


5.metastore mysql설정된 것 확인

1)start-all.sh로 하둡환경 실행

2) schematool -initSchema -dbType mysql을 하려니 sudo를 이용해 mysql에 접속하다 보니 접근권한 문제가 생겼습니다.

sudo mysql -u root -p로 mysql 프롬프트에 접속

1
2
3
4
5
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호';
 
FLUSH PRIVILEGES;
 
--sudo 없이 mysql에 접속 할 수 있게 변경
cs

+ mysql에 hive database를 createDatabaseIfNotExists=true로 생성을 못하는 것 같아서 mysql에서 직접 hive database를 create 해주었습니다.

3)hive 접속

4)테스트 테이블 생성

 

CREATE TABLE airline_delay(Year INT, Month INT,
DayofMont INT, DayOfWeek INT,
 DepTime INT, CRSDepTime INT,
 ArrTime INT, CRSArrTime INT,
 UniqueCarrier STRING, FlightNum INT,
 TaiNum STRING, ActualElapsedTime INT,
CRSElapsedTime INT, AirTime INT,
 ArrDelay INT, DepDelay INT,
 Origin STRING, Dest STRING,
 Distance INT, TaxiIn INT,
 TaxiOut INT, Cancelled INT,
 CancellationCode STRING
 COMMENT 'A=carrier, B=weather, C=NAS, D=security',
 Diverted INT COMMENT '1=yes, 0=no',
CarrierDelay STRING, WeatherDelay STRING,
 NASDelay STRING, SecurityDelay STRING,
 LateAircraftDelay STRING)
 COMMENT 'The data consitsts of filght arrival and departure details for all commercial flights within the USA, froom October 1987 to April 2008'
 PARTITIONED BY (delayYear INT)
 ROW FORMAT DELIMITED
 FIELDS TERMINATED BY ','
 LINES TERMINATED BY '\n'
 STORED AS TEXTFILE;

 

이걸로 hive metastore를 mysql로 변경하기 및 table생성을 완료했습니다.

 

728x90

댓글