자세히 보기

By infoworld_staff

추천! 최고의 오픈소스 빅 데이터 툴 20선

하둡은 그 어느 때보다 더 많은 인기를 누리고 있지만, 맵리듀스에 대한 수요는 감소하는 것으로 보인다. 누구나 더 빠른 대답을 원한다. SQL 쿼리의 대답 역시 이런 경우가 많다. 올해 최고 오픈소스 소프트웨어 시상인 보시(Bossies)의 빅 데이터 부문은 하둡 기술군의 새로운 발전상을 보여주고, NoSQL이 성숙해지고 있음을 강조하며, 데이터 랭글링(Wrangling), 데이터 분석, 기계 학습 분야에 유용한 툴이 많이 있음을 제시했다. 오픈소스 빅 데이터 툴을 소개한다.

아이파이썬(IPython)
데이터 과학을 포함해 과학 연구와 업무에서 중요한 2가지 요소는 결과 공유와 검증이다. 당신이 최초의 저온 핵융합(Cold fusion) 데이터 과학자가 되고 싶지는 않을 것이다. 아이파이썬 노트북스(Notebooks)는 연구원이 데이터 분석 업무를 문서화하고 자동화할 수 있는 환경을 제공한다. 노트는 연구원이 코드, 문서, 아이디어, 시각화 데이터를 공유하고, 여러 다양한 환경에서 이를 이용할 수 있는 하나의 공간이다.

이런 기능들은 현대 데이터 과학에서 아주 중요한 역할을 한다. 데이터 산물을 구축해 관리하는 것은 아주 복잡한 작업이다. 운영과 모니터링 등 조직의 여러 기능이 정보를 입력해야 한다. 분석력 공유 역시 마찬가지다. 아이파이썬은 아이파이썬 노트북스보다 더 많은 기능을 제공한다. 예를 들어, 데이터 파이프라인, 병렬 컴퓨팅 등을 여러 언어로 지원하고 있다.
-스티븐 누네즈(Steven Nunez)

판다스(Pandas)
판다스는 테이블 데이터 조작에 사용되는 파이썬 DSL(Domain-Specific Language)이다. 헷지펀드 산업에 뿌리를 두고 있기 때문에, 높은 성능과 쉬운 사용 편의성을 특징으로 하고 있다.

판다스는 상대적으로 신기술에 해당되지만, 그 저변이 크게 확대되고 있는 추세다. R 언어와 유사한 측면이 많으며, 동일한 데이터 랭글링 작업 다수에 이용할 수 있다. 다만 R과 비교해 라이브러리의 종합성이나 테스트가 부족하다. 긍정적인 부분은 (2008년부터 시작된) 이후 판다스 개발에는 R의 아이디어와 패키지 일부를 가져와 기본 판다스 패키지에 통합시켰다는 것이다. 파이썬을 이용하는 데이터 과학 분야에서 판다스는 ‘스위스 아미 나이프(만능 칼)’ 역할을 한다.
-스티븐 누네즈(Steven Nunez)

R클라우드(RCloud)
AT&T 연구소(AT&T Labs)가 R 기반의 협업 데이터 분석 환경 필요성 문제를 다루기 위해 개발한 기술이 R클라우드다. R클라우드는 아이파이썬과 유사하게 연구원들이 전사적으로 데이터를 분석해 그 결과를 공유할 수 있도록 돕는다. 예를 들어, 데이터 과학자 한 그룹이 R클라우드를 이용해 웹 문서 의미 분석에 목적을 두고, 데이터 워크플로우를 기록한다고 가정하자. 그럼 같은 회사의 기계 학습 그룹이 이 노트북에 추가 기록을 적으면서 재사용할 수 있다.

개념적으로, R클라우드는 R CRAN(Comprehensive R Archive Network) 패키지와 유사하다. 여기에 위키(wiki) 같은 협업 기능이 보강되어 있다. 노트북과 코드는 깃허브(GitHub)에 저장된다. AT&T 외에는 정보가 많지 않은 비교적 새로운 기술이지만, R클라우드는 많은 잠재력을 보여준다.
-스티븐 누네즈

R 프로젝트(R Project)
통계 분석용 컴퓨터 전문 언어인 R은 새로운 도전에 맞춰 계속 진화하고 있다. R은 2000년대 초 ‘퇴역’한 LISP를 대신하는 통계 처리 언어였다. 크고 활발한 커뮤니티로, 툴과 IDE를 지원하는 건강한 생태계인 CRAN에는 수천 종의 고품질 알고리즘이 있다. R 3.0에서는 메모리 제한이 없어졌다. 64비트라면 호스트 운영 시스템에서 허락되는 만큼 많은 RAM을 할당할 수 있다.

