일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- aws
- Jenkins
- 클러스터
- redash
- gradle
- spring
- fastcampus
- 젠킨스
- 레디스
- 예제
- SpringBoot
- vue
- java
- Docker
- 로그인
- Zeppelin
- Cluster
- login
- Redis
- ec2
- 설정
- hive
- Mac
- EMR
- 머신러닝
- 간단
- 자동
- config
- Kafka
- 자바
- Today
- Total
코알못
[AWS] EMR(hadoop) - Glue 메타 스토어 (HIVE, SPARK) 본문
클러스터 생성시 Glue 메타 스토어를 Hive, spark 서비스의 경우 사용하도록 지정 할 수 있는데 선택 했을시와 선택 안했을시 차이를 보려고 한다.
클러스터를 아래와 같이 구성한다.
구분 | 지정 |
1번 클러스터 | hive 만 glue 메타 스토어 지정 |
2번 클러스터 | spark 만 glue 메타 스토어 지정 |
3번 클러스터 | hive, spark glue 메타 스토어 지정 |
4번 클러스터 | 모두 glue 메타 스토어 지정하지 않음 |
결론 먼저 공개하면 아래와 같다.
구분\클러스터명 | 1번 클러스터 | 2번 클러스터 | 3번 클러스터 | 4번 클러스터 |
HIVE | glue 데이터 | 로컬 mysql 데이터 | glue 데이터 | 로컬 mysql 데이터 |
SPARK | 오류 (하이브 메타 데이터를 바라보나 스파크는 glue 사용 설정을 하지 않아 connect 오류 발생/ hive 는 glue 메타 스토어를 사용하고, spark 에서 하이브 메타 스토어를 사용한다면 glue 사용 선택 해줘야 한다.) |
glue 데이터 | glue 데이터 | 로컬 mysql 데이터(하이브 메타 데이터를 바라봄) |
아래는 테스트를 위해 각각 서비스에 접속하기 위한 명령어 및 테스트 결과 이다.
// hive 접속
$ hive
// spark sql 접속
$ spark-sql
1번 클러스터, 3번 클러스터의 경우 하이브를 이용하여 glue에 저장된 메타 데이터 정상적으로 이용이 가능하다.
2번 4번 클러스터의 경우 마스터 서버에 mysql이 설치 되고 해당 mysql에 메타 스토어가 저장 되고 읽어 온다. (참고사항 참조)
뒤에 스파크 테스트를 위해 4번 클러스터에 테이블 및 데이터를 생성한다.
1번 클러스터의 경우 스파크 접속시 connect fail 오류 발생하며, 3번 클러스터의 경우 스파크로 glue에 저장된 메타 데이터 정상적으로 이용 할 수 있다.
2번 클러스터의 경우 스파크로 glue에 저장된 메타 데이터 정상적으로 이용 할 수 있다.
4번 클러스터의 경우 로컬 maria db에 있는 hive 메타 스토어의 데이터를 정상적으로 가져온다. 설정하지 않아도 클러스터 구성시 spark 에서 sql 접속시 hive matastore 연결 되도록 기본 설정 되어있다. (참고사항 참조)
<참고 사항>
1. 하이브 메타 데이터 저장소 확인 방법 - 설정값 확인
$ cat /etc/hive/conf/hive-site.xml
<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>hive</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>abcd1234</value>
<description>password to use against metastore database</description>
</property>
mariadb 를 사용하며 id/pw 도 기재되어 있으니 접속해 본다.
$ sudo mysql -u hive -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 142
Server version: 5.5.68-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| hive |
| hue |
| mysql |
| performance_schema |
+--------------------+
5 rows in set (0.00 sec)
MariaDB [(none)]>
hue 랑 hive 가 저장되어 있으며 로컬에 저장되어 있어 클러스터 종료시 메타 데이터는 사라지니 외부 데이터 베이스를 사용하는것이 낫다.
2. spark 에서 하이브메타스토어를 사용하려면 ?
스파크 설정 파일 경로(/etc/spark/conf/)에 hive-site.xml 을 넣으면 된다!
그러나 aws로 클러스터 생성시 기본으로 spark 에서 hive 메타스토어를 바라보도록 되어있다.
$ cd /etc/spark/conf/
$ ll
합계 68
lrwxrwxrwx 1 root root 44 1월 31 16:09 emrfs-site.xml -> /usr/share/aws/emr/emrfs/conf/emrfs-site.xml
-rw-r--r-- 1 root root 1105 6월 30 2021 fairscheduler.xml.template
-rw-r--r-- 1 root root 2177 1월 31 16:11 hive-site.xml
-rw-r--r-- 1 root root 3232 1월 31 16:11 log4j.properties
-rw-r--r-- 1 root root 2023 6월 30 2021 log4j.properties.template
-rw-r--r-- 1 root root 9141 1월 31 16:11 metrics.properties
-rw-r--r-- 1 root root 9141 6월 30 2021 metrics.properties.template
-rw-r--r-- 1 root root 5016 1월 31 16:11 spark-defaults.conf
-rw-r--r-- 1 root root 1292 6월 30 2021 spark-defaults.conf.template
-rw-r--r-- 1 root root 1689 1월 31 16:11 spark-env.sh
-rwxr-xr-x 1 root root 4428 6월 30 2021 spark-env.sh.template
-rw-r--r-- 1 root root 865 6월 30 2021 workers.template
'BIG DATA' 카테고리의 다른 글
[로그 수집] logstash 장애시 이슈 없을까? (0) | 2022.02.14 |
---|---|
[로그 수집] 파이프 라인을 만들어 보자! (0) | 2022.02.13 |
[AWS] EMR(hadoop) - 오토 스케일링 해보자! (0) | 2022.01.31 |
[AWS] EMR(hadoop) - 자동 종료 해보자! (0) | 2022.01.30 |
[AWS] EMR(hadoop) - 데이터를 이관해보자! (0) | 2022.01.30 |