[스파크 완벽 가이드] Apache Spark의 역사

salmonavocado's avatar
Sep 21, 2022
[스파크 완벽 가이드] Apache Spark의 역사
📢
본 글은 스파크 완벽 가이드Ch1. Apache Spark의 역사를 요약한 글입니다.
 

아파치 스파크란 ?

  • 통합 컴퓨팅 엔진이며 클러스터 환경에서 데이터를 병렬로 처리하는 라이브러리의 집합
  • 병렬 처리 오픈소스 엔진
  • 파이썬, 자바, 스칼라, R 지원
  • SQL , 스트리밍 , 머신러닝 지원
  • 다양한 환경
    • 단일노트북 환경부터 수천 대의 서버로 구성된 클러스터까지 사용 가능
      • 빅데이터 처리 쉽게 가능
       
 

아파치 스파크의 철학

  • 스파크의 기본 철학과 개발 배경
    • 사람들은 왜 갑자기 병렬 데이터 처리에 열광하게 되었는가?
    •  
       
  • 통합
    • 데이터 분석 작업을 같은 연산 엔진과 일관성 있는 api로 수행할 수 있도록 설계
      • 간단한 데이터 읽기부터, sql처리, 머신러닝 , 스트림 처리 등
    • 스파크의 통합 특성으로 기존의 데이터 분석 작업을 더 쉽고 효율적으로 사용
      • sql 쿼리로 데이터를 읽고 ml 라이브러리로 머신로닝 모델 평가할 때, 스파크 엔진이 이 두 단계를 하나로 병합하고 데이터를 한 번만 조회할 수 있게 해줌
    • 소프트웨어 영역의 여러 통합 플랫폼과 유사한 방식 제공
      • 빅데이터 분석 업무의 표준이 됨 . 과학자들은 R에서 제공하는 통합 라이브러리를, 웹 개발자는 Node js나 Django에서 제공하는 프레임워크를 .. 스파크가 통합 엔진을 제공하면서 모든게 한 곳에서 진행 가능
 
 
  • 컴퓨팅 엔진
    • 저장소 시스템의 데이터를 연산하는 역할 , 영구 저장소 역할 x
      • 통합이라는 관점을 중시해 기능의 범위를 컴퓨팅 엔진으로 제한 
      • 영구 저장소 : S3, Hadoop, Azure Storage
    • 데이터 저장 위치에 상관 없이 처리에 집중하도록 만들어짐
      • 내부에 데이터를 오랜 시간 저장하지 않으며 특정 저장소 시스템을 선호하지 않음 . 따라서 애플리케이션은 데이터가 저장된 위치 신경 안 써도 됨
    • 하둡과의 차별화 : 연산
      • 하둡은 HDFS와 MapReduce가 긴밀히 연결되어 있어 둘 중 하나만 단독으로 사용하기 어려움 . 특히 다른 저장소의 데이터에 접근하는 애플리케이션 개발이 어려움
      • 스파크는 하둡 저장소와 호환도 잘 되고, 공개형 클라우드 환경이나 스트리밍 애플리케이션이 필요한 환경, 하둡 아키텍처를 사용할 수 없는 환경에서도 많이 사용
 
 
  • 라이브러리
    • 풍부한 라이브러리 
      • Spark SQL , Mlib, Spark Streaming ... 외에 수많은 외부 라이브러리 존재 (spark-package.org)
      • 스파크 코어 엔진 자체는 최초 공개 후 큰 변화가 없었지만 라이브러리의 경우 더 많은 기능을 제공하기 위해 계속 변화
      •  
         

스파크의 등장 배경

  • 스파크는 컴퓨터 애플리케이션과 하드웨어의 바탕을 이루는 경제적 요인의 변화로 등장
    • 데이터 분석에 새로운 처리 엔진과 프로그래밍 모델이 필요한 근본적인 이유
      • 2005년에 멈춘 하드웨어 성능 향상, 단일 프로세서의 성능을 향상시키는 방법 대신 모든 코어가 같은 속도로 동작하는 병렬 CPU 코어를 더 많이 추가하는 방향으로 선회
 
 

스파크 실행하기

  • 스파크는 스칼라로 구현되어 JVM (자바 가상 머신) 기반으로 작동 
    • 자바를 설치 해야하는 이유
      • 최신 버전 스파크 사용하려면 자바 8 이상 설치 필요 , PATH나 JAVA_HOME 환경변수에 자바가 설치된 경로가 설정되어있는지 확인 필수
  • 파이썬 api 사용하기 위해서는 파이썬 인터프리터 2.7 버전 이상 또는 3.4 이상의 버전 사용
  • R 사용하려면 컴퓨터에 R을 설치 ( R 3.1 버전 이상 지원 )
  • 스파크 2.3 버전부터는 스칼라 2.11 버전 이상 지원
 
 

written by salmonavocado🥑
 
Share article

salmonavocado