하둡의 한계: 맵리듀스 잡의 결과를 다른 잡에서 사용하려면 이 결과를 HDFS에 저장해야 하기 때문에 이전 잡의 결과가 다음 잡의 입력이 되는 반복 알고리즘에는 맞지 않다. 하둡은 low-level 프레임워크다보니 데이터를 조작하는 high-level 프레임워크나 도구가 많아 환경이 복잡해졌다. Spark 특징 빅데이터 처리를 위해 대량의 데이터를 고속 처리하는 오픈소스 병렬 분산 처리 플랫폼이다. 데이터셋을 추상적으로 다루기 위한 RDD라는 데이터셋이 있다. RDD(Resilient Distributed Dataset)은 노드에 장애가 발생해도 데이터셋을 재구성할 수 있는 복원성을 갖는다. 배치 처리, 스트림 처리, SQL 처리와 같은 서로 다른 형태의 애플리케이션을 하나의 환경에서 통합적으로 다룰 수 있다. HDFS만 읽는 것이 아니라 Hive, Hbase, PostgreSQL, Mysql, Maria, CSV 등의 DB도 읽을 수 있다. 스톰보다는 범용 분산형 컴퓨팅 플랫폼에 가깝다. 하둡에서 맵리듀스의 기능성을 대체할 수 있고 자원 스케줄링에는 얀을 이용한다. 하둡과 같이 사용하지 않을 경우 NFS, AFS 등 네트워크/분산형 파일 시스템을 이용해야 클러스터에서 실행시킬 수 있다. 그래야만 각 노드가 기반이 되는 데이터에 접속할 수 있기 때문이다. 구조 스파크 코어: 병렬분산처리 엔진 스파크 SQL: SQL 담당 스파크 스트리밍: 스트림 처리 담당 MLlib: 머신 러닝 담당 그래프X: 그래프 처리 담당 장점 메모리 효율을 높여서 하둡의 맵리듀스보다 빠르게 설계되었다. 맵리듀스처럼 잡에 필요한 데이터를 디스크에 매번 가져오는 대신 데이터를 메모리에 캐시로 저장하는 인메모리 실행 모델을 쓴다. 이런 변화는 머신 러닝, 그래프 알고리즘 등 반복 알고리즘에 유리하다. 맵리듀스는 기본적으로 메인, 매퍼, 리듀스 클래스 세 가지를 만들어야 하지만 스파크는 간단한 코드로 짤 수 있다. 일괄 처리 작업이나 데이터...