ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spark : Basic
    AI 2022. 7. 26. 14:51

    정의

    • 인메모리 기반의 대용량 데이터 고속 처리 엔진
    • 범용 분산 클러스터 컴퓨팅 프레임워크

    특징

    • 인메모리 기반이기 때문에 빠른 처리가 가능하다
      • MapReduce은 작업의 중간 결과를 디스크에 쓰기 때문에 IO로 인한 작업 속도에 제약이 생기지만, 스파크는 이러한 중간 결과를 메모리에 저장하기 때문에 반복 잡어에서 높은 처리 효율을 보인다.
    • Java, Scala, Python, R, SQL과 같이 다양한 언어를 지원하여 사용의 편이성 제공
      • 언어마다 처리 속도의 차이가 있음.

    [출처] https://mindfulmachines.io/blog/2018/6/apache-spark-scala-vs-java-v-python-vs-r-vs-sql26

     

    • SQL, Streaming, ML, 그래프 연산 등 다양한 컴포넌트 제공
      • Spark Streaming을 이용한 스트림 처리
      • Spark SQL을 이용한 SQL 처리
      • MLib를 이용한 머신러닝 처리
      • GraphX를 이용한 그래프 처리
      • 추가적인 SW 설치 없이 다양한 애플리케이션 구현이 가능하며, 각 컴포넌트간의 연계를 이용해 애플리케이션의 생성도 쉽게 구현
    • YARN, Mesos, Kubernetes등 다양한 클러스터에서 동작이 가능 / HDFS, HBase, Hive 등 다양한 파일 포맷 지원
      • 기본적으로 txt, Json, ORC, Parquet 등의 파일 포맷 지원
      • S3, HDFS, HBase, Hive 등과연동 가능

    컴포넌트 구성

    • 스파크 코어 + 스파크 라이브러리 + 클러스터 매니저
    • 스파크 코어
      • 메인 컴포넌트로 작업 스케줄링, 메모리 관리, 장애 복구와 같은 기본적인 기능 제공
      • Resilient Distributed Dataset(RDD), Dataset, DataFrame을 이용한 스파크 연산 처리
      • RDD : 스파크 컨텍스트 객체 이용
      • Dataset, DataFrame : 스파크 세션 객체 이용
    • 스파크 라이브러리
      • Spark SQL
        • SQL을 이용하여 RDD, DataSet, DataFrame 작업을 생성하고 처리
        • Hive 메타스토어와 연결하여 하이브의 메타 정보를 이용하여 SQL 작업 처리
      • Spark Streaming
        • 실시간 데이터 스트림을 처리하는 컴포넌트, 스트림 데이터를 작은 사이즈로 쪼개어 RDD 처럼 처리
      • MLib
        • Classification, Regression, Clustering, Collaborative Filtering 등 ML 알고리즘과 모델 평가 및 외부 데이터 불러오기 같은 기능 지원
      • GraphX
        • 분산형 그래프 프로세싱 지원. 각 간선이나 점에 임의의 속성을 추가한 지향성 그래프 생성 가능
    • 클러스터 매니저
      • Standalone 관리자 및 Mesos, YARN, Kubernetes 등의 관리자를 지원

     

    'AI' 카테고리의 다른 글

    Spark : RDD  (0) 2022.07.27
    Spark : 구조  (0) 2022.07.26
    MLOps 입력값 드리프트  (0) 2022.07.13
    Sequence To Sequence  (0) 2021.01.03
    Word Embedding  (0) 2020.12.29

    댓글

Designed by Tistory.