Spark 개요

  • 비교적 최근에(2012년) 등장하여 선풍적인 인기를 얻고 있는 분산처리 프레임워크
  • 메모리 기반의 처리를 통한 고성능과 Functional Programming 인터페이스를 활용한 편리한 인터페이스가 특징
  • Hadoop(MapReduce)는 매번 중간 결과를 디스크에 저장하지만, Spark는 이를 메모리에서 처리하므로 효율이 좋음.
  • PageRank나 머신러닝 알고리즘같이 반복계산이 많은 경우 특히 성능이 좋음.


Spark의 핵심개념

  • RDD (Resilient Distrubuted Dataset - 탄력적으로 분산된 데이터셋)
    • 오류 자동복구 기능이 포함된 가상의 리스트
    • 다양한 계산을 수행가능, 모모리를 활용하여 높은 성능을 가짐
  • Scala Interface
    • 매우 간결한 표현이 가능한 모던 프로그래밍 언어
    • Functional Programming이 가능해 데이터의 변환을 효과적으로 표현할 수 있음.




  • Hadoop (MapReduce)는 매번 중간 결과를 디스크에 저장하지만, Spark는 이를 메모리에서 처리하므로 효율이 좋음
  • PageRank나 머신러닝 알고리즘 같이 반복계산이 많은 경우 특히 성능이 좋음


Apache Spark 핵심개념

  • RDD (Resilient Distributed Dataset - 탄력적으로 분산된 데이터셋) 
    • 오류 자동복구 기능이 포함된 가상의 리스트
    • 다양한 계산을 수행 가능, 메모리를 활용하여 높은 성능을 가짐

Scala Interface

  • 매우 간결한 표현이 가능한 모던 프로그래밍 언어
  • Functional Programming이 가능해 데이터의 변환을 효과적으로 표현할 수 있음

    val file = spark.textFile("hdfs://...")

    val counts = file.flatMap(line => line.split(" "))

    .map(word => (word, 1))

    .reduceByKey(_ + _)

    counts.saveAsTextFile("hdfs://...")

  • No labels
Write a comment…