2024/03 21

[k8s] metrics-server 설치 후 Metrics API not available 에러 발생 시

현상 Kubernetes 클러스터에서 top 명령어를 사용할 수 있도록 아래의 명령어로 metrics-server를 설치하였다. kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml 리소스 배포는 정상적으로 완료했으나 여전히 top 명령어를 사용할 수 없는 상태다. 원인 파악하고 문제를 해결해보자. 원인 파악 확인해 보니 metrics-server pod가 정상적인 Running 상태로 전환되지 않고 있었다. kubectl get pods -n kube-system metrics-server metrics-server pod의 이벤트를 확인해보니 readinessPr..

Kubernetes/삽질 2024.03.29

[GitHub] CLI로 토큰 지정하여 push하기

개요 Git Bash나 Linux 서버 등에서 CLI를 이용해 작업한 commit을 원격 저장소로 push 할 때 터미널 입력으로 사용자 인증 과정을 거치는 경우가 있다. 사람이 직접 push를 수행하는 경우에는 상관없지만, 스크립트 등으로 자동화를 하는 경우에는 사용자 인증 정보를 포함하여 push 명령을 수행해야 한다. 따라서 이 글에서는 사용자 인증 정보에 해당하는 GitHub Access Token을 Git push 명령어에 포함시키는 방법을 적어둔다. GitHub Access Token 생성 사용자 인증에 사용할 Token을 발급받는다. 1. GitHub Settings 페이지로 이동 GitHub에 로그인한 뒤 오른쪽 상단의 개인 메뉴에서 Settings를 클릭한다. 2. Developer se..

Git | GitLab 2024.03.28

[Trino] HiveConnector - S3 Glacier 객체 무시하기

개요 Trino에 HiveConnector를 AWS S3 버킷에 저장된 데이터를 쿼리하고 있다. 근데 데이터 시각화 도구이자 Trino Client로 사용하고 있는 Superset에서 S3 버킷에 저장된 데이터를 쿼리 하면 아래와 같은 에러가 발생하고 있다. 읽으려고 하는 객체가 수명 주기 규칙에 의해 Glacier 스토리지 클래스에 저장되어 있어 발생한 에러인데, SQL 수정 가장 간단한 방법으로 쿼리문을 수정하여 데이터의 조회 범위를 제한하는 것이다. 예로 들어 이 글에서 사용하는 테이블은 날짜값인 date 컬럼으로 파티셔닝 되어 있고, 생성된 지 5개월이 된 객체는 Glacier 스토리지 클래스로 이동한다. 어차피 Glacier 객체는 읽기 작업이 불가능하기 때문에 쿼리를 통해 데이터의 조회 범위를..

카테고리 없음 2024.03.27

[Superset] Backend DB 초기화 후 복구하기

개요 AWS EKS 클러스터에서 Helm으로 Superset을 설치하여 사용하고 있다. 이전에 EKS 버전 업그레이드를 작업하면서 superset을 지웠다가 다시 설치한 이력이 있는데, 실수를 했는지 Dataset이 편집되지 않고 있다……. superset Pod 로그를 확인해보니 테이블 업데이트 과정에서 시퀀스로 되어 있을 id 값에서 중복 에러가 발생하고 있었다. DB가 꼬여있는 것 같아 현재 superset Backend를 삭제하고 다시 복구한다. 참고로 superset 관련 버전은 다음과 같다. - 현재 superset helm chart version : 0.11.2 - 현재 superset app version : 3.0.1 - 데이터 백업 시 superset helm chart : 0.9.3..

Apache Superset 2024.03.26

[AWS] Mountpoint for S3 - 구성 설정

개요 2024.03.22 - [AWS] Mountpoint for S3 - S3를 파일 시스템처럼 사용하기에서 AWS S3가 제공하는 Mountpoint for S3 기능을 살펴보았다. 다만 Mountpoint for S3는 mount-s3를 수행한 사용자가 버킷에 대해 작업할 수 있도록 기본적인 권한을 설정한다. 때문에 이전 글에서 EC2에 root 사용자로 버킷을 마운트 했을 때, 일반 사용자는 버킷에 접근할 수가 없었다. 이번 글에서는 Mountpoint for S3 사용 시 고려해볼 수 있는 권한, mount path 지정 등의 구성 설정에 대해 적어둔다. 파일/디렉터리 권한 설정 Mountpoint for S3는 기본적으로 mount-s3 명령을 수행한 사용자가 마운트 한 버킷의 파일을 읽고 쓸..

AWS 2024.03.25

[AWS] Mountpoint for S3 - S3를 파일 시스템처럼 사용하기

