제14회 JCO Presentation - Build Your Big Data Platform

35
빅 데이터 플랫폼? 이것만 하면 80%는 구축할수 있다!

Transcript of 제14회 JCO Presentation - Build Your Big Data Platform

Page 1: 제14회 JCO Presentation - Build Your Big Data Platform

빅 데이터 플랫폼? 이것만 하면 80%는구축할수 있다!

Page 2: 제14회 JCO Presentation - Build Your Big Data Platform

빅 데이터 플랫폼?이 놈의 실체는?

Page 3: 제14회 JCO Presentation - Build Your Big Data Platform

내가 만약 빅 데이터 플랫폼 부서의 책임자라면무엇을 제공할 것인가?

Page 4: 제14회 JCO Presentation - Build Your Big Data Platform

• 빅 데이터가 기존의 DW랑 차이가 뭐가 있는지 모르겠습니다.

• 단위 데이터만 봐서는 큰 데이터가 없습니다. 사업의 타당성을 만들수가 없습니다. 어떻게 해야 하나요?

• A라는 데이터가 있는데 그것으로 뭘 해야할까요?

• 다른 회사는 뭐 한답니까? 혹시 동종업계 비슷한 사례가 있나요?

• 빅 데이터 플랫폼을 만들라는데 이놈이 뭐를 하는 놈인지 모르겠습니다.

빅 데이터 플랫폼 책임자에게 듣는 흔한 질문

Page 5: 제14회 JCO Presentation - Build Your Big Data Platform

빅 데이터 플랫폼의 역할에 대한 고민

• 빅 데이터 플랫폼에서 하고자 하는 주요 업무는 무엇인가?

• 이 플랫폼에서 누가 무슨일을 하는가?

• 나는 운영자인가 개발자인가 분석가인가?

• 다른 회사는 뭐 한답니까? 혹시 동종업계 비슷한 사례가 있나요?

• 빅 데이터 플랫폼을 만들라는데 이놈이 뭐를 하는 놈인지 모르겠습니다.

Page 6: 제14회 JCO Presentation - Build Your Big Data Platform

빅 데이터 플랫폼이 제공해야 하는 것

SOFTWARE STACK

Page 7: 제14회 JCO Presentation - Build Your Big Data Platform

빅 데이터 플랫폼이 제공해야 하는 것

INFRA MANAGEMENTMONITORING

Page 8: 제14회 JCO Presentation - Build Your Big Data Platform

빅 데이터 플랫폼이 제공해야 하는 것

WORKFLOW

Page 9: 제14회 JCO Presentation - Build Your Big Data Platform

빅 데이터 플랫폼이 제공해야 하는 것

분석 및 시각화 환경

Page 10: 제14회 JCO Presentation - Build Your Big Data Platform

빅 데이터 플랫폼이 제공해야 하는 것

SECURITY

• ACCESS• AUTHENTICATIO

N• AUTHORIZATION• ENCRYPTION• AUDITING• POLICY

Page 11: 제14회 JCO Presentation - Build Your Big Data Platform

빅 데이터 플랫폼이 제공해야 하는 것

DASHBOARD

Page 12: 제14회 JCO Presentation - Build Your Big Data Platform

빅 데이터 플랫폼이 제공해야 하는 것

• 배치 작업 관리와 작업 모니터링

• 병렬 분석 프로그램

• 사용자의 주요 행동에 대한 모니터링

• 리소스에 대한 각종 접근 통제 정책들…

• 인프라에 대한 접근성을 뛰어나게 하는 다양한 방법들…

Page 13: 제14회 JCO Presentation - Build Your Big Data Platform

Flamingo Project

Page 14: 제14회 JCO Presentation - Build Your Big Data Platform

하지만 우리는 모든 것을 원하지 않아요…

• 현장의 요구사항을 최대한 반영할 수 있는 통합된 환경을 제공해줬으면 좋겠습니다.

• HADOOP ECOSYSTEM을 그대로 사용할 수 있으면 좋겠습니다.

• 사용자의 업무 패턴과 사용 패턴을 고려했으면 좋겠습니다.

• 현재 나와있는 것들과 충돌이 나거나 동일한 기능을 제공하는 것은 지양합니다.

• 인프라 고민 하지 않고 만들고 활용하는데 집중했으면 좋겠습니다.

• 하지만 쉬워야 합니다. 그리고 오픈소스여야 합니다.

Page 15: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO의 통합 환경

Page 16: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO의 통합 환경

• 사용자는 작업 공간 내에서 자유롭게 이동하면서 작업을 할 수 있도록구성

