Apache Spark 개념편!


What is Spark?

분석 엔진 툴 - 통합된 분석엔진으로 분석 - ETL같은 데이터를 이동시키고 데이터를 정제

Speed

하둡과 스파크와 비교해보면 100배이상 스파크가 더 빠르다.

  • 하둡은 디스크에서 데이터를 처리.
  • 스파크는 메모리 위에서 데이터를 처리.

분산병렬처리

  • 클러스터 구조로 운영이 된다.
  • in-memory (빠른 이유)

Ease of Use

  • 여러 언어들 지원(Java, Scala, Python, R, SQL)
  • 메인 언어는 Scala

Cluseters

: 여러 컴퓨터들의 자원을 가지고 하나의 컴퓨터 처럼 사용하는 것

  • 마스터(Matser)와 슬레이브(Slave)로 구성


클러스터 구조

  • Apache Spack
  • 컨테이너 기반의 kubernetes
  • MySQL
  • Hadoop

size_main

마스터는 여러 컴퓨터들 중 대표, 슬레이브의 자원을 관리해준다.

Apache Spark Process

size_main

아파치스파크가 쓰는 데이터프레임, 데이터 셋, RDD 라는 세가지 형태가 있는데 그 중 데이터 프레임을 SQL 언어로 쉽게 정비하거나 데이터를 다룰 수 있다.

머신러닝 같은 경우 머신러닝 관련 라이브러리를 스파크가 가지고 있다.(사용하고 싶은 라이브러리를 코어위에서 설치해서 사용할 수도 있다.)

리소스 매니저 (Standalone, YARN, Mesos)
클러스터 구조는 안에 많은 자원이있는데 논리적으로 나눠져 있는데 그런 자원들을 어떻게 관리할 것인지 설정하는 것
  • 스파크 자체적으로 가지고 있음(따로 설치X) 여러대의 서버를 관리해줄 리소스 매니저 : YARN을 많이 사용


참고

https://www.youtube.com/watch?v=D3TLh_QVGPg