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

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

분류 전체보기 169

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

kubernetes) k8s dashboard limited acess 설정하기_readonly

k8s dashboard를 제공하기는 해야하는데, 읽기 권한만 부여하고 싶을 때가 있어요. 예를 들어, spark on k8s 환경의 경우 분석가 분들이 pod의 memory/cpu 사용량을 봐야할 때가 있겠네요. 사용량이나 로그를 봐야지 executor와 memory를 늘릴지 말지 판단할 수 있기 때문이에요. 제가 참고한 코드는 fabianlee의 블로그에요 https://fabianlee.org/2022/08/05/kubernetes-accessing-the-kubernetes-dashboard-with-least-privilege/ Kubernetes: accessing the Kubernetes Dashboard with least privilege | Fabian Lee : Software En..

기타/K8S 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

k8s) worker 재시작했을 때 not ready 인 경우

어쩔때는 잘 올라오는데 어쩔때는 not ready고 쿠버는 참 재미진 것 같아요.. 매번 믿지만, 가끔 뒤통수 맞아서 비슷한 사례가 있을 때마다 여기에 추가하려고요 (대단한건 없고 메모용입니다) server 의 경우 서버에서는 대부분의 문제가 kubelet, docker(containerd)가 실행되지 않아서 생기더라고요 그래서 아래 명령어들을 확인합니다. systemctl status kubelet systemctl status docker #systemctl status containerd 예시 [root@k8sworker3 ~]# systemctl status kubelet ● kubelet.service - kubelet: The Kubernetes Node Agent Loaded: loaded ..

기타/K8S 2023.03.09

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

K8S) pod 내부에서 외부 DNS 못 찾을 때 우회법_hostAlias,coredns

쿠버네스티는 설치할 때마다 새로워요. hw가 문제일 때도 있고, kernel 버전이 안 맞을 때도 있죠 하지만 대부분의 절망 포인트는 네트워크 더라고요... pod안에서 외부 dns 접근 못하던 문제를 어떻게 우회해서 해결했는지 정리했습니다 예상 독자는 다음과 같아요 온프렘 환경에서 고군분투 쿠버를 설치하시는 분들 네트워크 잘 모르는데 쿠버 설치하시는 분들 저를 불쌍히 여기실 수 있는 분들 문제: pod 안에서 dns 를 찾지 못함 이번에는 새로운 네트워크 망에 k8s cluster를 설치하는 작업을 했어요 그런데 이상하게 서버 몇대가, 회사 DNS에 접근을 잘 못하더라고요. 12대 중 2대가 접근이 되지 않아서 /etc/hosts에 특정 host를 명시해줬어요 불안한 마음에 k8s 설치하고 busybo..

기타/K8S 2023.02.26