스파크 완벽 가이드 Ch1.

개굴·2023년 7월 20일
0

spark

목록 보기
1/1

Ch1. 아파치 스파크란

아파치 스파크 :

  • 통합 컴퓨터 오픈 소스 엔진
  • 클러스터 환경에서 데이터를 병렬로 처리하는 라이브러리 집합
  • 네 가지 언어를 지원 : 파이썬, 자바, 스칼라, R
  • 단일 노트북 환경에서부터 수천 대의 서버로 구성된 클러스터까지 다양한 환경에서 실행 가능 -> 엄청난 규모의 클러스터로 확장 가능

1.1 아파치 스파크의 철학

빅데이터를 위한 통합 컴퓨팅 엔진과 라이브러리 집합

통합

스파크의 핵심 목표 : 빅데이터 애플리케이션 개발에 필요한 통합 플랫폼을 제공

스파크의 통합 특성 :

  • 일관성 있는 조합형 API 제공 -> 작은 코드 조각이나 기존 라이브러리를 사용해 애플리케이션 개발 가능
  • 조합형 API로만 해결 불가할 경우 직접 스파크 기반 라이브러리 생성 가능

=> 대화형 분석과 운영용 애플리케이션에 필요한 플랫폼을 얻을 수 있음

컴퓨팅 엔진

통합이라는 관점 중시를 위해 기능의 범위를 컴퓨팅 엔진으로 제한
=> 저장소의 시스템 데이터를 연산하는 역할만 수행, 영구 저장소 역할 X

저장소 역할

  • 클라우드 기반 : 애저 스토리지 Azure Storage, 아마존 S3
  • 분산 파일 시스템 : 아파치 하둡
  • 키/값 저장소 : 아파치 카산드라
  • 메시지 전달 서비스 : 아파치 카프카

데이터 이동은 높은 비용을 차지함 => 스파크는 데이터 저장 위치에 상관없이 처리에 집중하도록 만들어짐

  • 연산 기능에 초점을 맞추며 하둡 같은 기존 빅데이터 플랫폼과 차별화
  • 하둡은 범용 서버 클러스터 환경에서 저비용 저장 장치를 사용하도록 설계된 하둡 파일 시스템과 컴퓨팅 시스템(맵 리듀스)를 가지고 있으며 두 시스템은 매우 밀접, 따라서 단독으로 시스템 사용이 어려우며 다른 저장소의 데이터에 접근하는 애플리케이션 개발도 어려움
  • 스파크는 하둡 저장소와 호환성이 높고 하둡 아키텍처를 사용할 수 없는 환경에서도 많이 사용됨

라이브러리

데이터 분석 작업에 필요한 통합 API를 제공하는 통합 엔진 기반 자체 라이브러리

스파크 표준 라이브러리 : 여러 오픈 소스 프로젝트의 집합체

  • 스파크 SQL : SQL과 구조화된 데이터를 제공
  • MLlib : 머신 러닝 지원
  • 스파크 스트리밍 : 스트림 처리 기능 제공
  • Graph X : 그래프 분석 엔진

1.2 스파크의 등장 배경

데이터 분석에 새로운 처리 엔진과 프로그래밍 모델이 필요한 이유? => 컴퓨터 애플리케이션과 하드웨어의 바탕을 이루는 경제적 요인의 변화

컴퓨터 프로세서의 성능 향상에 더 많은 연산과 대규모 데이터 처리를 맡겼음. 하지만 하드웨어 성능 향상은 물리적 방열 한계가 있어 하드웨어 개발자들은 단일 프로세서의 성능을 향상시키는 대신 병령 CPU 코어를 많이 추가하는 방향으로 선회 => 애플리케이션 성능 향상을 위해 병렬 처리가 필요하다는 것을 암시

데이터 수집에 필요한 기술 비용은 계속해서 저렴해지고 정밀도는 개선되어 수집 비용은 저렴해졌으나 데이터는 클러스터에서 처리해야 할 만큼 거대화
따라서 새로운 프로그래밍 모델이 필요해져 스파크가 탄생

1.3 스파크의 역사

맵 리듀스는 전통적인 머신러닝 알고리즘과 달리 단계별로 맵리듀스 잡을 개발하고 클러스터에서 각각 실행해야 하므로 매번 데이터를 처음부터 읽어야함
=> 이런 문제를 해결하기 위해 함수형 프로그래밍 기반의 API 설계, 연산 단계에서 메모리에 저장된 데이터를 효율적으로 공유할 수 있는 새로운 엔진 기반 API 구현

1.4 스파크의 현재와 미래

빅데이터 분석을 수행하는 기업의 핵심 기술이 될 것이라 예상

1.5 스파크 실행하기

1.5.1 로컬 환경에 스파크 내려받기

자바 설치 필수
파이썬으로 사용하려면 파이썬 버전 확인

출처 : 스파크 완벽 가이드

profile
알쏭달쏭혀요

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

소중한 정보 감사드립니다!

답글 달기