개요 AWS S3는 파일 스토리지가 아니라 객체 스토리지다. S3 버킷과 버킷에 저장된 객체를 다룰 때는 주로 API를 사용한다. 하지만 S3를 파일 시스템처럼 사용하고 싶어 하는 사용자가 많았는지(기존에는 서드파티인 s3fs를 이용해 mount하는 방법을 사용한 것으로 보인다.) 2023년에 AWS에서 Mountpoint for S3라는 기능을 출시했다. 이번 글에서는 Mountpoint for S3 기능을 살펴본다. Mountpoint for Amazon S3 Mountpoint for S3는 S3 버킷을 로컬 파일 시스템에 마운트 하는 오픈 소스 파일 클라이언트다. 파일 읽기, 열기 등과 같은 파일 시스템 작업을 자동으로 S3 API 호출로 변환하여 애플리케이션이 파일 인터페이스를 통해 S3를 다룰..

AWS 2024.03.22

[프로그래머스] [PCCE 기출문제] 10번 / 데이터 분석

문제 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/250121 AI 엔지니어인 현석이는 코드 번호(code), 제조일(date), 최대 수량(maximum), 현재 수량(remain)으로 구성된 데이터를 분석하고 있는데, 조건을 만족하는 데이터만 뽑아서 정렬하려고 한다. 데이터가 저장된 이차원 정수 리스트 datam, 데이터를 필터링할 기준을 의미하는 문자열 ext, 필터링할 기준값을 의미하는 정수 val_ext, 정보를 정렬하는 기준을 의미하는 문자열 sort_by가 주어질 때, data에서 ext 값이 val_ext보다 작은 데이터만 뽑은 후, sort_by 값을 기준으로 오름차순으로 정렬하여 반환한다. 접근 Pandas를 사용하라고..

Algorithm 2024.03.21

[Superset/Helm] Chart 시각화 중 Timeout이 발생하는 경우

현상 AWS EKS 클러스터에서 Helm으로 Superset을 설치해서 사용하고 있다. 그런데 Superset Dashboard에서 데이터 양이 많은 Chart를 조회하면 60초 정도 로드하다가 Timeout이 발생하면서 실패하는 현상이 발생하고 있다. 원인을 확인하고 현상을 해결해보자. 원인 다행히 비슷한 현상을 겪는 사용자가 많은지 Apache Superset FAQ 문서에 관련 내용이 정리되어 있었다. 공식 문서에 의하면 Superset 서비스 간 통신이 Gateway나 nginx 같은 Proxy 서버를 통해 이뤄지는 경우, 네트워크 서비스 관련 설정으로 인해 대시보드나 차트를 로드하는 중 504 Gateway Time-out과 같은 시간 초과가 발생할 수 있다고 한다. 긴 쿼리를 처리하는 Supe..

Apache Superset 2024.03.20

[Pandas] AWS S3에서의 parquet 파일 다루기

개요 2024.03.18 - [Pandas] parquet 파일 읽고 쓰기에서 일반 로컬 파일 시스템에서 parquet 파일을 읽거나 써보았다. 근데 공식 문서를 확인해 보면 read_parquet, to_parquet 함수 호출 시 storage_options 매개변수를 통해 AWS S3 등의 외부 저장소를 사용할 수 있는 것 같다. 이번 글에서는 Pandas를 사용해 AWS S3에 저장된 parquet 데이터를 읽거나 쓰는 방법에 대해 정리한다. 필요 라이브러리 설치 fsspec은 로컬, 원격, 임베디드 파일 시스템, 그리고 바이트 스토리지와 연동하는 인터페이스를 제공하는 라이브러리다. 그리고 s3fs는 s3 관련 python 파일 시스템 인터페이스를 제공한다. Pandas에서 두 패키지 모두 AWS..

[Pandas] parquet 파일 읽고 쓰기

개요 2024.03.13 - [Apache Arrow] parquet 파일 읽고 쓰기, 2024.03.14 - [Arrow] 파티셔닝한 parquet 파일 저장하기에서 Apache Arrow를 이용해 parquet 데이터를 읽고 쓰는 방법을 적어두었었는데, Pandas를 통해서 parquet 데이터를 읽고 쓸 수도 있다. 이 글에서는 Pandas를 이용한 방법을 적어둔다. read_parquet read_parquet 함수는 경로에 저장된 parquet 파일을 읽은 DataFrame을 반환한다. import pandas as pd pd.read_parquet('iris.parquet') 단일 파일 하나만 전달하거나, 여러 파일이 파티셔닝되어 저장된 경로를 전달해도 된다. 가령 iris란 경로에 parqu..

1 2 3