융무의 기술블로그
article thumbnail
[GKE] Trino를 사용하여 MinIO에 저장된 데이터 쿼리하기(1) - Hive Metastore MySQL로 구성
Cloud 2023. 12. 31. 13:55

플랫폼을 운영하면서 실제로 플랫폼 환경을 구축해보고 싶어 쿠버네티스 상에서 데이터 파이프라인을 구축하려고 합니다. 원천 데이터 소스의 경우 환경을 먼저 구축한 뒤에 데이터를 배치하려고 합니다. [GKE] Trino를 사용하여 MinIO에 저장된 데이터 쿼리하기(1) - Hive Metastore MySQL로 구성 [GKE] Trino를 사용하여 MinIO에 저장된 데이터 쿼리하기(2) - Hive Metastore 배포 [GKE] Trino를 사용하여 MinIO에 저장된 데이터 쿼리하기(3) - Trino 설치 및 연동 Hive Metastore를 MySQL에 설정하고, Trino를 사용하여 MinIO에 저장된 데이터에 대한 쿼리를 실행하는 방법에 대해 포스팅하려고 합니다. Hive Metastore와 ..

article thumbnail
Certified Kubernetes Application Developer (CKAD) 합격 후기

쿠버네티스로 실무를 할 수 있을 거 같아서 미리 연초에 CKA를 준비하였고 쿠버네티스 관련된 책을 읽으면서 기본적인 지식은 있었습니다. 현재 내부사정으로 쿠버네티스 실무를 하고 있지는 않지만 gke 상에서 쿠버네티스를 활용해서 데이터 파이프라인 환경을 구성하면서 CKAD를 병행하면서 개념을 다시 잡으면 좋을 거 같아 시험을 보게 되었습니다. 11월 말에 사이버먼데이를 활용해 시험 50% 할인을 받았습니다. CKAD 시험과 관련된 후기를 남기고자 합니다. 시험 준비 시험 준비 기간은 3주 정도 소요되었으며 쿠버네티스 실무 경험은 없지만 CKA 자격증이 있었고 쿠버네티스 관련된 서적을 읽어서 기본적인 지식이 있는 상태였습니다. 또한 쿠버네티스 기반 사이드 프로젝트를 하고 있어서 시험을 준비하는데 많은 시간은..

article thumbnail
견고한 데이터 엔지니어링 - 조 라이스
책 리뷰 2023. 12. 13. 23:48

이 책은 빅데이터를 지탱하는 기술, 데이터 파이프라인 핵심 가이드와 더불어 데이터 엔지니어링에 관한 기본서로 많은 내용을 담고 있습니다. 또한, 많은 분들께 추천을 받아 읽게 되었으며 데이터 수명 주기에 관해서 많이 공감하며 재밌게 읽었습니다. 이 책을 읽기 전까지 엔지니어가 결국 기업의 의사결정을 효율적으로 지원하는 역할을 해야 한다고 생각했습니다. 이에 따라 백엔드부터 비즈니스 인텔리전스, 인공지능, 머신러닝, 그리고 MLOps까지 다양한 분야를 고려해야 한다고 생각했습니다. 그러나 이 책을 통해 데이터 엔지니어의 궁극적인 목적과 역할에 대해 새롭게 조명을 받게 되었습니다. 데이터 엔지니어링의 생명주기는 데이터의 생성부터 저장, 수집, 변환, 그리고 서빙까지 이르며, 이 전 과정에 걸쳐 보안, 데이터..

article thumbnail
[GKE] Hive Error: Table 'CTLGS' already exists (state=42S01,code=1050)
Data Engeneering/Error 2023. 12. 2. 23:36

Hive 메타스토어 데이터베이스 초기화 중에 발생한 'Table 'CTLGS' already exists' 오류는, Hive 메타스토어 스키마 초기화 과정 중 이미 존재하는 테이블에 대한 처리를 시도할 때 발생할 수 있습니다. Error: Table 'CTLGS' already exists (state=42S01,code=1050) com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'CTLGS' already exists 에러를 확인해 보니 메타스토어 데이터베이스가 이미 일부 스키마 구조를 가지고 있었습니다. mysql> select * from CTLGS; +---------+------+--------------------------+..

article thumbnail
[GCP] GKE의 Apache Airflow에 minio 연동하기
Cloud 2023. 11. 19. 23:09

MinIO는 고성능, 오픈소스 객체 스토리지 서비스로, 클라우드 네이티브 환경에서 매우 유용합니다. 이번 포스팅에서는 Kubernetes 클러스터 상에서 Airflow와 MinIO를 연동하는 과정을 단계별로 살펴보겠습니다. MinIO 설치 및 설정 먼저, Kubernetes 클러스터에 MinIO를 설치해야 합니다. MinIO는 쿠버네티스 Pod로 실행되며, 이를 위해 YAML 파일을 사용하여 필요한 리소스를 정의합니다. MinIO 설치를 위한 minio-dev.yaml 파일 예시입니다. apiVersion: v1 kind: Namespace metadata: name: minio-dev --- apiVersion: v1 kind: Pod metadata: labels: app: minio name: mi..

