_ankus

ankus 개발 스토리

20종의 데이터마이닝/머신러닝 알고리즘

지난 2013년, 저희는 빠르게 증가하고 있는 데이터를 분석하고 그 패턴을 찾아 인사이트를 얻고 싶었지만 그 당시 대용량 데이터를 분석할 수 있는 데이터 마이닝/기계학습 라이브러리는 Apache mahout이 유일무이하였습니다.  이에 국내 기술로 Hadoop MapReduce(분산병렬처리)에 최적화된 분석 라이브러리를 만들어보고 싶었습니다. 이러한 생각을 공유하는 사람들과 함께 데이터 마이닝/머신러닝 분석 알고리즘 라이브러리 ankus를 개발하게 되었습니다. ankus를 필요로 하는 사람들과 함께 개발하며 더 성장하기 위해 ankus는 오픈소스(GPL v3)로 공개하였습니다.

 

Hadoop을 선택한 이유

하둡맵리듀스
아파치 하둡(Apache Hadoop)

다양한 형태의 대용량 데이터를 신속시 처리해야 하는 환경에 직면하게 되면서, 빅데이터 1세대에서는 데이터의 3가지 특징(Volume, Velocity, Variety)에 주목하게 되었습니다. 이러한 배경 속에서 ‘Hadoop과 같은 빅데이터 시스템(인프라)’가 빠르게 발전했고, 빅데이터 2세대에서는 데이터에 숨어있는 ‘가치’를 찾는 일에 집중하게 됩니다. 대용량의 데이터를 수집하고 관리하던 문제는 기업이 보유한 데이터에서 핵심 가치를 찾아내는 문제로 발전했습니다. 이러한 이유로 저희는 대용량 데이터 분석을 위해 하둡 기반 빅데이터 인프라 내에서 데이터 마이닝/기계학습 분석이 가능한 ankus를 개발하게 되었습니다.

 

ankus의 어원

코끼리 조련용 지팡이 “ankus”

ankus(앵커스)의 본래의 뜻은 조련사가 코끼리를 조련할 때 사용하는 조련용 막대기를 지칭합니다. 앞서 설명하였던 Hadoop이 코끼리 캐릭터를 앞세워 부각되면서 코끼리(Hadoop, BigData)를 조련하는 조련사(Mahout)가 조련용 막대기(ankus)를 활용하여 코끼리와 소통하는 의미를 담아야겠다고 생각하였습니다. BigData 분석을 필요로 하는 분석 이용자가 활용하는 최적의 분석 솔루션이 되겠다는 의지를 담아 ankus라 명명하게 되었습니다.

 

ankus Architecture and Project

ankus architecture and project

ankus는 하둡 기반의 분산 빅데이터 환경에서 운용할 수 있는 기술로써 S/W 구성 요소 및 아키텍처는 다음 그림과 같습니다. ankus는 연구 개발이 지속중인 현재진행형 프로젝트로써 1) 데이터 마이닝 및 기계학습 기반의 분석을 위한  ‘Core project’ 2) 분석 결과를 시각화 하기 위한 ‘Visualization project’ 3) 모든 기능을 웹 GUI 환경으로 제공하기 위한 ‘Web project’의 3가지 프로젝트로 구성됩니다.

 

Core project 개요

Core project의 분석 알고리즘

ankus는 고도화된 빅데이터 분석과 활용을 위해 데이터 마이닝 및 기계학습에 기반한 분석 기술을 제공합니다. 이를 위해 데이터 기초 통계 및 전처리, 유사/상관/거리 분석, 분류/군집 분석, 서비스 기반 분석의 총 4종, 20개 분석 기술을 제공합니다(버전 1.0 기준). 제공되는 모든 분석 기술은 하둡 기반의 분산/병렬 처리 환경에서 운용할 수 있도록 MapReduce 구조를 기반으로 순수 자체 기술로 개발되었습니다.

 

Visualization project 개요

ankus와 D3.js
ankus와 D3.js

ankus는 데이터 분석을 통해 인사이트 및 직관성을 확보하기 위하여 분석 결과를 시각화하는 기능을 제공합니다. 현재 Visualization project는 오픈소스 라이브러리 D3.js를 적용하여 분석 알고리즘을 총 7종의 차트/그래프로 제공하고 있습니다.

 

Web project 개요

웹 서버 기반의 분석 도구 운영
웹 서버 기반의 분석 도구 운영
웹 서버 기반의 분석 도구 운영

Web project는 Core project와 Visualization project를 사용하기 쉽도록 하는 편의성을 제공합니다. ankus는 개발 지식이 부족한 데이터 분석가 또는 기획자들도 빅데이터 분석 수행 및 응용을 쉽게 할 수 있도록 하는 UI/UX를 제공합니다. 또한 ankus는 분석 이외에도 하둡 기반의 빅데이터 환경 통합 관리를 위한 다양한 기능과 인터페이스를 추가적으로 제공하고 있습니다.