전통적으로 R은 멀티코어를 활용하면서 로컬 RAM에 가장 잘 부합하는 문제 해결에 중로 사용됐다. 그러나 빅 데이터가 부상하면서, 대규모의 데이터 세트를 처리할 수 있는 옵션(선택권)들이 등장했다. 표준 R 환경에 설치할 수 있는 패키지, 하둡과 스파크 등 빅 데이터 시스템에 통합할 수 있는 방법 등이 있다(RHive와 SparkR).
-스티븐 누네즈

R 프로젝트(R Project)
통계 분석용 컴퓨터 전문 언어인 R은 새로운 도전에 맞춰 계속 진화하고 있다. R은 2000년대 초 ‘퇴역’한 LISP를 대신하는 통계 처리 언어였다. 크고 활발한 커뮤니티로, 툴과 IDE를 지원하는 건강한 생태계인 CRAN에는 수천 종의 고품질 알고리즘이 있다. R 3.0에서는 메모리 제한이 없어졌다. 64비트라면 호스트 운영 시스템에서 허락되는 만큼 많은 RAM을 할당할 수 있다.

전통적으로 R은 멀티코어를 활용하면서 로컬 RAM에 가장 잘 부합하는 문제 해결에 중로 사용됐다. 그러나 빅 데이터가 부상하면서, 대규모의 데이터 세트를 처리할 수 있는 옵션(선택권)들이 등장했다. 표준 R 환경에 설치할 수 있는 패키지, 하둡과 스파크 등 빅 데이터 시스템에 통합할 수 있는 방법 등이 있다(RHive와 SparkR).
-스티븐 누네즈



하둡
최근 하둡 만큼 빠르게, 그리고 크게 영향을 미친 기술은 없다. 하둡은 HDFS, YARN, 맵리듀스(MapReduce), H베이스(HBase), 하이브(Hive), 피그(Pig), 기타 계속 증가하는 여러 툴과 엔진으로 구성돼 있다. 지난 해, 하둡은 모든 사람들이 화제로 삼는 기술에서, 상당히 보수적인 기업까지 도입에 나선 기술로 발전했다. 하둡은 조직 내 정보 공유 촉진, 새로운 용도로 사용할 데이터 발굴, 기존 데이터 웨어하우스 기술 교체, ETL 프로세싱 효율화를 계획하고 있다면 꼭 살펴봐야 할 플랫폼이다.
-앤드류 C. 올리버(Andrew C. Oliver)



하이브(Hive)
하이브는 친숙한 SQL 시맨틱스(Semantics)를 이용해 페라바이트 분량의 데이터를 대상으로 쌍방향으로 쿼리할 수 있는 기술이다. 하이브 버전 0.13은 속도, 규모, SQL 컴플라이언스에 초점을 맞춘 비전을 실현시켰다.

하이브는 기존 SQL 툴, 스킬, 프로세스를 유지하면서, 이를 대용량 데이터 세트에 적용할 수 있는 것이 특징이다. 사용자는 테즈 통합, 벡터 기반 실행, 비용 기반 최적화를 이용해 쌍방향 쿼리 성능을 크게 높이면서, 자원 요건은 줄일 수 있다. 하이브 0.13은 사실상 빅 데이터의 SQL 인터페이스 역할을 한다. SQL 핵심 서버 기술 몇몇을 공헌한 마이크로소프트 등 이를 지원하는 공동체가 크고, 계속 확대되는 추세다.
-스티븐 누네즈



하이브몰(Hivemall)
일본 산업기술총합 연구소(National Institute of Advanced Industrial Science and Technology)가 개발한 하이브몰은 확장성을 갖춘 머신 학습 라이브러리다. 머신 학습 알고리즘과 피처(feature) 엔지니어링 기능을 제공한다. 하이브의 SQL 시멘틱스는 하이브몰 머신 학습 알고리즘에 입력하기 앞서 대용량 데이터를 나누는데 적합하다.

하이브몰은 확장성도 높다. 피처와 인스턴스 모두 확장 가능하다. 다른 하둡 기반 머신 학습 프레임워크 대다수를 앞선다. SQL에 정통한 데이터 과학자라면 하이브에 추가하면 큰 도움이 된다. 설치도 간단하다. 하이브 클래스패스(classpath)에 JAR을 추가하는 하둡 명령어 한 줄을 입력하면 그만이다.
-스티븐 누네즈

클라우데라 임팔라(Cloudera Impala)
하둡용 실시간 SQL 엔진은 많다. 하이브 온 테즈(Hive on Tez(Stinger)), 페이스북의 프레스토(Presto), 샤크 온 스파크(Shark on Spark)를 예로 들 수 있다. 모두 유용한 기술이다. 기업들은 오랜 기간 SQL 기능들에 의지했으며, 배치 처리에는 다소 부족한 면이 있다.

