Hadoop Ecosystem/Spark

    [Spark] 스파크 완벽 가이드 Chapter 2 - Spark의 동작 방식

    이전에 Spark에 대한 내용을 포스팅 했습니다. 하지만 Spark에 대해서 좀 더 깊게 공부하기 위해 최근에 "스파크 완벽 가이드"라는 책을 구매했습니다. 앞으로 이 책의 내용을 공부하면서 요약한 내용을 글로 포스팅 하겠습니다. 해당 게시물은 "스파크 완벽 가이드" 책을 참고하여 저의 지식과 함께 작성하는 글입니다. Spark Application과 다양한 언어 지원 Spark Application은 Driver와 다수의 Executor로 구성됩니다. Driver는 Application의 수행해야하는 Task들의 스케쥴링 및 전반적인 Application의 정보를 관리하기 때문에 핵심 프로스세입니다. Executor는 Driver의 스케쥴링으로 나온 Task들을 실제로 수행하는 프로세스입니다. 그래서 ..

    [Spark] Spark structured streaming으로 Kafka topic 받기 #3 - pyspark로 HDFS에 topic data 저장하기

    Docker 내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼. Kafka Publish, Subscribe 모델 구조로 이루어진 분산 메세징 시스템 Spark Streaming Spark API 중 batch와 실시간 streaming이 가능한 Spark API 이전 글에서는 console 창에서 입력하는 값을 topic에 produce 했었습니다. 이번에는 csv 파일을 이용하여 실시간으로 데이터를 전송하는 것처럼 producer를 구현하도록 하겠습니다. 글에서 실습할 전체적인 과정은 아래 이미지와 같습니다. Kafka-1 container가 Producer의 역할로 test1이라는 Kafka topic에 데이터를 보내고 test1 topic에 담겨있는 내..

    [Spark] Spark structured streaming으로 Kafka topic 받기 #2 - Spark 및 Hadoop 서비스 실행하기

    Docker 내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼. Kafka Publish, Subscribe 모델 구조로 이루어진 분산 메세징 시스템 Spark Streaming Spark API 중 batch와 실시간 streaming이 가능한 Spark API Hadoop & Spark 서비스 실행 이번 글에서는 Docker Compose를 이용하여 Hadoop과 Spark 서비스들을 microservice화 시키도록 하겠습니다. 이전 글에서 구성했던 Kafka와 Zookeeper를 모두 포함하여 yml 파일을 작성하고 "docker compose up -d" 명령어를 실행하도록 하겠습니다. 이때 새로운 폴더에서 진행합니다. docker-compose.ym..

    [Spark] Spark structured streaming으로 Kafka topic 받기 #1 - Kafka 클러스터 구성하기

    Docker 내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼. Kafka Publish, Subscribe 모델 구조로 이루어진 분산 메세징 시스템 Spark Streaming Spark API 중 batch와 실시간 streaming이 가능한 Spark API 이번 글부터는 Kafka 와 Spark를 docker로 구성 및 이용해보겠습니다. Docker를 이용한 hadoop 구성하기와 CDH 배포판 설치하기는 docker container를 hadoop 클러스터 중 하나의 서버로 사용해왔습니다. 하지만 docker에 대해서 공부하고 알다 보니 이것은 올바른 사용법이 아니라고 생각했습니다. 최근 docker와 k8s는 monolithic 모델보다는 micro..

    [Spark] Spark란? - Cluster Computing with Working Sets

    Spark란? Cluster 환경에서 In-Memory를 사용해 빠른 데이터 작업을 하기 위한 프레임워크. MapReduce에 이어서 이번 글에서는 Spark 를 소개하겠습니다. 사실 MapReduce 다음 주제로 Yarn을 정하려고 했지만 공부를 하다 보니 Spark 를 하게 되었고 MapReduce와 비교하며 설명하는 것도 나쁘지 않을 것 같아 Spark 로 정하게 되었습니다. Spark란? Spark 라는 것은 MapReduce와 비슷하게 HDFS에 저장되어 있는 데이터를 작업하고 처리하기 위한 프레임워크입니다. Java 언어로 작성해야 했던 MapReduce와 달리 Spark 는 Scala, Python, Java 등 다양한 언어로 프로그래밍이 가능하고 In-Memory 기반의 빠른 연산을 이용하..