2015.04.09

ITWorld 용어풀이|스파크(Spark)

이대영 기자 | ITWorld
2014년 여름, 아파치소프트웨어 재단은 빅데이터 처리를 분산 클러스터에서 고속으로 실행할 수 있는 처리 기반의 스파크(Spark) 1.0을 정식으로 공개했다.

스파크는 빅데이터를 위한 실시간 분산형 컴퓨팅 프로젝트라고 요약할 수 있다. 빅데이터의 대표적인 분산형 저장 프로젝트인 하둡(Haddop)과는 달리, 스파크에는 '실시간'이라는 용어가 따라붙는다.

하둡이 HDFS(Hadoop Distributed File System)를 통해 스토리지를 경유하기 때문에 상호작용이 많아져 느리다는 단점이 있다. 이에 비해, 스파크는 인메모리 처리를 기본으로 하기 때문에 좀더 빠르고 지연 속도가 낮은 분석이 가능해 차세대 빅데이터 처리를 위한 프레임워크로 기대되고 있다.

스파크는 처리 대상이 되는 빅데이터를 HDFS에서 읽을 수 있지만, 이후 처리는 기본적으로 메모리에서 하기 때문에 기계학습이나 차트 계산처럼 반복 계산이 많은 작업에서는 하둡보다 빠르게 수행할 수 있는 것이다. 그래서 스파크는 하둡 맵리듀스 상에서 구동하는 것보다 100배 이상 빠른 데이터 분석 작업을 생성할 수 있게 해 준다는 평가를 받고 있다.

맵리듀스는 배치 모드에서 작업을 실행하기 때문에 하둡 클러스터에서 성능상의 병목현상을 일으킨다는 지적을 받아왔다. 이에 비해 스파크는 5초 이하의 짧은 배치 작업을 통해 분석을 처리하기 때문에 맵리듀스의 대안으로 부각된 것이다.

이런 스파크의 처음 시작은 2009년 미국 버클리 대학 산하 AMPLabs에서 개발한 오픈소스 소프트웨어 프로젝트였다. 이후 2013년 6월 인큐베이터 프로젝트로 채택되고, 2014년 2월에 최상위 프로젝트가 됐다. 현재 AMPLabs에서 독립한 스타트업인 데이터브릭스(Databricks) 등이 주축이 되어 전세계 100여 명의 전문가가 개발에 참여하고 있다.

스파크는 하둡 맵리듀스와 달리 인메모리 처리를 주로 하고 있기 때문에 데이터 내장애성(tolerance)을 고유의 방식으로 해결한다. RDD(Resilient Distributed Datasets)라는 읽기 전용 데이터 구조를 기반으로 하고 있으며, 연산은 RDD에서 RDD로의 변환을 연쇄적으로 실시함으로써 이루어진다. 따라서 클러스터 노드에서 오류가 발생해 데이터가 손실될 경우, 이 연쇄적 변환에 대한 정보를 바탕으로 남아있는 RDD에서 다시 연산하는 방식으로 장애에 대처한다.

스파크는 하둡의 일괄 처리방식뿐만 아니라 빅데이터 처리를 위한 포괄적인 분석 기반이 되는 것을 목표로 하기 때문에 복수의 프레임워크로 구성되어 있다.

스파크 실행 엔진은 하둡과 같이 일괄 처리를 담당하며 다른 프레임워크의 기반이 된다. 또한 데이터웨어하우스처럼 SQL에서 인터랙티브 분석을 가능하게 하는 것으로 샤크(Shark), 스파크 SQL, 블링크(BlinkDB) 등이 있다.

특히 스파크 스트리밍(Spark Streaming)은 사물인터넷의 센서 데이터나 SNS 데이터 등을 실시간으로 스트리밍 처리를 할 수 있게 한다. 스트리밍 지향성 프로세싱을 지원하는 것에는 스톰(Storm)도 있지만, 스파크는 스톰보다는 좀더 안정적인 분산형 컴퓨팅 플랫폼이다.

스파크는 하둡에서 맵리듀스의 기능성을 대체할 수 있다. 스파크는 기존 하둡 클러스터에서 실행시킬 수 있으며, 자원 스케줄링에는 얀(YARN)을 이용한다. 하둡과 얀(YARN) 외에도, 스파크는 스케줄링을 위해 메소스(Mesos) 위의 계층으로 배치하거나, 빌트인 스케줄러를 이용해 스탠드얼론 클러스터로 실행시킬 수 있다.

그런데 주의할 점이 있다. 하둡과 같이 사용하지 않을 경우, NFS, AFS 등 네트워크/분산형 파일 시스템을 이용해야 클러스터에서 실행시킬 수 있다. 그래야만 각 노드가 기반이 되는 데이터에 접속할 수 있기 때문이다. editor@itworld.co.kr


