Ryu
  • 👩🏻‍💻 Ryu / software_engineer
  • ✨Resume
  • Python3
    • Python3 가상환경 설정하기
      • Python3 vs Python2
      • Pyenv
      • Venv
      • Pip
    • Flask
      • Flask 설치하기
      • API Server 만들기
    • REST API
    • Command Line 활용하기
    • Module 사용하기
      • Pickle - 자료형을 파일로 저장할 때
    • MongoDB connection
      • Pymongo
    • WSGI
      • 💡WSGI 가 필요한 이유
      • Web Server / WSGI / Middleware / Application 구조
      • WSGI Middleware 종류
      • Gunicorn
        • Gunicorn vs Uwsgi
    • Dockerize
      • 💡Dockerize 가 필요한 이유
      • 1. Create Dockerfile
        • Gunicorn 으로 nginx 와 app 연결하기
    • Kubernetes 로 배포하기
      • 💡Kubernetes 가 필요한 이유
      • Helm 사용하기
      • Helm 으로 k8s 에 앱 배포하기
  • Open Tracing (정리중)
    • Open Tracing 이란 무엇인가
    • Python OpenTracing Example
    • Jaeger, Jaeger UI
    • Python Jaeger Tutorial
    • Zipkin 알아보기
    • Jaeger-client 리스팅
  • Microservice Architecture
    • Netflix의 MSA 컨셉
      • ⚡️ MSA 를 도입할때 고려해야할 점들
  • Paper
    • Dynamo: Amazon’s Highly Available Key-value Store
      • 1. Introduction
      • 2. Background
      • 3. Related Work
        • Related Paper) Pastry, Chord
        • Byzantine Fault Tolerance
      • 4. System Architecture
        • 4.1 System Interface
        • 4.2 Partitioning
        • 4.3 Replication
        • Hash Function
  • Frontend
    • CommonJS 와 AMD
    • RequireJS
    • WebSocket
      • WebSocket vs Socket.io
      • polling vs long polling vs streaming
    • Vue.js
      • Vue.js 에서 WebSocket 사용하기
      • [프로젝트] Vue, Vuex, AntDesignVue 로 운영툴 만들기
    • React x Redux 로 프로젝트 만들기
      • 0. React, Redux 를 선택한 이유
      • 1. 프로젝트 생성하고 Webpack4 적용하기
      • 2. React 와 ReactDOM 적용하기
      • 3. Material UI 적용하기
  • Data Engineering
    • Spark
      • Spark 이란?
      • 각 데몬의 역할 Driver, Master, Worker
      • 장단점 / 함께사용하는 툴 / 사용 사례
  • Service Mesh (정리중)
    • RPC
    • gRPC - Python Server 만들기
      • step 2.
Powered by GitBook
On this page
  • Spark 이란?
  • 범용적이고 빠른 빅데이터 연산 작업을 수행하도록 설계된 "분산 클러스터링 플랫폼"
  • 기능
  • 라이브러리
  • 병렬 처리 엔진
  • RDD (Resilient Distributed dataset)

Was this helpful?

  1. Data Engineering
  2. Spark

Spark 이란?

Spark 의 기능 / 라이브러리 / 병렬 처리 엔진 에 대하여

목차

  • Spark 이란?

  • Spark 의 기능 / 라이브러리 / 병렬 처리 엔진 에 대하여

  • RDD

Spark 이란?

범용적이고 빠른 빅데이터 연산 작업을 수행하도록 설계된 "분산 클러스터링 플랫폼"

  • 메모리 하둡이라고도 불립니다.

  • 기존의 하둡이 M/R 작업을 디스크 기반으로 수행하기 때문에 느려지는 성능을 메모리 기반으로 옮겨서 고속화 하고자 하는데서 출발했습니다.

  • 이 위에 MapReduce나, 스트리밍 처리등의 모듈을 추가로 올려 사용할 수 있습니다.

  • 요즘은 대부분의 하둡 배포판에 스파크가 포함됩니다.

  • Spark의 엔진 자체만 놓고 보면 클러스터 컴퓨팅을 하기 위한 프레임워크처럼 추상화, 일반화 되어있고 범용적입니다.

기능

  • Map & Reduce (cf. Hadoop)

  • Streaming 데이타 핸들링 (cf. Apache Storm)

  • SQL 기반의 데이타 쿼리 (cf. Hadoop의 Hive)

  • 머신 러닝 라이브러리 (cf. Apache Mahout)

라이브러리

각종 데이터 처리 분야에 특화된 라이브러리

Apache Spark → Spark Core Spark SQL → hive와의 연동도 가능한 스키마 기반 데이터 분석 모듈 Spark Streaming → 실시간 스트리밍 데이터 처리 MLlib → 머신러닝 알고리즘 수행 GraphX → 그래프 알고리즘 처리 SparkR → 통계 분석 프로그램인 R과의 연동을 지원

병렬 처리 엔진

  • Spark의 기본컨셉은 드라이버(Driver)에서 정의한 여러 파티션(Partition)들에 대해 사용자의 특정한 작업(Task)을 각 노드의 실행기(Executor)가 수행해 주는 것입니다.

  • 이때 파티션 수가 여러 개 이고 이들을 각각의 노드에 퍼뜨려 수행하기 때문에 병렬처리 엔진이라고 부릅니다.

RDD (Resilient Distributed dataset)

"스파크가 사용하는 핵심 데이터 모델로서 다수의 서버에 걸쳐 분산 방식으로 저장된 데이터 요소들의 집합을 의미하며, 병렬처리가 가능하고 장애가 발생할 경우에도 스스로 복구될 수 있는 내성(tolerance)를 가지고 있다."

PreviousSparkNext각 데몬의 역할 Driver, Master, Worker

Last updated 6 years ago

Was this helpful?

rdd-paper-review