GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
[Ankus Open Source Conference 2013] Introduction to ankus integration tool (flamingo)
1.
2. Flamingo Project
1. 아주 지저분하고 복잡한 빅 데이터 환경
• Big Data 만큼 다양한 오픈소스가 판을 치는 곳도 없고, 상용 솔루션 조차 Hadoop을 기반으로 하고 있음
• 다양한 배포판과 버전 그리고 너무 많은 오픈소스를 설치하여 사용해야 하는 환경
• 설치하다 개고생하고 관리하다 개고생하는 환경
Flamingo Community
- 2 / 26 -
3. Flamingo Project
2. Flamingo Project의 시작은 현장의 경험을 통해서….
• 모토 : 웹 기술을 활용하여 빅데이터 기반 기술을 누구나 쉽게 접근할 수 있도록 한다.
Flamingo Community
- 3 / 26 -
6. Flamingo Project
5. 특징 비교
구분
Apache Ambari
HUE
Flamingo
Flamingo Community
특징
비고
•
•
•
•
Hadoop Provisioning
Nagios & Ganglia Integration
Job Monitoring
Hadoop Cluster Management
•
•
•
•
•
•
•
•
Hadoop MapReduce Runner
Hive Metastore Browser & Editor
Pig Editor
Impala Editor
HBase
Oozie
Sqoop
ZooKeeper
•
•
•
•
•
•
•
•
•
•
•
•
Web Browser based Desktop UI
Multi Region & Multi Cluster Support
Scale Out Architecture
Workflow Designer & Workflow Engine
Batch Log Collector
Pig Editor
Hive Metastore Browser & Editor
HDFS/S3/Local File System Browser
Job Scheduling (Cron Expression fully support)
Multi Locale (Korean, English, Japanese, Chinese)
Ankus/Mahout Integration
Amazon EMR Certified
• Hadoop 관리 및 설치에 초점
• 우리는 성격이 달라 이것과
경쟁하지 않고 협력함
- 6 / 26 -
• Hadoop EcoSystem을 충실히 지원
• 설치의 어려움
• 이중화 어려움
• 수정의 어려움
• 설정 관리 통일
• 멀티 노드에서 분산하여 처리
• 사용자 중심 UI
• 다양한 분석 알고리즘 탑재 가능
• 전체 커스터마이징 가능
7. 프로젝트 개요
6. 웹 기반 OS 형 사용자 환경
• 현장에서 오랫동안 경험한 결과 Hadoop 기반 Big Data 환경은 기능성이 매우 중요
• 최근 보안이 강화된 Hadoop이 나오고 많은 오픈소스들이 통합되면서 관리의 어려움이 발생하고 있고 통합환경을 제공
하는 UI도 절재적으로 부족
http://maven.opencloudengine.org
Flamingo Community
- 7 / 26 -
8. 프로젝트 내용
11. 파일 시스템 브라우저
• 원격에 설치한 Workflow Engine은 HDFS, Amazon S3, Local File System의 파일을 원격으로 제어
• Windows Explorer UX 지원 및 다양한 파일 관리 기능
Flamingo Community
- 8 / 26 -
9. 프로젝트 내용
12. 워크플로우 디자이너
• 다양한 분석 모듈을 탑재할 수 있도록 설계
• UI를 통해 미리 제공하는 분석 및 처리 모듈을 드래그 앤 드롭으로 처리
• 현재 분석 알고리즘 및 기초 통계 모듈인 ANKUS는 통합 완료, Mahout과 Giraph 통합 진행중
Flamingo Community
- 9 / 26 -
12. 프로젝트 내용
12. 워크플로우 디자이너
• MapReduce 개발자 마다 모두 파라미터 처리가 틀리고 표준화 되어 있지 않음
• 이러한 다양한 MapReduce를 빠르게 어떻게 통합할 것인가?
Flamingo Community
- 12 / 26 -
13. 프로젝트 내용
12. 워크플로우 디자이너
• 대부분의 UI 컴포넌트는 재사용 가능하도록 설계하여 컴포넌트 형태로 제공
• MapReduce Module과 UI 통합 방식이 표준화 되어 있으며 프레임워크로 제공되어 빠르게 개발 및 통합 가능
재사용 컴포넌트
UI 구성
Flamingo Community
- 13 / 26 -
14. 프로젝트 내용
12. 워크플로우 디자이너
• 모듈의 아이콘도 메타 데이터를 통해서 정의하여 별도 코드 작성을 최소화하고
• 관련 기능을 통합 프레임워크로 위임하고 사용자는 메타 데이터만으로 핸들링
Flamingo Community
- 14 / 26 -
15. 프로젝트 내용
13. 로그 수집기
• 원격에서 관리 가능하여 하나의 Agent에서 워크플로우 실행과 로그 수집 및 파일 브라우징을 동시에 제공
• 원격에서 로컬 파일을 관리하고, 로그 수집 작업을 제어
• Workflow Designer의 워크플로우를 원격 실행
Flamingo Community
- 15 / 26 -
16. 프로젝트 내용
13. 로그 수집기
• Apache Flume의 경우 실시간 수집을 가능하게 지원하지만 현장에서 배치 형태, 보수적인 시스템 연동을 선호
• FTP와 같은 연동 방식은 여전히 최고의 연동 방식이나 때에 따라서 스크립트를 작성해야 함
Flamingo Community
- 16 / 26 -
18. 프로젝트 내용
14. Pig/Hive Editor
• Pig Latin 및 Hive Query를 편집하고, 실행하고 브라우징
• Hive Metastore 관리 및 Hive Query 실행 로그
Flamingo Community
- 18 / 26 -
19. 프로젝트 내용
15. 시각화
• 분석한 데이터 결과 파일을 다양한 차트 등으로 시각화 하는 기능
• 초기 모델 형태로 구현되어 있음
• 제대로 시각화를 구현하려면 In-Memory 기술 + 메타 데이터 관리 기술이 필요 (시기적으로 내년도쯤 기대)
Flamingo Community
- 19 / 26 -
20. 프로젝트 내용
16. Remote SSH Terminal
• 다양한 Hadoop Cluster, 많은 노드를 관리하고 원격 접속하는데 불편함을 극복하기 위해서 Web Terminal 구현 예정
Flamingo Community
- 20 / 26 -
22. Community
19. Project Management & Issue Management
• Flamingo Project는 Open Cloud Engine 이라는 오픈소스 프로젝트의 일부분으로 가상화 환경에서 동작하도록 구성중
• Atlassian JIRA를 이용하여 이슈를 관리하고 2주 단위 Sprint를 적용하여 개발중
• Contributor에는 공식 계정 발급
http://jira.opencloudengine.org
Flamingo Community
- 22 / 26 -
23. Community
20. Code Review
• 온라인 코드 리뷰를 위한 Review 시스템 운영 준비중
• 개발자의 모든 코드 커밋 현황과 액티비티 추적
http://review.opencloudengine.org
Flamingo Community
- 23 / 26 -
24. Community
21. Continuous Integration
• 수시/1일 빌드를 통해 빌드 상태 확인
• 1일 배포 빌드를 수행하고 배포후 공개된 URL에 배포후 온라인으로 점검 (flamingo.opencloudengine.org)
• 실제 운영환경과 동일하게 구축하고 통합 빌드 수행
http://build.opencloudengine.org
Flamingo Community
- 24 / 26 -
25. Community
22. Integration Build & Deployment
• 개발중인 내용을 1일 자동 배포 과정을 통해 수시 통합 및 확인
http://flamingo.opencloudengine.org
Flamingo Community
- 25 / 26 -