• EXTJS의 DESKTOP APPLICATION을 MVC 구조에 맞춰서 최적화

• 각 화면은 최대한 독립 개발이 가능하도록 분리하여 구성

• 재사용 가능한 것은 컴포넌트화여 코드 작성을 최소화

• 누구나 추가할 수 있도록 최대한 구조를 단순화하고 대중적인 프레임워크를 사용

• 개발 방법도 모두 표준화 (도구, 절차, 매뉴얼, 환경 등등)

Page 17: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO를 구성하는 오픈소스 프레임워크

• SPRING FRAMEWORK 4

• MYBATIS 3

• EXTJS 4

• APACHE TOMCAT 7

• OPENGRAPH 1 (자체 개발)

• (ANY) APACHE HADOOP, APACHE PIG, APACHE HIVE

Page 18: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO의 기본 아키텍처

Page 19: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO TEAM의 개발 원칙

• 우리는 커뮤니케이션 비용을 최소화하기 위해서 예외를 두지 않음 (모든 방법은 표준화를 통해 간소화함)

• 기반이 되는 것은 모두 직접 개발함

• 남이 이미 만든 것은 개발하지 않고 의존하지 않음 (사용자가 알아서 사용하는 것임)

• 철저하게 현장에서 필요로 하는 기능을 개발함

• 사용자의 러닝커브를 최소화하고 효율성을 극대화함

Page 20: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO의 소스코드 구조

UI 구조는 직관적EXTJS의 JAVASCRIPT는 340여개

Page 21: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO의 워크플로우 디자이너

Page 22: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO의 워크플로우 디자이너

• 기 개발한 MAPREDUCE를 그대로 통합할 수 있어야 함

• 개발자가 개발한 MAPREDUCE를 디자이너에 통합하는데가이드를 따르는 경우 30분 이내 추가할 수 있어야 함

• DIRECT ACYCLIC GRAPH(DAG) 기반

• 각 노드의 정보가 상호 연계하여 동작

• 동작에 대한 코드는 0%, 메타데이터 설정만으로 동작 방식을 변경 (유지보수 최소화를 추구)

Page 23: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO의 파일 시스템 관리

Page 24: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO의 파일 시스템 관리

• APACHE HADOOP의 HDFS를 관리하는 메인 화면

• 사용자는 디렉토리/파일을 관리

• 파일 업로드 및 다운로드 가능

• 디렉토리의 내용을 즉시 데이터베이스화 하여 조회

• HIVE METASTORE 연동하여 동작

Page 25: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO의 파일 시스템 처리 이력

Page 26: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO의 WORKFLOW MONITORING

Page 27: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO의 JOB TRACKER MONITORING

Page 28: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO의 JOB TRACKER MONITORING

Page 29: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO의 JOB MANAGEMENT

Page 30: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO의 JOB MANAGEMENT

Page 31: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO의 HIVE EDITOR

Page 32: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO의 향후 마일스톤

• 데이터 전처리 모듈, 추론 엔진 등을 디자이너에 추가할 예정

• JOB TRACKER 기능 추가 및 워크플로우 연동 추가

• HIVE 파티션 생성 기능 추가

• 설정 정보 관리 기능 통합 (ECLIPSE와 같은 스타일)

• 사용자별 쿼터 설정 및 권한 추가

• HADOOP 2 지원 추가

• AMAZON EMR 지원을 위한 테스트

• RACKSPACE의 HADOOP PLATFORM 지원

Page 33: 제14회 JCO Presentation - Build Your Big Data Platform

라이선스 정책

• UI는 EXTJS를 이용하므로 GPL 라이선스를 적용 (APACHE 라이선스로전환하기 위한 의사결정을 추후 진행할 예정)

• 서버 애플리케이션을 구성하는 모든 자바 코드는 APACHE 라이센스

Page 34: 제14회 JCO Presentation - Build Your Big Data Platform

FLAMINGO 프로젝트 관련 정보

• 배포판 다운로드HTTP://SOURCEFORGE.NET/PROJECTS/HADOOP-MANAGER

• 위키HTTP://WIKI.OPENCLOUDENGINE.ORG/PAGES/VIEWPAGE.ACTION?PAGEID=819205

• 이슈 관리 HTTP://JIRA.OPENCLOUDENGINE.ORG

• 빌드 서버 HTTP://BUILD.OPENCLOUDENGINE.ORG

Page 35: 제14회 JCO Presentation - Build Your Big Data Platform

감사합니다.