일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 하둡에코시스템
- hdfs
- Spark structured streaming
- pyspark
- AWS
- IT블로그
- 클라우데라
- 개발자
- 데이터엔지니어링
- scala
- DataEngineering
- 하둡
- 블로그
- Data engineering
- apache spark
- dataengineer
- spark
- 빅데이터
- 빅데이터플랫폼
- hadoop
- cloudera
- 개발자혜성
- BigData
- 데이터엔지니어
- kubernetes
- Terraform
- Python
- kafka
- eks
- 스파크
- Today
- Total
목록Data Engineering (30)
Hyesung Oh
개요 현재 팀의 Machine Learning 파이프라인의 모델 학습 워크로드는 아래와 같은 컴포넌트들로 구성되어있습니다. 출처: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html model.train()를 entrypoint로 하는 pod pod node의 gpu resource allocation 및 container가 사용할 device config 정보를 kubelet에 등록하는 nvidia device plugin daemonset pod container runtime 및 runc prestart hook을 통해 container에서 사용할 수 있는 device를 설정해주는 nvidia cont..
서론 배치성 Spark Job은 Airflow에서 trigger 하였지만 Streaming application은 이와 달리 클러스터를 상시 점유하고 있어 다음과 같은 요구사항을 가진다. 애플리케이션 배포, 상태를 선언적으로 관리할 수 있어야 한다. 하나 이상의 Kakfa Topic을 구독하는 애플리케이션(subscriber) 배포 시에 필요한 resource 정의 (코드)를 재활용할 수 있어야 한다. 개발자는 master에 merge 하면 코드는 자동으로 배포되어야 한다. 참고로 필자는 1을 만족하기 위해 ack-emrcontainers-controller를, 2를 위해 helm chart를, 3을 위해 argocd를 사용하였지만, 이는 각자 처한 상황에 맞게 다르게 가져갈 수 있다. 또한 아래 기술들..
ADD, COPY The path must be inside the context of the build; you cannot ADD ../something /something, because the first step of a docker build is to send the context directory (and subdirectories) to the docker daemon. If is a directory, the entire contents of the directory are copied, including filesystem metadata.The directory itself is not copied, just its contents. ADD vs COPY COPY는 로컬 파일을 Con..
EKS의 권한 제어 관련해서 궁금했던게 많았던 터라 공부하면서 내 나름대로 이해한 내용을 정리해보았다. RBAC (role based access control) K&8에서 정의할 수 있는 리소스 객체들을 이용하여 접근 제어를 하는 개념이다. 아래 리소스들을 사용한다. Role RoleBinding ServiceAccount Role이 binding된 (RoleBinding을 통해) ServiceAccount를 Pod에 할당함으로서 Pod는 지정된 Role을 사용할 수 있다. 이는 ServiceAcocunt 뿐만 아니라 User에도 동일하게 적용할 수 있다. 예제를 통해 작동원리에 대해 더 자세히 이해해보자. 개발자 A(아래 그림에서 test-user)가 kubernetes 클러스터의 특정 namespa..
Kafka 내부 동작 원리 이해하기 (1) Replication 편에 이어서. 다시 한번 강조하면 이 책은 고승덕님의 실전 카프카 개발부터 운영까지를 스터디하며 이해한 내용을 내 나름대로 정리한 포스팅입니다. 따라서 책과 다른 내용이 있다면 그것은 본인이 실수이니 수정 코멘트 부탁드리겠고, 자세하고 정확한 내용은 책을 참고바랍니다. 컨슈머 오프셋 관리 컨슈머가 제대로 동작하려면 오프셋(Offset) 관리가 핵심이다. 어디까지 읽었는지에 대한 북마크라고 이해하면 된다. 그렇다면 오프셋 정보는 어디에서 관리될까? 카프카에 맡길 수도 있고, 컨슈머 자체적으로 HDFS compatible storage에 저장하여 관리할 수도 있다 (ex. Spark Structured Streaming). 전자 방식의 경우 컨..
시작하기에 앞서 이번 시리즈는 고승덕님의 실전 카프카 개발부터 운영까지를 스터디하며 이해한 내용을 내 나름대로 정리한 포스팅임을 밝힌다. 양질의 저서를 출판해주신 고승덕님께 깊이 감사의 말씀을 전합니다. EDA(Event Driven Architecture)에서 Kafka는 SPOF(Single Point of Failure)가 될 수 있다. 따라서 Kafka는 물론이고 Hadoop 등의 분산 시스템에서는 애플리케이션의 HA(High Availability)를 위해 내부적으로 replication 동작을 수행하게 된다. Kafka에서 Topic 생성시 replication factor 지정은 필수이다. 그 외에도 많은 기업에선 클러스터간 미러링, 서버의 지리적 분산 등의 기본적인 조치를 취하게 된다. 분..
Structured Streaming + Kafka Integration Guide (Kafka broker version 0.10.0 or higher) 기준 내용이며, 실무에서 Kafka를 컨슈밍하는 Spark 스트리밍 어플리케이션을 운영하며 나름대로 적용하고 실험해본 옵션들에 대한 본인만의 노트인 점 참고바란다. kafka.group.id (default None) kafka consumer는 항상 하나의 consumer group에 속하게 되는데 이에 대한 식별자이다. Spark 내부적으로 스트리밍 쿼리마다 default generation 대상이며, 이를 특별히 지정하고자 하는 경우 사용한다(예를 들어 Kafka group-based authorization). 하지만 이를 사용하게 되면 bat..
TroubleShooting worker failed # redash.prod.values.yaml # 워커 수 상향 조정 adhocWorker: env: QUEUES: "queries,celery,schemas,default,periodic,scheduled_queries" WORKERS_COUNT: 6 scheduledWorker: env: QUEUES: "scheduled_queries,schemas" WORKERS_COUNT: 1 browser timeout # redash.prod.values.yaml # falsk webserver(gunicorn)의 timeout 값 상향 조정 server: env: GUNICORN_CMD_ARGS: "--timeout 600" scheduling faile..