최근 커플들을 위한 SNS '비트윈'을 운영하는 VCNC 엔지니어링 블로그에 'VCNC가 하둡 대신 스파크를 선택한 이유'라는 다소 도발적인 제목의 글이 올라왔다. 빅데이터를 상징하는 대표적인 키워드 중 하나인 하둡을 스파크(Spark)라는 생소한(?) 기술이 삼켰다는 의미로도 읽혔기 때문이다.
하둡 플랫폼 생태계는 데이터를 저장하는 하둡 파일 시스템(HDFS), 데이터 분석 및 분산 처리 기술인 맵리듀스, SQL 언어로 분석을 할 수 있게 해주는 SQL 온 하둡 기술 일종인 하이브 등으로 이뤄져 있다. VCNC는 이번에 하둡 맵리듀스와 하이브 대신 스파크를 사용했다. 또 HDFS 대신 HDFS 호환 파일 시스템인 아마존 클라우드 스토리지 서비스 S3를 도입했다. S3에서 입출력을 위해서는 하둡 소스코드가 필요하다고 한다.
VCNC는 이번 프로젝트에서 하둡과 완전 결별한 것은 아니지만 맵리듀스와 하이브 대신 스파크를 도입하고, 아마존 S3를 활용했다. 기존의 하둡 도입 프로세스와는 다른 것이어서 주목된다.
빅데이터 분석 분야에서 또 하나의 킬러 기술이 등장한 것인가? 스파크가 기존 빅데이터 분석 기술과 어떻게 다른지, 잠재력은 어느정도인지 VCNC 공동 창업자로 블로그에 해당 글을 쓴 김상우씨로부터 직접 얘기를 들어봤다.
스파크는 세상에 나온지 이제 3년 정도 된 빅데이터 분석 기술이다. 지난해를 기점으로 개발자들 사이에서 주목을 끌기 시작했다. 가장 큰 장점은 빠르고, 쓰기도 쉽다는 것이다. 하둡 맵리듀스의 경우 나온지 꽤 됐음에도 여전히 까다로운 기술로 꼽힌다. 하이브 역시 데뷔 10년 가까이 됐지만 성능 이슈에서 자유롭지 않다는 지적이다. 스파크가 맵리듀스나 하이브를 대체할 잠재력을 갖췄다는 전망이 나오는 이유다.
김상우씨는 "스파크는 성능이 좋고 사용하기 쉬울 뿐 아니라, 범용으로 사용할 수 있는 프레임워크여서 향후 보다 많은 분야에서 널리 쓰일 것이다"고 예상했다. 빅데이터의 주류로 성장할 것이란 뉘앙스가 진하엑 풍긴다. 그는 "지난해 스파크 1.0 버전이 나오면서 사용에 따른 걸림돌들이 대거 해결됐다"면서 "이를 기반으로 더욱 빠르게 확산되고 있다고 생각한다"고 말했다. 스파크 프로젝트를 주도하는 AMP랩과 데이터브릭스에서 자동 테스트 등 범용성 강화를 위한 투자를 계속하고 있다는 점도 강조했다.
맵리듀스나 하이브가 어렵고 만족도가 떨어지다보니 SQL 언어를 사용해 하둡에 저장된 데이터를 분석하는, 이른바 SQL 온 하둡 기술도 주목받고 있다. 타조나 임팔라 등이 대표적이다. 이런 상황에서 등장한 스파크는 '타조'나 '임팔라'와는 어떤 관계로 봐야할까?
김상우씨에 따르면 일부 중복되는 부분도 있지만 일단은 각자의 길을 걸을 것으로 전망된다. 스파크는 맵리듀스를 사용하는 개발자들이 1차 공략 대상이고, SQL 온 하둡은 SQL에 친숙한 IT담당자들을 겨냥하고 있다. 스파크에는 스파크 SQL이라고 해서 하이브와 유사한 기능을 하는 프로젝트도 있지만 아직은 초보적인 단계다. 그럼에도 스파크가 쓰기 쉽고 간편하다보니 SQL언어에 익숙한 IT담당자들도 스파크를 조금씩 배워서 사용하는 경우들이 있다고 한다.
관련기사
- 빅데이터의 상징 하둡, 예상보다 안 크는 이유2015.05.29
- "강력한 빅데이터 엔진으로 개인화 마케팅 실현"2015.05.29
- “마케팅, 도구 배우는데 힘쓰지 마라”2015.05.29
- 구글, 내부 핵심 DB기술도 클라우드로 판다2015.05.29
김상우씨는 "기존에 데이터를 요청하고 협업하는 방식이 비효율적인 부분이 많았기 때문에 간단한 것은 직접하려 하는 것이다"고 분위기를 전했다. 또 "미국에선 개발자 - SQL언어에 익숙한 IT담당자, 분석가 중간정도 역할, 혹은 두가지 역할을 모두 수행하는 새로운 부류의 직종이 유행인데, 스파크는 데이터 추출부터 분석까지 한가지 툴로 다 할 수 있기 때문에 이들에게 정말 좋은 도구라고 생각한다"고 말했다.
스파크는 함수형 프로그래밍 언어인 스칼라에 기반한다. 스칼라를 모른다고 해서 개발자가 스파크 도입을 망설일 필요는 없을 것 같다. 김상우씨는 "스파크API는 스칼라 콜렉션 라이브러리 API를 거의 똑같이 따랐다"면서 "스파크 API가 상당히 간단하기 때문에 그냥 하나씩 시도해 보면서 배워나가는 것이 좋다고 생각한다"고 말했다.