클라우데라 임팔라는 여전히 하둡의 인터랙티브 SQL 쿼리 부문을 선도하고 있다. (역할 기반 인증용 Sentry 등) 전반적인 생태계, 성숙도, 속도가 하둡 확장성에 우수한 SQL 성능을 더하고, HDFS 및 H베이스를 이용해 값비싼 ETL을 피할 수 있도록 돕는다. 임팔라의 입지는 약화되지 않았다. 아마존은 올해 자신이 운영하는 일렉스틱 맵리듀스(Elastic MapReduce) 서비스에 임팔라를 도입하며 힘을 실어줬다.

임팔라는 실시간 쿼리와 전반적인 성능에서 여전히 하이브에 앞선다. 하이브 현대화 노력이 추진되고 있지만, 아직까지 하둡에 기반을 둔 SQL 애플리케이션과 실시간 데이터 분석에서 가장 높은 평가를 받고 있는 대안은 임팔라다.
-제임스 R. 보크(James R. Borck)

몽고DB(MongoDB)
현 시점에서 몽고DB를 도입해야 하는 근거는 분명하다. 쉽고 빠르게 데이터를 통합할 수 있는 크로스 플랫폼 문서 지향형 데이터베이스를 찾는다면 누구라도 몽고DB를 선택하게 될 것이다. 게다가 오픈소스라는 장점도 있다. 최근 2.6 버전에서는 엔터프라이즈에 맞춰 기능이 향상됐고, 조만간 문서 단계의 잠금 기능이 구현될 전망이다. 몽고DB 도입 속도는 더 빨라지고, 다양해질 것이라는 의미다. 이미 이베이, 크레이그스리스트, 뉴욕타임즈 등 유수 업체들이 몽고DB를 도입했다. 일부 전문가와 신생 창업기업만이 사용하는 데이터베이스가 아니다.
-앤드류 C. 올리버(Andrew C. Oliver)

카산드라
아파치 카산드라는 편의성, 기능성, 좋은 디자인을 갖춘 NoSQL 데이터베이스다. 카산드라는 데이터 파티션(분할)에 있어 아마존 다이나모(Dynamo)에서 영감을 받은 스토리지 시스템을 사용하면서 ‘큰 테이블’ 같은 데이터 모델을 구현하고 있다. 그 결과 쉽게 시스템을 구성할 수 있다. 작은 클러스터를 여러 데이터센터로 선형으로 확장할 수 있는 시스템이다. 또한 상용 하드웨어의 노드로 데이터를 효율적으로 배포한다.

카산드라의 ‘링’ 토폴로지는 데이터를 클러스터에 배치하기 때문에 탄력성이 높다. 또 몇몇 유용한 전략들을 제공한다. 카산드라는 소수의 이전 요소들(노드 당 JVM 하나), 스토리지용 네이티브 파일 시스템, 점진적 확장, 높은 가용성을 갖추고 있는 NoSQL을 선도하는 기술 중 하나다.
-스티븐 누네즈(Steven Nunez)

네오4j(Neo4j)
네오4j는 유기적인 특징이 강한 NoSQL 데이터베이스이다. 기본적으로 그래프 데이터베이스다. 따라서 ‘세상’을 문서나 열과 행이 아닌 연결된 객체로 판단한다. 즉 네오4j 언어로 관계를 기준으로 연결된 노드다. 노드는 사람, 레스토랑, 도시, 수많은 객체가 될 수 있다. 관계란 ‘알고 있는 내용’, ‘식사를 한 장소’, ‘살고 있는 장소’, ‘거리’ 등이다.

커뮤니티 에디션은 임베디드 버전이나 클라이언트-서버 시스템 구현에 필요한 모든 요소들을 제공한다. 사실상 모든 언어의 드라이버가 존재한다. 또 더 고수준에서 데이터베이스를 처리하고 싶다면, 네오4j의 SQL인 사이퍼(Cypher)를 이용할 수 있다. 네오4j 웹사이트의 인터랙티브 자료는 최고 자료 중 하나다. 이 개념을 처음 접하는 경우에도, 이 뛰어난 그래프 데이터베이스를 빨리 터득할 수 있다.
-릭 그레한(Rick Grehan)

