요즘 떠오르는 빅데이터 관련 직무 4가지를 든다면, 데이터 사이언티스트(Data Scientist), 데이터 엔지니어(Data Engineer), 데이터 분석가(Data Analyst), 머신러닝 엔지니어(Machine Learning Engineer)를 들 수 있다. 이 4가지 직무는 칼로 무 자르듯이 명확하게 구분되지는 않지만, 직무별로 필요한 역량과 기술은 저마다 조금씩 차이가 있다.
이 4가지 직무에 대한 이해를 돕기 위해 기획자와 개발자의 성향에 따라 직무를 분류해 보면, 데이터 분석가는 기획자에 가깝고, 데이터 엔지니어는 개발자에 가까우며, 데이터 사이언티스트와 머신러닝 엔지니어는 이 두 직무의 중간에 위치한다고 볼 수 있다. 빅데이터 관련 직무 범위가 빅데이터 분석 기획부터 빅데이터 처리 플랫폼 개발까지 워낙 광범위한 데다가 관련 직업에 대한 수요가 커지면서 빅데이터 처리 및 분석에 대한 관심도 끊임없이 증가하고 있다.
기존의 하드웨어와 소프트웨어를 사용하여 빅데이터를 처리하고 분석하는 데는 한계가 있다. 과거에는 주로 개인용 컴퓨터의 윈도우 운영체제 위에 특정 프로그램인 SPSS, SAS 등을 많이 사용하였으나 현재는 데이터 용량과 처리 수준이 한 대의 컴퓨터만으로는 불가능할 정도로 커졌기 때문에 여러 대의 컴퓨터를 네트워크로 연결하여 클러스터를 구축하고, 리눅스(Linux) 기반 분산 컴퓨팅 환경에서 오픈소스이면서 무료인 R 또는 파이썬을 주로 사용하고 있다.
오늘날 빅데이터 플랫폼은 Spark(스파크)가 대세이다. Spark는 빅데이터를 분산 처리할 수 있는 플랫폼으로 기존의 Hadoop(하둡)으로 대표되는 분산 컴퓨팅 플랫폼에 비해 구현이 쉽고, 범용성이 뛰어나며, 속도가 빠르다는 장점을 갖고 있다. 다음으로 R은 데이터 사이언스에서 대두되고 있는 인터프리터 언어로서 통계분석 및 데이터 시각화에 특화된 통계 프로그래밍 언어이다. R은 Google, 페이스북, 아마존 등 많은 기업에서 분석 도구로 사용되고 있다. SparkR은 Spark와 R과의 통합환경으로 Spark의 분산 컴퓨팅 환경에서 R 언어를 사용할 수 있다.
필자가 빅데이터 관련 수업을 진행하면서 자주 느꼈던 고충은 어떤 교재를 가지고 강의할 것인가였다. 절대다수의 수강생이 사용하는 컴퓨터 운영체제는 윈도우이고, 대학 실습실의 컴퓨터 환경 역시 윈도우 환경이다. 그러나 대규모 데이터를 효율적으로 처리하기 위해서는 분산 컴퓨팅 환경이 필요하고, 리눅스는 분산 컴퓨팅 분야에서 주요한 운영체제로 인식되고 있다. 따라서 이러한 환경에 걸맞는 교재 개발이 필요하였다.
이 책에서는 개인용 컴퓨터의 윈도우 운영체제 위에 리눅스를 설치하여 Spark와 R을 통한 빅데이터 처리 및 분석을 학습하고자 한다. 필자는 대학에서 리눅스를 처음 접하는 학생들을 대상으로 한 학기용으로 빅데이터 처리?분석을 강의하고 있다. 필자의 강의 경험에 비추어 빅데이터 처리?분석에 대해 배우고자 하는 열망만 있으면, 이 책은 누구나 쉽게 따라 할 수 있도록 단계별로 구성되어 있다. 전 세계 운영체제 중에서 리눅스의 점유율은 3% 정도를 차지하는데, 급증하는 빅데이터와 더불어 시장 점유율은 점차 증가 추세에 있다. 윈도우 환경에 익숙한 대부분의 독자는 리눅스가 낯선 환경이라 처음에는 어려움을 느낄 수 있지만, 이 책은 실습 위주로 구성되어 있기에 쉽게 이해할 수 있을 것이다. 실습을 잘 따라서 공부한다면 이 책을 통해 리눅스도 배우고, 빅데이터 처리?분석도 배우는 일석이조의 효과를 기대할 수 있다.
이 책은 총 11개의 장으로 구성되어 있다. 1장에서는 빅데이터 처리 및 분석 개요에 대해 소개하고, 2장과 3장에서는 윈도우 환경의 사용자들을 위해 리눅스를 설치하는 방법과 기본적인 리눅스 사용법에 대해 다루었다. 4장에서는 리눅스 파일과 디렉터리, 5장에서는 하둡 설치 및 사용에 대해 다루었다. 6장과 7장에서는 Spark와 Scala 언어를 소개하며, 8장에서는 Spark 머신러닝, 9장에서는 리눅스 상에서 R과 RStudio를 설치하는 방법에 대해 다루었다. 마지막으로 10장과 11장에서는 Spark와 R의 통합환경인 SparkR과 SparkR 머신러닝에 대해 다루었다.
이 책을 통해 많은 사람들이 윈도우에서 리눅스를 위한 빅데이터를 처리하고 분석할 수 있도록 집필에 심혈을 기울였지만 여전히 책 내용에 오류가 있고 부족한 부분이 많을 것으로 생각한다. 따라서 독자들의 애정 어린 충고와 지속적인 지도편달을 바라며 미흡한 부분은 계속 보완하여 자유아카데미 홈페이지(www.freeaca.com) 자료실에 제공할 예정이니 참고하시기를 바란다.
끝으로 책을 출간하는 데 도움을 주신 자유아카데미 출판사 여러분께 깊은 감사의 말씀을 드리며, 책이 나오기까지 많은 관심과 도움을 준 가족들에게도 고마운 마음을 전한다.