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

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

Data 50

Spark) Thrift serverHive-Metastore OOM 해결_메모리 추가할당

갑자기 월요일 아침에 확인해보니 airflow job들이 일부 죽어잇음, 일단 request/limit 수정함 상황 - 왜그런가하고 봣는데, Thrift Server 사용하는 job들만 죽음 - 에러 로그는 err_msg = java.sql.SQLException: Error running query: org.apache.thrift.transport.TTransportException - hive meta store Pod를 보니까 pool, OOM Exception in thread "pool-7-thread-921" java.lang.OutOfMemoryError: GC overhead limit exceeded 문제 hivemetastore 메모리 부족 해결 metastore.yaml을 수정함, ..

Data/Spark 2022.01.10

Spark) Spark Thrift Server 클러스터에서 올리기

한줄요약: cluster로 thrift 를 올리는 정식 방벙은 아직 안나와서, 추후에 trino로 옮겨야할 것 같다. 개요 주제: Spark thrift server를 K8S cluster에 구현해함 문제: Cluster로 Thrift Server를 실행하는 방법이 없음 해결: 'mykidong' 블로그를 통해 예시를 찾음 이 포스팅은 mkidong님의 예시를 각색해서, 오프라인 온프렘 k8s cluster에 적용한 내용이에요 먼저, Spark Thrift Server 가 무엇인지 간단히 설명하고 예제와 함께, 참고한 블로그와 다른점을 기술하도록 할게요 ㅎ thrift server란? spark 에 sql을 날릴 수 있는 Thrift Server 라는게 있어요 daemon 처럼 jdbc 를 날릴 수 있는..

Data/Spark 2021.12.19

Kubernetes) k8s와 Airflow 이용한 spark작업_SparkKubernetesOperator

요약 1. kubenetes 환경에서 airflow를 이용해 spark_submit을 함 2. SparkKubernetesOpertor(SKO)를 선택함 개요 상황 쿠버네티스 클러스터 환경에서 spark_submit 관리 필요 후보 (3가지) KubernetePodOperator(KPO) : dag SparkApplication(CRD) : yaml SparkKubernetesOperator(SKO) : yaml + dag 최종 결과 (SKO) command script/scample/sample-sko-spark.yaml dags/sample/sample-sko-spark.py 시행착오 (FYI) SKO) role 권한 때문에 Forbidden 에러 SKO) sensor의 task_id 때문에 에러 S..

Data/Airflow 2021.11.25

Airflow) K8S Pod 만들기_k8sPodOperator, helm

airflow 1.10 부터 적용되고, airflow 2.0에서 본격적으로 사용되는 KPO 자료가 없어서 2주간의 삽질기 ㅎㅎ 아 진짜 쫄깃 쫄깃하고, 안되서 도중에 argo를 파야하나 생각하고 휴.. 요약 airflow는 airbnb에서 만든 파이프라인 관리 어플리케이션입니다. 현재 라인, 쏘카 등에서 사용하고 있습니다. 저는 네이티브 환경의 kubernetes에서 airflow를 사용했어요. kuberentesPodOperator 설정 KubeneresPodOperator : DAG LOGGING : minIO, connection GIT-SYNC : secret, ssh Helm : values.yaml KubeneresPodOperator GIT-SYNC : secret, ssh LOGGING 작..

Data/Airflow 2021.11.12

Airflow) log를 minio에 저장_connection,yaml

하고 나면 너무 간단한데생각보다 인터넷에 관련된 정보가 명확히 나와잇지 않음 똑같은데 그럼 endpoint는 어디다가 입력하는데ㅜㅜ 성공하고 나서 문서를 보면 당연하지만, 작업 중에는 너무나 막막했던 내용 설정 방법 1. minio 실제 url에서는 이런식으로 http://1**.**.**.**:9000/object-browser/airflow-logs bucket 만들기 airflow-logs http://1**.**.**.**:9000 참고 pyspark 테스트하던 코드는 여기 https://mightytedkim.tistory.com/28 from pyspark import SparkContext from pyspark.sql import SparkSession from time import sle..

