'데이터 엔지니어'로 성장하기

정리하는 걸 좋아하고, 남이 읽으면 더 좋아함

Data 50

Jupyterhub) k8s 1.27에서 helm 에러 수정_bug

쿠버 버전을 업그레이드했다가, 에러가 발생했어요. 공식 github에서도 2일전에 bug라는 issue가 등록되었더라고요 요약 1. k8s 1.27에서 pod spawning이 안됨 2. 공식 인정 버그였음 3. image를 변경하고, deprecated된 api를 수정함 환경 - helm chart 3.0.0 - k8s v1.27.0 (기존에는 1.24) 에러 v1beta1.CSIStorageCapacity 관련 에러 - Failed to watch *v1beta1.CSIStorageCapacity: failed to list *v1beta1.CSIStorageCapacity: W0530 17:41:37.219051 1 reflector.go:324] k8s.io/client-go/informers/f..

Data/Jupyterhub 2023.06.11

trino) mysql insert 에러 발생, 방화벽 실수_could not create connection

K8S에 Trino를 올리고, 오픈 전 테스트 진행을 하고 있었어요. 요약trino이용해서 mysql insert하는데 `could not create connection`나옴.알고보니, k8s worker 중 1개 방화벽 설정을실수함문제최근에, Spark Thrift Server를 이용해 진행하던 data pipeline 작업을 Trino로 이전하고 있습니다. (hive metatstore로 s3의 parquet를 읽고, mysql에 insert하는 작업) 빠른 테스트를 위해서 trino-worker를 3개로 설정했었고, 문제 없다는 것도 확인했죠. 그런데 trino-worker 9개로 늘리고 퇴근을 했더니 Airflow에서 에러를 마구 뱉습니다. Select는 되는데, Insert할 때만 에러를 뱉더..

Data/Trino 2023.05.21

superset) trino 연결해서 그래프 그리기

superset에서는 pip install만 하면 db connection을 만들 수 있어요. 그런데 어떻게 추가하는지 처음에는 당황스러울 수 있어요 예상 독자는 아래와 같아요. superset에 connection 맺으려고, dockefile 예시 찾는 분 Superset 이 무엇인지 설명하는 이전 글은 아래 링크에 있어요 https://mightytedkim.tistory.com/191 Supserset) 슈퍼셋 들어보셧나요? 사용 후기 듣고 가세요! (filter 조건 위치 변경해서 full scan 방지) 요즘 '빅데이터 지탱하는 기술' 보고 있는데, superset이 나와서 정리해봣어요예상 독자는 아래와 같아요 - superset 사용하시려는 분 - 기본 구조를 아시고 싶으신 분 - filter..

Data/Superset 2023.04.23

Airflow) Base image에 라이브러리 추가하기

Airflow에 여러 operator들이 있는데, python Operator에서도 특정 라이브러리들이 필요할 때가 있어요 예상 독자는 다음과 같아요. 1. K8S Airflow에서 추가 패키지들을 어떻게 관리하는지 궁금한 분 2. dependency 최소로 db connection을 맺고 싶으신 분 저 같은 경우, 3가지를 추가해요 1. 디버깅을 위한 apt install - 디버깅의 경우 pod 안에서 curl, vim, tcpdump 등이 필요해서 root로 설치를 해줫어요 2. jdbc connection을 위한 jar - dependency 관리 측면에서 득이되기 때문에, 추가해주고 있어요. 3. pip install - 마지막으로는 jdbc 사용에 필요한 jaydebeapi, pymysql -..

Data/Airflow 2023.04.23

Spark) createOrReplaceTempView

빅지기 책 233쪽에 보면 `SparkSql을 사용하면, 데이터프레임을 SQL로 집계할 수 있다.` 라고 말하며 createOrReplaceTempView를 이야기해준다. 항상 df으로 작업하던 나에게 꿀같은 소식. 난 SQL이 더 편한다. df.createOrReplaceTempView('test') spark.sql("select * from test").show(3) +-------+---------+ | col1| col2| +-------+---------+ | a| 1| | b| 2| | c| 3| +-------+---------+ only showing top 3 rows하지 않는 한, 쿼리를 실행할 때마다 항상 최신의 데이터가 들ㅇ쳐진다. spark thrift server에서 thrif..

