Practical Spark – 자주 묻는 질문들 (12)

이번 챕터에서는 Apche Spark 사용자들이 자주 묻는 질문들을 17 가지 정도 정리해봤습니다. Spark 를 처음 사용하시거나 데이터 엔지니어링 세계로 새롭게 들어오신 분들에게 도움이 되지 않을까 싶습니다.

다루는 주제는 Scala 를 어떻게 학습하면 좋을까 부터 AWS EMR 관련된 이야기들 혹은 Spark 사용하면서 발생하는 OOM 이슈와 리소스 할당등 다양한 주제에 대해 이야기 해봅니다.

Practical Kafka – Concept (2)

Practical 시리즈는 AWS 환경 위에서 데이터 인프라를 구축하는데 참고할만한 내용들을 담고 있습니다. 이 글은 그 중 Practical Kafka 의 한 챕터입니다.

이번 챕터에서는 Kafka Partition 이 Consumer 에 어떻게 할당되는지와 이 과정에서 발생하는 Rebalancing 대해서도 이야기 해봅니다. 또한 Static Membership / Incremental Rebalancing 기능이 이러한 문제를 어떻게 풀고자 하는지도 살펴봅니다. 마지막으로는 데이터 유실과 중복이 발생할 수 있는 경우에 대해 알아보고 Idempotent Producer 와 Kafka Transaction 을 통해 어떻게 방지할 수 있는지도 살펴봅니다.

Practical Kafka – Intro (1)

Practical 시리즈는 AWS 환경 위에서 데이터 인프라를 구축하는데 참고할만한 내용들을 담고 있습니다. 이 글은 그 중 Practical Kafka 의 한 챕터입니다.

이번 챕터에서는 Spark / Flink Streaming 시스템에서 많이 활용되는 컴포넌트인 Kafka 의 기본적인 개념에 대해 알아봅니다. AWS Kinesis 와 가벼운 비교를 통해 Kafka 가 어떤 강점이 있는지 알아보고, Kafka 의 논리적인 구성요소인 Broker, Consumer, Producer, Partition, Offset, Consumer Group 에 대해서도 이야기 해 봅니다.

Practical Spark – Versions (11)

Practical 시리즈는 AWS 환경 위에서 데이터 인프라를 구축하는데 참고할만한 내용들을 담고 있습니다. 이 글은 그 중 Practical Spark 의 한 챕터입니다.

이번 챕터에서는 Spark 의 Version 별 변천사에 대해 알아봅니다. 버전이 올라가면서 개선된, 그리고 신규로 추가된 기능들에 대해 알아봅니다. 마지막 섹션에서는 Spark 의 성능을 좌우하는 Shuffle 을 외부 서비스를 이용해 수행하는 External Shuffle Service 에 대해서도 논의합니다.

Practical Spark – Memory (10)

Practical 시리즈는 AWS 환경 위에서 데이터 인프라를 구축하는데 참고할만한 내용들을 담고 있습니다. 이 글은 그 중 Practical Spark 의 한 챕터입니다.

이번 챕터에서는 Spark 의 Memory 구조를 살펴보면서 Spark Executor 에서 발생한 OOM 을 어떤 옵션을 통해 수정할 수 있는지 알아봅니다. 또한 EMR / EKS 사용시 고려해야 할 메모리를 포함한 옵션들에 대해서도 논의 해보고 PySpark / Apache Arrow 에서 Memory 가 어떻게 다루어지는지도 이야기 해 봅니다.