'Spark'에 해당되는 글 18건
(Chapter 1) 07. Cluster Manager :: 2015/01/30 15:57
Cluster Managers
Spark는 하나의 node에서 수천 개의 compute node로 효율적으로 성능을 높일 수 있도록 설계되었다.
Flexibility를 극대화하기 위하여 Spark는 Hadoop YARN, Apache Mesos, Standalone Scheduler로 불리는 Spark 자체의 간단한 cluster manager 등과 같은 각양각색의 cluster manager를 실행할 수 있다.
Spark를 맨 처음 설치했을 때는, Standalone Scheduler가 쉽게 시작하는 방법을 제공한다. 반대로 이미 YARN이나 Mesos Cluster가 설치되어 있다면, Spark는 이미 설치되어 있는 환경 상에서 application을 실행할 수 있도록 지원한다.
(Chapter 1) 06. GraphX :: 2015/01/30 15:56
GraphX
GraphX는 Spark 0.9에 추가된 graph를 다루는 라이브러리이다. 병렬 그래프 분석을 처리한다. Spark Streaming과 Spark SQL과 같이 GraphX도 RDD API를 확장하여 임의의 properties를 각 vertex and edge (꼭지점과 선)에 추가할 수 있다.
GraphX는 일반적인 그래프 알고리즘 (PageRank or Triangle Counting)을 포함하여 graph를 다루는 operation을 지원한다.
(Chapter 1) 05. MLlib :: 2015/01/30 15:55
MLlib
Spark는 MLlib라고 불리는 common machine learning (ML) 기능의 라이브러리를 제공한다. MLlib는 다양한 타입의 machine learning 알고리즘을 제공한다. (binary classification, regression, clustering, collaborative filtering, model evaluation, data import)
또한 generic gradient descent optimization algorithm과 같은 lower level ML primitive도 제공한다. 이 모든 method들은 cluster상에서 scale out 할 수 있도록 설계 되었다.
(Chapter 1) 04. Spark Streaming :: 2015/01/30 15:54
Spark Streaming
Spark Streaming은 live stream data 처리를 위한 Spark component이다. 예를 들어 live stream data는 웹 서버에 의해 만들어지는 log file이나 웹 서비스의 사용자에 의해 post되는 상태 업데이트 정보를 담고 있는 message queue를 의미한다.
Spark Streaming은 Spark Core의 RDD API와 밀접하게 매칭되는 data stream을 다룰 수 있는 API를 제공한다. 프로그래머는 API를 통해 메모리나 디스크에 저장된 데이터나 실시간 데이터를 다루는 프로젝트나 application을 쉽게 개발할 수 있다.
Spark Streaming은 Spark Core에서 제공하는 fault tolerance, throughput, scalability와 동일한 수준으로 제공하도록 설계되어 있다.
(Chapter 1) 03. Spark Core, SQL :: 2015/01/30 15:29
Spark Core
Spark Core는 task scheduling, memory management, fault recovery, storage system interacting등을 담당하는 component를 포함하여 Spark의 기본 기능을 제공한다.
또한 Spark Core는 Spark의 main programming abstraction인 RDD (Resilient Distributed Dataset)을 정의한 API의 홈이기도 하다. RDD는 병렬 처리할 수 있는 많은 computing node에 분산되어 있는 아이템들의 집합을 나타낸다.
Spark Core에서는 이런 collection들을 다룰 수 있는 많은 API를 제공한다.
Spark SQL
Spark SQL은 Apache Hive가 SQL을 변형하여 제공하는 Hive Query Language (HiveQL)처럼 SQL을 통해 Spark와 interacting하는 것을 지원한다. Spark SQL은 Spark RDD로 database table을 표현하고, Spark operation으로 SQL query를 변환한다.
Spark에 SQL interface를 제공하는 것을 넘어, Spark SQL은 개발자가 하나의 application안에서 SQL query를 섞어서 Python, Java, Scala로 RDD가 지원하는 데이터 처리 프로그램을 개발할 수 있게 한다.
Spark stack의 나머지 부분에 의해 제공되는 풍부하고 유연한 computing environment의 밀접한 통합은 다른 오픈 소스 data warehouse tool과는 다른 부분이다. Spark SQL은 버전 1.0 이후로 포함되어 있다.
Shark는 Spark SQL보다 먼저 만들어진 UC 버클리 프로젝트이다. Spark SQL의 위에서 동작하도록 포팅되었다. Shark는 Spark가 Apache Hive를 대체하여 동작하도록 추가 기능을 제공한다. 외부 graphing and data exploration tool을 쉽게 연결하도록 하는 JDBC 서버 뿐만 아니라 HiveQL shell을 포함하고 있다.