Who use Spark, and for What?
누가 사용하고 어디에 사용하는가?
Spark는 cluster computing을 위한 범용 framework이기 때문에 폭 넓은 application에 사용할 수 있다. Preface에서 이 책의 독자로 Data Scientist, Engineer의 두 부류를 제시했다. 각 부류를 좀 더 면밀하게 살펴보고 그들이 어떻게 Spark를 사용하는지 알아보자. 두 부류가 사용하는 case를 간단하게 정리하자면 Data Science, Data Application으로 분류할 수 있다.
Data Science Task
Data Science는 지난 몇 년 동안 데이터 분석의 중심부에 위치해 왔다. 하지만, 표준화된 정의가 없기 때문에 여기서는 데이터를 분석하고 모델링하는 작업을 주로 하는 사람들을 Data Scientist라고 한다. Data Scientist는 SQL, 통계, 미래 예측 모델링 (machine learning), 일반적으로 Python, Matlab, R과 같은 약간의 프로그래밍을 경험한 사람들이다. Data Scientist는 때때로 Data wrangling이라고 부르는 분석할 수 있는 이해 가능한 데이터로 형식을 변환하는 기술에 대해서도 어느 정도 경험이 있는 사람들이다.
Data Scientist는 어떤 질문에 대한 답을 구하기 위해서, 통찰력을 발견하기 위해서 데이터를 분석하는데 스킬을 사용한다. 종종 특별한 분석을 위해서, 때때로 interactive shell을 사용하여 query의 결과나, 최소한의 시간으로 구현한 코드의 결과를 본다.
Spark의 속도와 simple API는 이러한 목적에 빛을 발한다. 그리고 built-in 라이브러리를 통해서 다양한 알고리즘을 적용할 수 있다. 때로 최초로 사용할 때, Data Scientist의 작업이 제품화이거나 확장, 어려운 작업이거나 data processing application을 튜닝하는 작업일 수 있다. Data Scientist의 초기 연구가 상품 추천 시스템 생성을 이끄는 것일 수도 있다.
Data Processing Applications
Spark를 사용하는 또 다른 경우는 Engineer 관점에서 사용하는 것일 수 있다. 이 경우 Data Processing Application을 만들기 위해 Spark를 사용하는 많은 분야의 소프트웨어 개발자를 생각해 볼 수 있다. 이런 개발자들은 software engineering에 대한 원리를 이해하고 있다. 캡슐화, 인터페이스 설계, OOP 에 대해서 알고 있을 것이다. 컴퓨터 공학을 전공하고, 소프트웨어 시스템 설계하고 빌드할 수 있는 능력이 있는 사람들이다.
Engineer를 위해서 Spark는 Cluster상에서 application을 병렬화하는 간단한 방법을 제공한다. 분산 프로그래밍에 대한 복잡한 면을 감추고, 네트워크 통신이나 fault tolerance에 대해서도 신경 쓸 필요가 없다. 모니터링과 검사, application 튜닝을 쉽게 할 수 있고, common task를 빠르게 구현할 수 있다. API의 모듈화된 특성에 따라 재사용 가능한 라이브러리로 로컬에서 테스트도 쉽게 할 수 있다.
Spark의 사용자들은 굉장히 다양한 기능들을 제공하기 때문에 data processing application을 위해서 쉽게 배우고 사용할 수 있다.
Spark History
Hadoop 기반 MapReduce가 interative computing job에 비효율적이라는 것을 알고, UC 버클리 RAD lab => AMLLab에서 연구 시작. 처음에는 interactive query, iterative algorithms를 빨리 실행하고 in-memory storage와 효율적인 fault recovery를 지원하자는 아이디어에서 출발함.
처음에는 MapReduce보다 10-20배 빠른 성능을 보임. 그 이후, machine learning 연구자들이 샌프란시스코 만의 교통 상황을 모니터링하고 예측하기 위해 Spark을 사용하기 시작함. 지금은 굉장히 빠른 시간 내에 사용하는 조직이 늘었음.
2011년도에 AMLLab 연구자들이 Shark(Hive on Spark), Spark Streaming을 개발하기 시작함.
댓글을 달아 주세요
댓글 RSS 주소 : http://www.yongbi.net/rss/comment/654