Data/Airflow 2021.11.12

Spark) Spark Base Image Docker Build(VM, 내부망)

spark image를 만드는 법과 VM,내부망안에서 제가 겪은 경험을 공유하려 해요 별거 아니지만 처음에 할 때는 너무 막막했었어요 ㅎ 글을 구조는 아래와 같아요 1. 상황 spark image를 만들기 VM, 내부망에서 build 실패 2. 해결 spark-3.1.2-bin-hadoop3.2/kubernetes/Dockerfile Sources.list 주석 HTTP_PROXY, HTTPS_PROXY 설정 kubernetes/dockerfiles/spark/bindings/python/Dockerfile pypi.org를 신뢰할 수 있는 host HTTP_PROXY, HTTPS_PROXY 설정 1. 상황 spark image를 만들기 spark를 실행하는 base image를 만들 때 인프라 상황이 ..

Data/Spark 2021.11.11

Airflow) Kubernetes에 올리기(yaml)

kubernetes에 airflow를 올렸어요 K8s로 airflow 올리기 native에서 테스트할 때는 아래처럼 2개로 테스트했는데 vm1 : scheduler,webserver celery worker1, celery flower vm2 celery worker2 k8s에서 세팅하니까, 이렇게 각각 pod로 생성되더라고요 NAME READY STATUS RESTARTS AGE pod/airflow-flower-6c6b7f5d68-lx4j8 1/1 Running 1 2d16h pod/airflow-postgresql-0 1/1 Running 2 2d16h pod/airflow-redis-0 1/1 Running 0 2d1h pod/airflow-scheduler-884ddd5f6-g2vxt 2/2 R..

Data/Airflow 2021.10.28

Airflow) celery worker 환경 구성하기

airflow는 airbnb에서 만든 workflow 관리 플랫폼이에요 - 배치 파일을 순차적으로 돌릴 수도 있어요 - 이쁜 젠킨스 최근에 공부를 하게되면서 알게된 구조와 centos7에서 테스트한 예시를 메모하려고해요 airflow hello-world하면서 느낀점은 여기에 정리했어요 :) Airflow) 공부 및 적용기(메모) 최근에 airflow를 공부하고 있어요. 원래는 kubernertes의 설정 파일을 던지는 친구로 알고 보고 있엇는데, 배치파일 돌리는 작업으로 세팅 중이에요 이제 며칠봐서 틀릴 수도 있지만 제가 공부한 내 mightytedkim.tistory.com 구성 airflow webserver - airflow UI - workflow 상태 표시하고 실행, 재시작, 수동 조작, 로그..

Data/Airflow 2021.10.12

Airflow) Hello world와 시행착오_celery worker,버그

최근에 airflow를 공부하고 있어요ㅎ 대표사진 삭제 사진 편집 작게작게문서 너비문서 너비옆트임옆트임 삭제삭제 사진 설명을 입력하세요. 그냥 "배치 돌리는 어플리케이션" 으로만 알고 있던 제가 하나씩 알아가며 메모를 하는 포스팅입니다 :) Airflow '워크플로우 관리 플랫폼' 으로 최근에 핫하게 사용되고 있어요. airbnb 에서 2016년에 만들어졌어요. 2020년에 2.0이 나오면서 더 강력해졌어요(이뻐짐) 장점 1. python : 가장 큰 장점, python으로 쉽게 접근이 가능 (데이터 분석가, 현업) 2. hello world 쉬움 : 한시간이면 만들 수 있어요 3. UI : 이쁘고 직관적이에요. 2.0으로 넘어오면서 엄청 이뻐졋어요 4. cloud 벤더 : cloud에서 운영하는 서비스..

Data/Airflow 2021.10.09