4.4. Hive 메타 저장소 구성
미터링은 더 이상 사용되지 않는 기능입니다. 더 이상 사용되지 않는 기능은 여전히 OpenShift Container Platform에 포함되어 있으며 계속 지원됩니다. 그러나 이 기능은 향후 릴리스에서 제거될 예정이므로 새로운 배포에는 사용하지 않는 것이 좋습니다.
OpenShift Container Platform에서 더 이상 사용되지 않거나 삭제된 주요 기능의 최신 목록은 OpenShift Container Platform 릴리스 노트에서 더 이상 사용되지 않고 삭제된 기능 섹션을 참조하십시오.
Hive 메타 저장소는 Presto 및 Hive에서 생성된 데이터베이스 테이블에 대한 모든 메타데이터 저장을 담당합니다. 기본적으로 메타 저장소는 Pod에 연결된 영구 볼륨에 포함된 로컬 Derby 데이터베이스에 이 정보를 저장합니다.
일반적으로 Hive 메타 저장소의 기본 설정은 소규모 클러스터에서 작동하지만 사용자는 Hive 메타 저장소 데이터를 저장하기 위해 전용 SQL 데이터베이스를 사용하여 성능을 개선하거나 스토리지 요구 사항을 클러스터에서 이동하고자 할 수 있습니다.
4.4.1. 영구 볼륨 구성
기본적으로 Hive는 작동을 위해 하나의 영구 볼륨이 필요합니다.
hive-metastore-db-data
는 기본적으로 필요한 주요 PVC( Persistent Volume Claim)입니다. 이 PVC는 Hive 메타 저장소에서 테이블 이름, 열 및 위치와 같은 테이블에 대한 메타데이터를 저장하는 데 사용됩니다. Presto 및 Hive 서버는 쿼리 처리 시 테이블 메타데이터를 조회하는 데 Presto 및 Hive 서버에서 사용합니다. Hive 메타 저장소 데이터베이스에 MySQL 또는 PostgreSQL을 사용하여 이러한 요구 사항을 제거합니다.
설치하려면 Hive 메타 저장소에서 스토리지 클래스에 있는 동적 볼륨 프로비저닝을 활성화해야 하며 올바른 크기의 영구 볼륨을 수동으로 미리 생성하거나 이미 있는 MySQL 또는 PostgreSQL 데이터베이스를 사용해야 합니다.
4.4.1.1. Hive 메타 저장소의 스토리지 클래스 구성
hive-metastore-db-data
영구 볼륨 클레임에 대해 스토리지 클래스를 구성하고 지정하려면 MeteringConfig
사용자 지정 리소스에서 스토리지 클래스를 지정합니다. class
필드가 있는 storage
섹션의 예는 아래 metastore-storage.yaml
파일에 포함되어 있습니다.
apiVersion: metering.openshift.io/v1
kind: MeteringConfig
metadata:
name: "operator-metering"
spec:
hive:
spec:
metastore:
storage:
# Default is null, which means using the default storage class if it exists.
# If you wish to use a different storage class, specify it here
# class: "null" 1
size: "5Gi"
- 1
- 이 라인의 주석을 제거하고 사용할 스토리지 클래스의 이름으로
null
을 바꿉니다.null
값을 남겨 두면 미터링이 클러스터에 기본 스토리지 클래스를 사용합니다.
4.4.1.2. Hive 메타 저장소의 볼륨 크기 구성
아래 metastore-storage.yaml
파일을 템플릿으로 사용하여 Hive 메타 저장소의 볼륨 크기를 구성합니다.
apiVersion: metering.openshift.io/v1
kind: MeteringConfig
metadata:
name: "operator-metering"
spec:
hive:
spec:
metastore:
storage:
# Default is null, which means using the default storage class if it exists.
# If you wish to use a different storage class, specify it here
# class: "null"
size: "5Gi" 1
- 1
size
값을 원하는 용량으로 바꿉니다. 예제 파일은 "5Gi"를 표시합니다.
4.4.2. Hive 메타 저장소에 MySQL 또는 PostgreSQL 사용
미터링의 기본 설치는 Derby라는 포함된 Java 데이터베이스를 사용하도록 Hive를 구성합니다. 이는 더 큰 환경에 적합하지 않으며 MySQL 또는 PostgreSQL 데이터베이스로 바꿀 수 있습니다. 배포에 Hive의 MySQL 또는 PostgreSQL 데이터베이스가 필요한 경우 다음 예제 설정 파일을 사용합니다.
데이터베이스를 제어하는 데 사용할 수 있는 세 가지 설정 옵션은 url
, driver
및 secretName
입니다.
사용자 이름과 암호로 MySQL 또는 Postgres 인스턴스를 생성합니다. 그런 다음 OpenShift CLI(oc
) 또는 YAML 파일을 사용하여 시크릿을 생성합니다. 이 시크릿에 대해 생성하는 secretName
은 MeteringConfig
오브젝트 리소스의 spec.hive.spec.db.secretName
필드에 매핑해야 합니다.
절차
OpenShift CLI(
oc
)를 사용하거나 YAML 파일을 사용하여 시크릿을 생성합니다.다음 명령을 사용하여 시크릿을 생성합니다.
$ oc --namespace openshift-metering create secret generic <YOUR_SECRETNAME> --from-literal=username=<YOUR_DATABASE_USERNAME> --from-literal=password=<YOUR_DATABASE_PASSWORD>
YAML 파일을 사용하여 시크릿을 생성합니다. 예를 들면 다음과 같습니다.
apiVersion: v1 kind: Secret metadata: name: <YOUR_SECRETNAME> 1 data: username: <BASE64_ENCODED_DATABASE_USERNAME> 2 password: <BASE64_ENCODED_DATABASE_PASSWORD> 3
Hive에 MySQL 또는 PostgreSQL 데이터베이스를 사용하려면 설정 파일을 생성합니다.
Hive에 MySQL 데이터베이스를 사용하려면 아래 설정 파일 예제를 사용합니다. 미터링은 MySQL 서버 버전 5.6, 5.7 및 8.0을 사용하도록 내부 Hive 메타 저장소 구성을 지원합니다.
spec: hive: spec: metastore: storage: create: false config: db: url: "jdbc:mysql://mysql.example.com:3306/hive_metastore" 1 driver: "com.mysql.cj.jdbc.Driver" secretName: "REPLACEME" 2
참고5.6 또는 5.7과 같은 이전 MySQL 서버 버전과 작동하도록 미터링을 구성하는 경우 내부 Hive 메타 저장소를 구성할 때
enabledTLSProtocols
JDBC URL 매개변수를 추가해야 할 수 있습니다.spec.hive.config.url
을 사용하여 추가 JDBC 매개변수를 전달할 수 있습니다. 자세한 내용은 MySQL Connector/J 8.0 문서를 참조하십시오.Hive에 PostgreSQL 데이터베이스를 사용하려면 아래 설정 파일 예제를 사용합니다.
spec: hive: spec: metastore: storage: create: false config: db: url: "jdbc:postgresql://postgresql.example.com:5432/hive_metastore" driver: "org.postgresql.Driver" username: "REPLACEME" password: "REPLACEME"
spec.hive.config.url
을 사용하여 추가 JDBC 매개변수를 전달할 수 있습니다. 자세한 내용은 PostgreSQL JDBC 드라이버 문서를 참조하십시오.