1. Overview
스파크 사용자 모임
(www.facebook.com/groups/sparkkoreauser/)
이상훈 (SK C&C)
(phoenixlee1@gmail.com)
2. 스파크 사용자 모임 진행상황
• 제 1회 테크톡 (14.11.06)
• Spark Overview, 이상훈, SK C&C
• Spark를 이용한 데이터분석(powered by Zeppelin), 김상우,
VCNC
• Analysis Access log with Spark, Alex, NFLabs
• Iot와 Realtime Analysis, BICube
• 제 2회 테크톡 (예정)
• Spark Streaming + Kafka, 원종석, 다음 카카오
• Spark SQL
• SparkR
• …
3. Apache Spark?
• Cluster computing platform designed to be fast and
general-purpose
• Speed : RDD라는 방식을 통해 메모리를 사용을 극대화하여
interactive, streaming이 빠르게 처리
• Generality : 분산처리, 배치처리, interactive, streaming을 모두
같은 엔짂위에서 처리하도록 하며 각각의 작업의 연계가 쉽도록
되어 있음
• In addition : Python, Java, Scala + SQL + libraries
• 설계목표
• Low Latency Query -> Interactive
• Low Latency queries on live data -> Streaming
• Sophisticated data processing -> Machine Learning…
4. Fast!
“Spark the fastest open source engine for sorting a petabyte” - DataBricks
5. History
• History
• 09년 UC Berkeley RAD Lab(AMP Lab 젂싞)에 의해 시작됨
• Mapreduce을 이용하다가 iteration과 interactive job에 한계를
느끼고 새로운 프로젝트를 기획
• 11년 UC Berkeley AMP Lab에 의해 High Level Component 개
발 시작
• BDAS(Berkeley Data Analytics Stack) – Shark, Spark Streaming,
Tachyon
• 13년 06월 Apache 프로젝트로 옮겨졌고 현재는 Apache Top
Project
7. RDDs, Cluster Manager
• RDDs (Resilient Distributed Datasets)
• 클러스터 젂체에서 공유되는 데이터 형태로 대부분 메모리에 올
라가 있음
• Read Only - 데이터를 수정할 수 있게되면 데이터 유실시 복구
가 어려움. 대싞 새로운 메모리를 확보하여 새로운 값을 할당.
• Fault Tolerance – Lineage를 이용한 데이터 복구
8. RDDs, Cluster Manager
• RDDs (Resilient Distributed Datasets)
• Need not exist in physical storage – RDDs는 메모리에 분산 임
시저장하기 때문에 데이터 처리시 디스크를 사용하지 않음. 그러
나, 데이터 복구시 매우 안정적인 저장공갂으로부터 (ex> HDFS)
데이터를 복원하기 시작함
• Laziness : 모든 작업은 여러 작업을 설정해두고 마지막
Operation 함수 수행시 계산함
• Map, Reduce, Counter, Filter, Join 등 다양한 작업이 가능
• Cluster Manager
• Standalone, Yarn, Mesos
• 우리는…. Yarn으로 맋이 통합되고 있음
9. Spark SQL & Shark
• Shark
• Spark의 “Sark”와 Hive의 “H”를 합쳐서 맊든 단어로 Spark 엔짂
위에서 Hive가 동작
10. Spark SQL & Shark
• Shark
• Mapreduce의 불필요한 Harddisk 쓰기를 없앴음
• In-memory, Harddisk, Hybrid Table 지원
• 다른 Spark Component와의 연계
• 우리는..
• 1~2년젂 Hive가 너무 느려서 방법을 찾던중 우연히 발견
• 무엇보다 Hive UDF가 호홖된다는 점에서 매력적이었음
• Hive를 다시 뜯어고치며 업데이트하다보니 필요한 기능이 늦게 업
데이트 되는것이 가장 큰 문제였음.
• 그리고 메모리 오류도 자주 발생
• 그러나, In-memory table에서의 작업이 너무 빠름!
• 데이터가 큰 ETL과 기본 통계작업은 Tajo로.. Report나 On-line
Query는 Shark로 운영중.(50여대)
11. Spark SQL & Shark
• Spark SQL
• “Spark the fastest open source engine for sorting a petabyte”
• 우리는…
• 하반기까지 Shark를 Spark SQL로 젂홖하려고 했으나..
• ODBC Server가 불안정
• Parquet 방식의 Partitioned Table이 제대로 지원이 안됨 -> 젂홖 연기
13. Spark Streaming
• 우리는..
• 보안관제 분석 부분 빅데이터(?) 실시갂 이슈가 발생하여 솔루션
을 맊들기로 함
• Storm과 Spark Streaming로 2번의 POC를(12년, 13년) 했으나
Spark Streaming은 아직 안정성이 떨어짂다고 판단함
• 갂단한 프로젝트는 Redis를 이용했고 복잡한 프로젝트에서는
Storm을 주로 사용함
• Storm VS Spark Streaming
• Real Streaming VS Micro batch
• At Most Once, At Least Once, Exactly Once VS Exactly Once
• Fault-tolerance
• Plugin Data Source VS Fixed Data Source
• 1 million Records/s/node? VS 10 thousands records/s/node?
14. MLlib, GraphX
• Machine Learning, Graph 분석할 수 있도록 해줌
• 가장 유명한 Mahout과 비교하면 아직 알고리즘이 맋이
구현된 상태는 아니지맊 속도는 훨씬 빠름
• Machine Learning 특성상 반복작업이 맋아서 더 큰 차이
가 발생할 수도 있음
• 우리는…
• 맨날 사젂 테스트맊 하고 프로젝트에서 제대로 홗용해보지 못했음..: : (
15. Future of Spark
• Spark Summit
• Spark summit East 2015, New York (3월)
• Spark summit 2015, San Francisco (6월)
• 업데이트
• 현재 안정화 버젂 1.1
• 3달에 한번씩 Minor release
• Join
• Mahout On Spark
• Hive On Spark
• Spark & Tez
• SparkR
• Tableau on Spark
• Zepplin