2015.04.09

ITWorld 용어풀이|스파크(Spark)

이대영 기자 | ITWorld
2014년 여름, 아파치소프트웨어 재단은 빅데이터 처리를 분산 클러스터에서 고속으로 실행할 수 있는 처리 기반의 스파크(Spark) 1.0을 정식으로 공개했다.

스파크는 빅데이터를 위한 실시간 분산형 컴퓨팅 프로젝트라고 요약할 수 있다. 빅데이터의 대표적인 분산형 저장 프로젝트인 하둡(Haddop)과는 달리, 스파크에는 '실시간'이라는 용어가 따라붙는다.

하둡이 HDFS(Hadoop Distributed File System)를 통해 스토리지를 경유하기 때문에 상호작용이 많아져 느리다는 단점이 있다. 이에 비해, 스파크는 인메모리 처리를 기본으로 하기 때문에 좀더 빠르고 지연 속도가 낮은 분석이 가능해 차세대 빅데이터 처리를 위한 프레임워크로 기대되고 있다.

스파크는 처리 대상이 되는 빅데이터를 HDFS에서 읽을 수 있지만, 이후 처리는 기본적으로 메모리에서 하기 때문에 기계학습이나 차트 계산처럼 반복 계산이 많은 작업에서는 하둡보다 빠르게 수행할 수 있는 것이다. 그래서 스파크는 하둡 맵리듀스 상에서 구동하는 것보다 100배 이상 빠른 데이터 분석 작업을 생성할 수 있게 해 준다는 평가를 받고 있다.

맵리듀스는 배치 모드에서 작업을 실행하기 때문에 하둡 클러스터에서 성능상의 병목현상을 일으킨다는 지적을 받아왔다. 이에 비해 스파크는 5초 이하의 짧은 배치 작업을 통해 분석을 처리하기 때문에 맵리듀스의 대안으로 부각된 것이다.

이런 스파크의 처음 시작은 2009년 미국 버클리 대학 산하 AMPLabs에서 개발한 오픈소스 소프트웨어 프로젝트였다. 이후 2013년 6월 인큐베이터 프로젝트로 채택되고, 2014년 2월에 최상위 프로젝트가 됐다. 현재 AMPLabs에서 독립한 스타트업인 데이터브릭스(Databricks) 등이 주축이 되어 전세계 100여 명의 전문가가 개발에 참여하고 있다.

스파크는 하둡 맵리듀스와 달리 인메모리 처리를 주로 하고 있기 때문에 데이터 내장애성(tolerance)을 고유의 방식으로 해결한다. RDD(Resilient Distributed Datasets)라는 읽기 전용 데이터 구조를 기반으로 하고 있으며, 연산은 RDD에서 RDD로의 변환을 연쇄적으로 실시함으로써 이루어진다. 따라서 클러스터 노드에서 오류가 발생해 데이터가 손실될 경우, 이 연쇄적 변환에 대한 정보를 바탕으로 남아있는 RDD에서 다시 연산하는 방식으로 장애에 대처한다.

스파크는 하둡의 일괄 처리방식뿐만 아니라 빅데이터 처리를 위한 포괄적인 분석 기반이 되는 것을 목표로 하기 때문에 복수의 프레임워크로 구성되어 있다.

스파크 실행 엔진은 하둡과 같이 일괄 처리를 담당하며 다른 프레임워크의 기반이 된다. 또한 데이터웨어하우스처럼 SQL에서 인터랙티브 분석을 가능하게 하는 것으로 샤크(Shark), 스파크 SQL, 블링크(BlinkDB) 등이 있다.

특히 스파크 스트리밍(Spark Streaming)은 사물인터넷의 센서 데이터나 SNS 데이터 등을 실시간으로 스트리밍 처리를 할 수 있게 한다. 스트리밍 지향성 프로세싱을 지원하는 것에는 스톰(Storm)도 있지만, 스파크는 스톰보다는 좀더 안정적인 분산형 컴퓨팅 플랫폼이다.

스파크는 하둡에서 맵리듀스의 기능성을 대체할 수 있다. 스파크는 기존 하둡 클러스터에서 실행시킬 수 있으며, 자원 스케줄링에는 얀(YARN)을 이용한다. 하둡과 얀(YARN) 외에도, 스파크는 스케줄링을 위해 메소스(Mesos) 위의 계층으로 배치하거나, 빌트인 스케줄러를 이용해 스탠드얼론 클러스터로 실행시킬 수 있다.

그런데 주의할 점이 있다. 하둡과 같이 사용하지 않을 경우, NFS, AFS 등 네트워크/분산형 파일 시스템을 이용해야 클러스터에서 실행시킬 수 있다. 그래야만 각 노드가 기반이 되는 데이터에 접속할 수 있기 때문이다. editor@itworld.co.kr


X