아파치 스파크란 무엇인가?

Updated on

목차:

  • 범용적이면서도 빠른 속도로 작업을 수행할 수 있도록 설계한 클러스터용 연산 플랫폼
  • 혹시 어려운 용어가 낯선 분들에게 직역하자면, 데이터 분석이나 처리를 할 때 다른 언어 환경을 통합적으로 구성해 데이터 처리/분석과 같은 작업을 유연하게 처리할 수 있도록 해주는 애플리케이션 ( 다양한 언어를 지원 : 자바,파이썬,SQL )
  • 머신러닝이나 다양한 연산 모델을 효과적으로 지원한다.
  • 하둡 클러스터(HDFS) 내에서도 설치하여 실행할 수 있다.

통합된 구성 요소

  • 스파크의 엔진은 SQL이나 머신러닝 같은 고수준 컴포넌트를 실행할 수 있게 해준다.
  • 컴포넌트 연동의 장점 중 하나는 서로 다른 데이터 처리 모델을 깔끔하게 합쳐 하나의 애플리케이션을 만들 수 있다
  • 예를 들어 데이터를 실시간으로 분류하는 머신러닝 모델을 만들었다면, 분석가들은 결과 값에 실시간으로 SQL 질의를 할 수 있다.
  • 또는 즉각적인 분석을 하기 위해 파이썬 셸로 접근 가능하다.

스파크의 구성 요소

스파크 코어

  • 작업 스케줄링, 메모리 관리, 장애 복구, 저장 장치와의 연동 기본적인 기능으로 구성
  • 탄력적 분산 데이터 세트(RDD)를 정의
  • RDD는 여러 컴퓨터 노드에 흩어져 있으며 병렬처리가 가능하다.
  • 스파크 코어는 해당 모듈들을 관리

스파크 SQL

  • 정형 데이터를 처리하기 위한 스파크의 패키지
  • SQL과 복잡한 분석 작업을 서로 연결

스파크 스트리밍

  • 실시간 데이터 스트림(순차적으로 들어오는 데이터 흐름)을 처리 가능하게 한다.
  • 데이터 스트림 조작 API를 지원한다.
  • 스파크 코어와 동일한 수준의 장애 관리,처리량,확장성을 지원한다.

MLlib

  • 머신러닝 기능을 갖고 있는 라이브러리와 함께 배포된다.
  • 분류/회귀/협업 필터링/최적화 알고리즘 등 저수준의 핵심 머신러닝 기술을 지원한다.

그래프X

  • 그래프X는 (SNS의 친구 관계(네트워크 모델)) 을 다루기 위한 라이브러리다.
  • 간선이나 점에 임의의 속성을 추가한 지향성 그래프를 만들 수 있으며 그래프를 다루는 관련 메소드들의 라이브러리를 지원한다

클러스터 매니저

  • 하둡의 얀,아파치 메소드,단독 스케쥴러 등 다양한 클러스터 매니저 위에서 동작할 수 있다.

스파크의 저장소 계층

  • 하둡 분산 파일 시스템이나 하둡 API가 지원하는 다른 저장 시스템으로부터 분산 데이터모음을 만들 수 있다.
  • 하지만, 스파크가 무조건적으로 하둡을 필요로 하진 않는다.
  • 다양한 자료구조의 형태도 지원한다. (txt,Avro,Parquet) 등