제14회 JCO Presentation - Build Your Big Data Platform

Post on 12-Jun-2015

1.070 views 2 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SOFTWARE STACK

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

INFRA MANAGEMENTMONITORING

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

WORKFLOW

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

분석 및 시각화 환경

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

SECURITY

• ACCESS• AUTHENTICATIO

N• AUTHORIZATION• ENCRYPTION• AUDITING• POLICY

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

DASHBOARD

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

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

• 병렬 분석 프로그램

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

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

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

Flamingo Project

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

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

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

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

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

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

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

FLAMINGO의 통합 환경

FLAMINGO의 통합 환경

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

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

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

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

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

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

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

• SPRING FRAMEWORK 4

• MYBATIS 3

• EXTJS 4

• APACHE TOMCAT 7

• OPENGRAPH 1 (자체 개발)

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

FLAMINGO의 기본 아키텍처

FLAMINGO TEAM의 개발 원칙

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

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

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

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

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

FLAMINGO의 소스코드 구조

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

FLAMINGO의 워크플로우 디자이너

FLAMINGO의 워크플로우 디자이너

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

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

• DIRECT ACYCLIC GRAPH(DAG) 기반

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

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

FLAMINGO의 파일 시스템 관리

FLAMINGO의 파일 시스템 관리

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

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

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

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

• HIVE METASTORE 연동하여 동작

FLAMINGO의 파일 시스템 처리 이력

FLAMINGO의 WORKFLOW MONITORING

FLAMINGO의 JOB TRACKER MONITORING

FLAMINGO의 JOB TRACKER MONITORING

FLAMINGO의 JOB MANAGEMENT

FLAMINGO의 JOB MANAGEMENT

FLAMINGO의 HIVE EDITOR

FLAMINGO의 향후 마일스톤

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

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

• HIVE 파티션 생성 기능 추가

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

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

• HADOOP 2 지원 추가

• AMAZON EMR 지원을 위한 테스트

• RACKSPACE의 HADOOP PLATFORM 지원

라이선스 정책

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

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

FLAMINGO 프로젝트 관련 정보

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

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

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

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

감사합니다.