카프카(Kafka)
카프카는 링크드인이 최초 개발한 오픈소스 툴이다. 인터넷 회사들이 웹 애플리케이션에서 지정 데이터 시스템으로 메시지를 전송할 때 사용했던 기술이다. 카프카는 초당 수천 클라이언트의 데이터 수백 메가바이트를 읽기 및 쓰기 처리할 수 있다. 또 현대적인 클러스터 중심 설계를 채택, 지속성, 탄력성, 투명성을 구현하고 있다. 카프카는 스트리밍 Pub/Sub 모델을 위해 스톰과 연동해 이용하는 경우가 많다. 분산과 확장이라는 점에서는 JMS와 유사하다.
-앤드류 C. 올리버(Andrew C. Oliver)



테즈(Tez)
테즈는 데이터 애플리케이션에 분산형 실행 프레임워크를 제공한다. 자원 공유 애플리케이션을 구현한 또 다른 아파치 프로젝트인 YARN을 토대로 하고 있다. 테즈는 개발자들을 분산형 클러스터의 내고장성, 자원 관리, 스케줄 등 실수가 많은 작업에서 자유롭게 만들었다. 캐스케이딩, 피그, 하이브 등 고급 애플리케이션은 업종에 특화된 문제에 주력하고, 테즈는 클러스터에서 잡다하지만 과중한 작업을 처리하게 된다는 의미다.

테즈는 개발자들이 클러스터 관리에는 신경을 덜 쓰고, 각자의 비즈니스 로직에 더 집중을 할 수 있도록 해준다. 개발자들이 네트워크 I/O, CPU, RAM 등 중요한 클러스터 자원을 더 효율적으로 활용하고, 더 신뢰도가 높고 우수한 애플리케이션 개발에 집중할 수 있다는 의미다.
-스티븐 누네즈



머하웃(Mahout)
머하웃은 분류, 클러스터링, 협력 필터링, 이를 위한 기초 연산 등을 위한 컴퓨터 엔진과는 별개의 알고리즘 집합이다. 확장성이 높은 기계 학습에 초점을 맞추고 있다.

현재 0.9 버전까지 나와있으며, 곧 1.0 버전이 출시될 예정이다. 이는 하둡 맵리듀스를 스파크 클러스터 실행에 최적화된 선형 대수용 DSL(Domain Specific Language)로 이동시키는 프로젝트다. 맵리듀스는 더 이상 수용하지 않는다. 기계 학습의 반복성을 감안할 때 일리가 있는 방식이다. 그리고 이 공동체가 기술 변화에 맞춘 변화를 시도하고 있음을 보여준다.
-스티븐 누네즈


 나임(KNIME)
코딩 없이 예측 분석 애플리케이션을 구축할 수 있을까? 스위스의 분석 솔루션 업체인 나임(Knime)의 간편한 툴킷이 이를 실현시켜준다. 나임의 이클립스(Eclipse) 기반 비주얼 워크벤치는 ‘캔버스’에 노드를 가져와 구성한 후, 이를 워크플로로 통합 개발할 수 있도록 해준다. 나임은 데이터 소스 연동(데이터베이스, 하이브, 엑셀, 플랫 파일)에서 SQL 쿼리, ETL 변환, (웨카와 R을 지원하는) 데이터 마이닝, 비주얼리제이션에 이르기까지 모든 것을 지원하는 수천 노드를 공급한다.

올해부터는 트위터와 구글 애널리틱스를 연동시키는 기능도 제공하기 시작했다. 또 오픈스트리트맵(OpenStreetMap) 시각화를 지원한다. 나임 엔진은 데이터의 양, 메모리 크기, 프로세스 코어에 제약이 없는 오픈소스다. 이 회사는 또 클러스터 환경을 위해 협업, 인증, 성능을 추가 및 강화시킨 상용 제품도 공급하고 있다.
-제임스 R. 보크



캐스케이딩(Cascading)
하둡 애플리케이션 개발의 학습 곡선은 가파를 수 있다 (하둡 애플리케이션 개발 기법을 학습하기란 어렵다). 캐스케이딩은 기능적인 프로그래밍 패러다임을 하둡 데이터 워크플로로 구현한 SDK이다. 캐스케이딩 3.0은 개발자들이 YARN과 테즈 같은 차세대 하둡 기능을 쉽게 활용할 수 있게끔 지원하고 있다.

이 SDK는 많이 사용하는 ETL 패턴을 제공한다. 하둡의 복잡성을 크게 없애고, 애플리케이션 성능을 높이고, 자바 개발자들이 하둡 환경에서 더욱 용이하게 자신의 능력을 발휘하도록 만든 것이 특징이다. 많이 쓰는 다른 애플리케이션을 연동시키는 기능도 제공한다. 캐스케이딩 애플리케이션이 데이터베이스, ERP, 다른 엔터프라이즈 데이터 소스를 이용할 수 있는 것이다.
-스티븐 누네즈
dl-ciokorea@foundryco.com

By infoworld_staff

이 저자의 추가 콘텐츠