Data/Spark 2023.03.27

Supserset) 슈퍼셋 들어보셧나요? 사용 후기 듣고 가세요! (filter 조건 위치 변경해서 full scan 방지)

요즘 '빅데이터 지탱하는 기술' 보고 있는데, superset이 나와서 정리해봣어요예상 독자는 아래와 같아요 - superset 사용하시려는 분 - 기본 구조를 아시고 싶으신 분 - filter를 where절 안에서 사용하고 싶으신분 저는 k8s helm을 이용해서 구현했어요 사용 방법은 kibana와 비슷해서 편했고, 저는 trino를 데이터 소스로 사용했어요superset이란?- airbnb(2016)에서 만든 BI 툴 - 사용자 친화적인 UI데모 페이지 들어가면 볼 수 있어요 https://superset.demo.datahubproject.io/superset/welcome/Supersetsuperset.demo.datahubproject.io느낀 장/단점장점 - 공짜 - 연결할 데이터 소스가 많..

Data/Superset 2023.03.26

Trino) session timeout 설정_hive.s3.socket-timeout

trino를 도입하려고 알아보는데, 여기는 특정 파티션을 찍어서 파티션 업데이트하는게 없고 전체를 선택해야하더라고요. 그러다보니 초기 세팅시에 데이터가 너무 많아 socket timeout exception이 발생했어요 복사를 하지 않아 비슷한 로그를 복사해왔습니다. com.facebook.presto.spi.PrestoException: hive-metastore-server:9083: java.net.SocketTimeoutException: Read timed out 아래 명령어를 실행해서 그런건데요 CALL system.sync_partition_metadata('test', 'hgkim', 'add', true); 그래서 socket timqeout을 늘려줫어요 kind: ConfigMap ap..

Data/Trino 2023.03.15

Trino) Deview 2023에 나왔던 JMX 모니터링 따라해보기

최근에 Deview 2023에서 Trino 관련 내용 중에서 JMX 모니터링을 따라해보려고 해요 비록 현장 참여는 못했지만, 너무 정리잘된 pdf를 참고했습니다. 예상 독자는 아래와 같습니다. Trino 적용을 검토하는 분 s3, hdfs의 파일을 Ansi SQL로 읽고 싶으신 분 Impala, SparkSql 대체를 고려하시는 분 다룰 내용은 아래와 같습니다 JMX로 모니터링하기 https://deview.kr/data/deview/session/attach/[133]CQuery%20-%20%EC%9A%B0%EB%8B%B9%ED%83%95%ED%83%95%20Trino%EC%99%80%20%EC%8D%B8%ED%83%80%EA%B8%B0.pdf S Trino란? Trino는 2007년 Facebook에..

Data/Trino 2023.03.12

airflow) dag clear 하지 않고 특정 시점부터 재시작하기

airflow 돌리다보면 다시 dag를 실행해야할 때가 있어요 dag clear가 멱등성 원칙을 지켜진다면 최고지만 그렇지 않거나, history를 남겨야할 때는 어떡할가요 cli에서 dag clear와 dag backfill 명령어로 실행할 수 잇어요 airflow tasks clear test-d-del-log-dag --start-date 2023-02-24 --end-date 2023-02-26 airflow dags backfill test-batch-d-del-log-dag --start-date 2023-02-24 --end-date 2023-02-26 첫번째 tasks clear는 해당 날짜 범위사이를 clear 해줘요. ui 상에서는 하얀색으로 변하게 되겠죠 그럼 그 날짜를 토대로 bac..

Data/Airflow 2023.02.27

kafka) kafka_exporter 설정 (prometheus,helm)

kafka_exporter를 이용하면 prometheus에서 metric을 조회할 수 있어요 예상 독자는 아래와 같아요 kafka cluster를 모니터링하고 싶은 분 prometheus helm을 사용하시는 분 미래의 나 요약 kafka exporter 실행 prometheus 설정 grafana 대시보드 설명 1. kafka_exporter 실행 다운로드 wget https://github.com/danielqsj/kafka_exporter/releases https://github.com/danielqsj/kafka_exporter/releases/download/v1.2.0/kafka_exporter-1.2.0.linux-amd64.tar.gz 실행 tar -zxvf kafka_exporter-1..

Data/Kafka 2022.08.05