본문 바로가기

Home > 열린마당 > 공개SW 소식

공개SW 소식

에버노트, 하둡과 파엑셀로 본격 빅 데이터 분석 환경 구현

OSS 게시글 작성 시각 2013-01-31 18:07:02 게시글 조회수 4297

2013년 01월 30일 (수)

ⓒ ITWorld, Andrew Lampitt | InfoWorld


막대한 양의 데이터로 인해 에버노트의 분석 시스템이 포화 상태에 이르면서, 에버노트는 예산을 초과하지 않으면서도 빅 데이터를 감당할 수 있도록 자체 분석 환경의 현대화 작업을 수행 했다. 인기 절정의 개인용 정보 관리 및 업무 생산성 애플리케이션인 에버노트는 전통적인 데이터 웨어하우스에서 하둡(Hadoop)과 대규모 병렬 처리 분석 데이터베이스인 파액셀(ParAccel)을 결합한 하이브리드 환경으로 이전했다.

에버노트는 자사 서비스 사용자들의 막대한 양의 데이터를 수집하고 분석한다. 2008년 이래, 3,600만 명의 사용자가 에버노트 계정을 만들었고, 이들은 12억 개의 “노트”와 20억 개의 첨부 파일 등을 포함한 수백 테라바이트 규모의 데이터를 생성하고 있다. 노트에는 텍스트, 웹 페이지, 사진, 음성 메모 등이 포함되어 있는데, 태그하고, 주석을 달고, 편집하고, 폴더로 분류하는 등을 포함한 여러 가지 다양한 방법들로 조작할 수 있다.

에버노트는 사용자 경험을 최적화하기 위해 현재 하루에 2억 건의 이벤트를 하둡과 파엑셀 데이터베이스 조합을 통해 분석하고 있다. 거기에다, 오픈소스 재스퍼리포트 서버(JasperReports Server) 커뮤니티 에디션이 보고서와 차트 등을 생성하는데 사용된다.


데이터 볼륨 한도 초과
에버노트의 기존 데이터 웨어하우스는 OLTP에 기반한 관계형 데이터베이스였는데, 데이터가 트랜젝션과는 대조적으로 쿼리에 따라 배치되는 스타 스키마를 사용했다. 이 솔루션은 보통 MySQL 상의 데이터 볼륨이 몇 테라바이트 정도에 그칠 경우 보고와 분석을 하기에 적합하다. 그러나 데이터가 그 한도를 넘어서면서, 히스토리 보유량이 줄어들고, 데이터 웨어하우스 쿼리 속도, 유연성, 비용이 타격을 받게 된다.

에버노트는 바로 이런 상황에 에버노트가 처했던 것이다. 에버노트의 데이터 웨어하우스는 같은 네트워크 상의 대형 RAID10 어레이 위의 MySQL을 애플리케이션의 주 서버로 구동된다. 매일 밤마다, 9시간에서 18시간에 걸친 배치 프로세스를 통해 몇몇 운영 데이터베이스 테이블과 분산 구조화된 이벤트 로그의 결합 증분을 애플리케이션 서버에서 폐기했다. 수작업식 생성과 튜닝 이후, 보고서들이 이메일을 통해 배분되었다.

그러나 2012년 초에 이르자, 분석팀은 기존의 솔루션이 워크로드를 더 이상 감당할 수 없다는 사실을 깨달았다. 400억 줄이 넘는 주요 테이블들을 처리하기 위해서, 한 번에 며칠 분량이 넘는 데이터에 접속하는 것은 비현실적이었다. 보고 데이터베이스는 느렸고, 유지하기도 어려웠으며, 즉석 쿼리에도 적합하지 않았다.

에버노트 팀은 효율적으로 데이터의 전체 히스토리를 저장하고, 표준 일일 보고서 수십 건을 생성하고, 즉석 쿼리를 손쉽게 관리하고, 미래에도 계속 확장할 수 있는 분석 환경을 구축하고자 했다. 그리고 그 모든 목표를 주어진 예산 안에서 달성해야 했다.


하이브리드 분석 환경 구축하기
에버노트는 하둡과 파액셀로 구성된 새로운 접근방식을 선택했다.

10노드 하둡 클러스터는 현재 모든 히스토리 데이터를 저장하고 분석을 위한 데이터 준비도 처리한다. 하둡은 오픈소스 라이선스와 범용 하드웨어를 이용하여 확장할 수 있기 때문에 저렴한 솔루션으로 인식되었다.

MPP 분석 데이터베이스에 있어서, 파액셀은 아주 빠른 즉석 쿼리 성능을 제공한다. 에버노트에서 3노드 파액셀 원주 분석 데이터베이스는 파생 테이블 세트들의 쿼리를 처리한다. 노드들은 수퍼마이크로 시스템으로, 각각 2개의 L5630 쿼드코어 프로세서, 192GB RAM, 10Gbps 네트워킹, 수동 프로비저닝된 SSD RAID5가 레드햇 엔터프라이즈 리눅스와 함께 설정되어 있다.

