[빅데이터]Hadoop과 Spark

건너별·2021년 11월 5일
0

BigData

목록 보기
2/7

Hadoop Ecosystem

  • 빅데이터 플랫폼 위에 스파크가 적용되는 것이 일반적

Spark

  • In-memory 기반의 클러스터 컴퓨팅 데이터 처리 프로그램
  • RDD(Resilient Distributed Dataset)을 구현하기 위한 프로그램
  • in memory 기반의 데이터 처리방식이 real-time분석을 가능하게 해 줌으로서 하드디스크가 아닌 메모리에서 관리하고 실시간으로 분석할 수 있게 함
  • Spark SQL, Spark Streaming, MLlib 와 같은 라이브러리가 있음
    - Spark SQL: SQL 관련 작업
    - Streaming: Streaming 데이터 처리
    - MLlib: Machine Learning 관련 라이브러리
    - GraphX: Graph Processing


[출처: https://youtu.be/VSbU7bKfNkA]

데이터 저장 : AWS의 S3인스턴스를 이용하기도 함

Hadoop과 Spark의 차이


[출처: https://youtu.be/ivgQtdB-BS4의 이미지 변경]

  • 하둡은 파일을 디스크에 저장한 뒤 그걸 불러와 연산하고 닷 ㅣ디스크에 저장하면서 파일 처리를 수행
    -> I/O 바운드가 주요 병목현상

이에 스파크는 연산단계에서는 데이터를 메모리에 저장하자는 아이디어를 생각해 냄
-> 메모리는 태생이 휘발성이 강하기 떄문에,
RDD(Resilient Distributed Dataset), "탄력적 분산 데이터 셋" 이 고안됨
클러스터의 머신(노드)의 여러 메모리에 분산하여 저장할 수 있는 데이터의 집합

RDD의 특징

  • 메모리의 데이터를 읽기 전용(Read-Only, 변경 불가)로 만듦
  • 그리고 데이터를 만드는 방법을 기록하고 있다가 데이터가 유실되면 다시 만드는 방법을 사용

RDD 생성

  • 내부 데이터 집합 병렬화 : parallelize() 함수 사용
  • 외부 파일 로드 : textFile() 함수 사용

RDD 동작

  • transformations
  • Actions

구체적은 함수는 아래와 같습니다.

[출처: https://www.usenix.org/system/files/conference/nsdi12/nsdi12-final138.pdf (마태 자하리아의 RDD 논문)]

  • 실제 RDD를 만들고 Transformation하는 과정은 Lineage(계보)를 만드는 과정이고 RDD가 생성되지 않음.
  • Action을 해야 RDD가 생성됨

[출처: http://vishnuviswanath.com/spark_rdd.html]

profile
romantic ai developer

0개의 댓글