article thumbnail
[GCP] GKE에서 Prometheus와 Grafana로 클러스터 모니터링 구축하기
Cloud 2023. 11. 12. 21:59

Google Kubernetes Engine(GKE) 상에서 Prometheus와 Grafana를 사용하여 클러스터의 모니터링을 설정하려고 합니다. 이를 통해 실시간으로 클러스터 상태를 감시하고, 성능 지표를 시각화해 보겠습니다. 모니터링을 위한 네임스페이스 생성 모니터링에 사용될 별도의 네임스페이스를 생성합니다. 네임스페이스는 리소스 관리와 분리를 통해 보다 체계적인 환경 관리에 도움을 줍니다. $ kubectl create ns monitor namespace/monitor created Helm 리포지토리 추가 및 확인 Prometheus와 Grafana를 설치하기 위해 Helm 차트 리포지토리를 추가합니다. Helm은 쿠버네티스 패키지 관리자로, 차트(chart)라고 불리는 패키지 형식을 사용하여..

article thumbnail
[GCP] GKE의 Apache Airflow에 Slack 연동하기
Cloud 2023. 11. 5. 16:13

앞의 포스팅에서 GKE 상에서 Airflow를 배포하였습니다. 이제 Slack 알림을 설정하는 법을 포스팅하려고 합니다. [GCP] GKE에 Apache Airflow 배포 Google Kubernetes Engine (GKE)에 helm 차트를 활용해서 airflow 배포를 하는 법에 대해서 포스팅하려고 합니다. 코드는 아래 github에서 확인할 수 있습니다. https://github.com/mjs1995/muse-data-engineer/blob/main/blog/gcp mjs1995.tistory.com Webhooks 생성 및 Slack으로 결과 전달하기 Webhooks 생성하기 slack api웹사이트에 접속해서 Webhook URL을 생성합니다. Slack으로 알림 전달 Apache Air..

article thumbnail
[gke] Quota 'SSD_TOTAL_GB' exceeded. Limit: 500.0 in region
Data Engeneering/Error 2023. 10. 30. 20:57

Airflow의 작업자(worker) 및 트리거(triggerer) 파드가 Pending 상태에 머무는 에러가 발생하여 이를 해결하고자 합니다. Airflow 환경을 GKE 클러스터에 구축한 후, 특정 Airflow 컴포넌트들이 실행되지 않는 문제가 발생했습니다. gcloud container clusters create gke-airflow \ --machine-type e2-medium \ --num-nodes 1 \ --region "asia-northeast3" \ --min-nodes 1 \ --max-nodes 3 파드 상태를 확인했을 때, airflow-worker-0 및 airflow-triggerer-0 파드들이 Pending 상태에 머물고 있었습니다. mun_js@cloudshell:~..

article thumbnail
[GCP] GKE에 Terraform을 활용한 Airflow 배포
Cloud 2023. 10. 30. 20:46

테라폼을 활용해서 gke 클러스터를 생성하고 airflow helm차트를 배포해보려고 합니다. 코드는 아래서 확인 가능 합니다. https://github.com/mjs1995/muse-data-engineer/blob/main/blog/gcp/gke_airflow.md 서비스 계정 생성 및 역할 부여 Service account 란 사용자를 대신하여 작업을 수행하는, 프로젝트에 연결된 Google 계정이며 이러한 Service account 에는 사용자와 동일한 방식으로 역할과 권한을 할당 할 수 있습니다. 테라폼 명령을 실행하기 전에 아래 역할(Role)을 가지고 있는 Service account를 생성합니다. 서비스 계정 관리자 (roles/iam.serviceAccountAdmin) : 서비스 계..

article thumbnail
[GCP] GKE에 Apache Airflow 배포
Cloud 2023. 10. 22. 22:23

Google Kubernetes Engine (GKE)에 helm 차트를 활용해서 airflow 배포를 하는 법에 대해서 포스팅하려고 합니다. 코드는 아래 github에서 확인할 수 있습니다. https://github.com/mjs1995/muse-data-engineer/blob/main/blog/gcp/gke_airflow.md helm차트를 활용한 Apache Airflow 배포 Google Kubernetes Engine (GKE)에 helm 차트를 활용해서 airflow 배포를 하는 법에 대해서 포스팅하려고 합니다. gcloud는 Google Cloud Platform(GCP) 리소스를 관리하고 조작하는 데 사용되는 커맨드 라인 인터페이스(CLI) 도구입니다. gcloud 명령어를 사용하면 G..