마지막으로, 가장 인기있는 오픈소스 보고 솔루션 중 하나인 재스퍼리포트의 선택은 쉬운 결정이었다. 분석팀은 파액셀 서버 쿼리와 다양한 형식의 일일 보고서 수십 개를 생성하는데 재스퍼소프트의 오픈소스 재스퍼리포트 서버를 사용하기로 결정했다. 파액셀과 재스퍼리포트 서버의 조합은 최근 아마존이 이 둘을 자사의 호스팅 기반 분석 환경인 레드시피트(Redshift)에 사용하면서 거의 공인된 상태이다.

에버노트는 재스퍼리포트 서버를 사용하여 매일 차트와 보고서 수십 개를 생성한다.

보안을 이유로, 분석 환경은 에버노트 애플리케이션 서버와 연결되지 않은 분리된 네트워크 상에 존재한다. 일일 온라인 데이터는 일방통행 네트워크 접속을 통해 보고 작성 환경으로 안전하게 전달된다.


하둡 배치 구축하기
모든 미가공 데이터는 우선 하둡으로 가서 일일 보고서와 즉석 분석 모두를 위해 보존은 물론 파액셀로 들어가도록 준비를 마친다. 에버노트는 클라우데라의 하둡 배포판을 환경설정 관리를 위한 퍼펫(Puppet)과 함께 사용한다.

하둡 클러스터는 6개의 데이터 노드와 8개의 500GB 드라이브를 포함한 총 24TB의 원시 스토리지를 갖추고 있다. 두 개의 8코어 프로세서와 64GB의 RAM은 132개의 맵리듀스(MapReduce) 작업을 각각의 작업마다 2GB RAM 이상을 가지고 여러 클러스터에 걸쳐 실행한다.

추가적으로, 에버노트는 중복을 위한 단일 하둡 잡 트래커(Hadoop Job Tracker)를 두 가지 하둡용 핵심 오픈소스 툴인 하이브(Hive)와 휴(Hue)를 위한 하나의 클라이언트 노드와 함께 실행한다. 하둡 클러스터는 쿼리를 위한 SQL같은 인터페이스를 제공하는 하이브 추상화 계층을 통해 접속한다. 휴는 파일 브라우저, 잡 트래커 인터페이스, 클러스터 상태 모니터링 등 수많은 유틸리티는 물론 커스텀 하둡 애플리케이션을 구축하기 위한 환경을 포함한 하둡용 웹 기반 인터페이스다.


합동 작업
하이브를 통해 수집된 사용자 행동은 온라인 데이터베이스의 레퍼런스 테이블과 함께 파액셀로 매일 밤 전달된다. 하이브를 이용해 추출 테이블이 생성되는데, 여기에는 공통 보고서에서 최적의 표현을 위해 미리 나눠진 정보가 포함된다. 예를 들어, 국가 요약 테이블이라면 하루마다 국가별로 단 한 줄에 그 날짜의 일간, 주간, 월간 활동적 이용자의 총합이 들어간다.

이 파액셀 데이터베이스와 그 테이블들은 데이터를 신속하게 통합할 수 있도록 설정되는데, 이때문에 하이브만 사용하는 것보다 더 빨리 수많은 종류의 질문에 응답할 수 있다. 예를 들어, 에버노트 윈도우의 어느 버전이 특정 주간에 독일에서 가장 널리 사용되었는가 등의 질문에는 단 3초면 대답할 수 있다.

이제 분석팀은 현대적 분석 환경과 미래 성장을 위한 공간까지 확보했다. 하둡 덕분에 팀은 운영과 로그 데이터의 전례없는 양을 보존할 수 있게 되었고, 이전에 10시간 이상이 소요되던 수억 개의 자료 전달과 변형 작업을 단 2시간 만에 처리할 수 있게 된 것은 더욱 중요한 변화다. 파액셀 덕분에 에버노트는 더욱 복잡한 이용자 동향 분석을 수행할 수 있게 되었고, 재스퍼리포트 서버가 최종적으로 매끄러운 결과물을 제공해 준다.

모든 히스토리 데이터를 저장하고, 신속하게 즉석 쿼리를 보존하고, 품질 보고서를 일별로 자동화하는 능력으로 인해, 에버노트는 고객들이 자사 제품을 어떻게 이용하는지, 그리고 그 제품들이 어떤 방향으로 계속 향상되어야 하는지에 대한 새로운 통찰을 얻고 있다.



※ 본 내용은 한국IDG(주)(http://www.itworld.co.kr)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒITWORLD. 무단전재 및 재배포 금지



[원문출처 : http://www.itworld.co.kr/news/80046]

맨 위로
맨 위로