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 가 어떻게 다루어지는지도 이야기 해 봅니다.

Practical Spark – Join (9)

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

이번 챕터에서는 Spark 의 Join Strategy 와 Spark 3.0 에서 새로 추가된 AQE 등의 기능에 대해 알아보며 Spark 내부동작에 대해 이해하고 큰 데이터를 효율적으로 병합하는 방법에 대해 논의해 봅니다.