아파치 머하웃
더 많은 작업
아파치 머하웃(Apache Mahout)은 대용량 데이터에 추천(협업 필터링), 군집화, 분류 같은 머신러닝 알고리즘을 분산 환경에서 돌리도록 만든 아파치 소프트웨어 재단의 오픈소스 머신러닝 라이브러리이다.
머하웃은 2008년 아파치 루씬의 하위 프로젝트로 시작해 2010년 최상위 프로젝트가 되었다. 이름은 코끼리를 부리는 사람을 뜻하는 힌디어 단어로, 노란 코끼리를 상징으로 하는 하둡 위에서 돈다는 뜻을 담았다. 초기 머하웃은 하둡 맵리듀스로 구현한 알고리즘 모음이었고, 『Mahout in Action』은 이를 추천 엔진, 군집화, 분류의 세 갈래로 정리해 소개했다.[1]
맵리듀스는 반복 계산이 많은 머신러닝에 느렸기 때문에 머하웃은 2014년 무렵 맵리듀스 알고리즘의 신규 개발을 멈추고, 스파크 등 다른 엔진 위에서 선형대수 연산을 표현하는 '삼사라'(Samsara) 환경으로 옮겨 갔다. 공식 사이트는 프로젝트의 목표를 확장 가능하고 성능 좋은 머신러닝 응용을 빠르게 만드는 환경을 구축하는 것으로 밝히며, 삼사라·맵리듀스 기반의 기존 '머하웃 클래식' 코드는 유지 관리 단계에 있고 현재 개발은 양자 머신러닝용 파이썬 라이브러리(Qumat, QDP)에 집중한다고 안내한다.[2]
- 추천(recommendation) - 사용자 기반·아이템 기반 협업 필터링으로 사용자가 좋아할 항목을 고른다
- 군집화(clustering) - k-평균, 퍼지 k-평균, 캐노피 군집 등으로 비슷한 데이터를 묶는다
- 분류(classification) - 나이브 베이즈, 랜덤 포레스트 등으로 데이터를 범주에 배정한다
- 차원 축소(특이값 분해)와 빈발 패턴 마이닝도 제공했다
빅데이터 처리를 수집 - 적재 - 처리·탐색 - 분석·응용 계층으로 나누면 머하웃은 적재·가공된 데이터로 모델을 만드는 분석·응용 계층의 도구다. 데이터를 원천에서 끌어오거나 전달하는 일은 하지 않는다.
| 계층 | 하는 일 | 예 |
|---|---|---|
| 수집 | 원천의 로그·이벤트·메시지를 모아 전달 | 플럼, 아파치 카프카, 아파치 스톰(실시간) |
| 적재 | 분산 저장소에 보관 | HDFS, HBase |
| 처리·탐색 | 정제·변환·질의 | 하이브, 스파크 |
| 분석·응용 | 통계·머신러닝 모델링, 서비스 연계 | 머하웃, R, 스파크 MLlib |
- "수집 계층 기술"을 고를 때 머하웃은 들어가지 않는다. 플럼·카프카는 수집, 스톰은 실시간 수집·처리에 쓰인다
- ↑ Sean Owen, Robin Anil, Ted Dunning, Ellen Friedman, 『Mahout in Action』, Manning Publications, 2011.
- ↑ 「Apache Mahout」, Apache Software Foundation, https://mahout.apache.org/, 확인일: 2026-11-05.