OpenSource Big Data Platform - Flamingo 소개와 활용
Upcoming SlideShare
Loading in...5
×
 

OpenSource Big Data Platform - Flamingo 소개와 활용

on

  • 3,840 views

오픈소스 빅데이터 플랫폼 SW인 Flamingo에 대한 소개와 활용 방법을 설명합니다.

오픈소스 빅데이터 플랫폼 SW인 Flamingo에 대한 소개와 활용 방법을 설명합니다.

Statistics

Views

Total Views
3,840
Slideshare-icon Views on SlideShare
3,819
Embed Views
21

Actions

Likes
15
Downloads
126
Comments
1

4 Embeds 21

https://twitter.com 7
http://seed.kut.ac.kr 5
http://www.slideee.com 5
http://www.linkedin.com 4

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    OpenSource Big Data Platform - Flamingo 소개와 활용 OpenSource Big Data Platform - Flamingo 소개와 활용 Presentation Transcript

    • Open Cloud Engine Open Source Big Data Platform Flamingo Project 소개 및 활용 Open Cloud Engine Flamingo Project Leader 김병곤 (ceo@cloudine.co.kr) 2014.04.02 v0.9
    • 빅데이터 플랫폼이란 무엇인가?
    • 빅 데이터 책임자에게 듣는 흔한 질문 •  빅 데이터가 기존의 DW랑 차이가 뭐가 있는지 모르겠습니다. •  단위 데이터만 봐서는 큰 데이터가 없습니다. 사업의 타당성을 만 들수가 없습니다. 어떻게 해야 하나요? •  A라는 데이터가 있는데 그것으로 뭘 해야할까요? •  다른 회사는 뭐 한답니까? 혹시 동종업계 비슷한 사례가 있나요? •  빅 데이터 플랫폼을 만들라는데 이놈이 뭐를 하는 놈인지 모르겠 습니다.
    • 빅 데이터 플랫폼의 역할에 대한 고민 •  빅 데이터 플랫폼에서 하고자 하는 주요 업무는 무엇인가? •  데이터 마이닝, 통계, 로그 관리(수집, 전처리, …) •  빅 데이터 플랫폼에서 누가 무슨 일을 하는가? •  사용자에 따라서 플랫폼의 기능이 서로 다를 수 있다. •  운영자는 대부분 개발자 출신이기 때문에 시스템 관리 및 로그 관리에 초점 •  사용자가 분석가 출신인 경우 데이터 분석을 위한 환경의 성숙도가 초점 •  빅 데이터 플랫폼을 사용하는 사용자의 수는? •  사용자가 많다면 플랫폼의 기능성과 인프라의 접근성이 중요 •  플랫폼이 데이터를 다루는 특성 때문에 보안에 취약할 수 있고 Hadoop은 실 제로 취약함 •  나는 운영자? 기획자? 개발자? 분석가? •  책임자의 역할에 따라서 플랫폼의 기능도 다르게 정의한다.
    • 빅 데이터 플랫폼이 제공해야 하는 것 SOFTWARE STACK
    • 빅 데이터 플랫폼이 제공해야 하는 것 INFRA MANAGEMENT MONITORING
    • 빅 데이터 플랫폼이 제공해야 하는 것 WORKFLOW
    • 빅 데이터 플랫폼이 제공해야 하는 것 분석 및 시각화 환경
    • 빅 데이터 플랫폼이 제공해야 하는 것 DASHBOARD
    • 빅 데이터 플랫폼이 제공해야 하는 것 SECURITY •  ACCESS •  AUTHENTICATION •  AUTHORIZATION •  ENCRYPTION •  AUDITING •  POLICY
    • 빅 데이터 플랫폼이 제공해야 하는 것 •  배치 작업 관리와 작업 모니터링 •  병렬 분석 프로그램 •  사용자의 행위에 대한 모니터링 •  리소스에 대한 각종 접근 통제 정책 및 시스템 •  인프라의 접근성 향상을 위한 다양한 기능들…
    • Flamingo Project In Open Cloud Engine •  웹 기술을 활용하여 빅 데이터 인프라 및 데이터를 편리하게 사용 하도록 한다. •  사용자가 데이터를 잘 활용할 수 있도록 한다. •  하나의 화면에서 자유롭게 다양한 작업을 할 수 있는 작업 공간을 제공한다. •  다양한 분석 및 처리 MapReduce를 쉽게 재활용 할 수 있도록 한다. •  오픈소스 기반으로 모든 시스템을 제대로 갖추고 진행한다. •  남의 것에 의존하지 않고 직접 다 만든다. •  현장의 업무를 중심으로 설계한다. •  다국어 지원을 통해 다양한 사람들이 사용할 수 있도록 한다. •  Hadoop EcoSystem을 잘 지원한다.
    • Browser   디자이너   Search   형태소
    •    분석
    •    그래프
    •    분석
    •    사용자별
    •   평 가
    •    리더
    •   선 출
    •    로그
    •   데이터
    •    데이터
    •   분석가
    •    서비스
    •   기획자
    •    데이터
    •   분석가
    •    Browser   인포메이션 카탈로그   Search   인포메이션 유형   보안등급   생성주기   형식   사용자 친밀도   1   매일 새벽2시   XML   아이템 추천   2   매일 새벽 1시   JSON   구매 성향   3   매일 저녁 8시   XML/JSON   오피니언 리더 점수   2   매일 오전 10 시   XML/JSON   데이터
    •   이용자
    •    시스템
    •    오피니언
    •   리더
    •   점수
    •    Open
    •    API
    •    데이터
    •   시각화 를
    •   위한
    •   Chart
    •    워크플로우
    •   디자인
    •    수집
    •   
    •    데이터
    •   이용자
    •    서비스
    •   
    •    요청
    •    모바일
    •    분석
    •   결과를
    •   재사용
    •    분석
    •   결과를
    •   외부에
    •   제공하기
    •    위해
    •   Open
    •   API
    •   로
    •   노출
    •    분석
    •   결과
    •    검증
    •   로그
    •   데이터
    •    MapReduce
    •   분석
    •   모듈
    •    빅
    •   데이터
    •   분석
    •   및
    •   서비스
    •   플랫폼
    •    1
    •    2
    •    3
    •    4
    •    5
    •    6
    •    7
    •    Future of Big Data Platform
    • Flamingo Project •  현장에서 오랫동안 경험한 결과 Hadoop 기반 Big Data 환경은 기능성이 매우 중요 •  많은 오픈소스들이 통합되면서 관리의 어려움이 발생하고 있고 통합환경을 제공하는 UI도 절대적으로 부족
    • Flamingo의 통합 환경(Workbench) •  사용자는 작업 공간 내에서 자유롭게 이동하면서 작업을 할 수 있 도록 구성 •  각 화면은 최대한 독립 개발이 가능하도록 분리하여 구성 •  재사용 가능한 것은 컴포넌트화여 코드 작성을 최소화 •  누구나 추가할 수 있도록 최대한 구조를 단순화하고 대중적인 프 레임워크를 사용 •  개발 방법도 모두 표준화 (도구, 절차, 매뉴얼, 환경 등등)
    • Flamingo Architecture
    • File System Browser •  Hadoop이 파일을 다루므로 파일 시스템 브라우저의 기능은 상당히 중요한 메인 기능 •  사용자가 Windows Explorer 스타일의 친숙한 UX를 따라가도록 설계
    • File System Browser 디렉토리를 Hive DB와 Table로 전환 브라우저에서는 Hive DB와 Table 경로를 다른 아이콘으로 표시하여 확인 FLAMINGO에서는 사용자 가 주로 하는 행위에 최적 화하여 기능을 제공
    • File System Browser 기능 고도화 •  파일 내용 및 Block Location 보기 기능 •  사용자의 등급별 디렉토리 및 파일 표시 및 기능 제한 (Hadoop 자체 기능은 없음) •  예) 일반 사용자의 경우 /tmp 디렉토리는 표시하지 않음 •  디렉토리 및 파일의 permission 설정 기능 •  사용자의 홈 디렉토리 기능 (Hadoop 자체 기능은 없음) •  디렉토리 Quota 설정 기능 •  파일 시스템의 크기 정보를 주기적으로 덤프를 생성하는 기능 추가 (모니터링)
    • Audit Log •  HDFS 등과 같은 File System 상에서 발생하는 로그의 기록을 모두 남기고 조회
    • Workflow Designer •  다양한 분석 모듈을 탑재할 수 있도록 설계 (예; Mahout) •  UI를 통해 미리 제공하는 분석 및 처리 모듈을 드래그 앤 드롭으로 처리 •  현재 분석 알고리즘 및 기초 통계 모듈은 통합 완료, Mahout, Giraph 통합 진행중. 추후 MR ETL 통합 예정.
    • Big Workflow Case 현장에서 필요하다면 다수의 노드로 구성할 수 있는 워크플로우를 실제 로 구현하여 사용함.
    • Apache Access Log To CSV
    • Apache Access Log To CSV 작성한 MapReduce의 파라미터 옵션 •  CSV 파일 변환시 필요한 컬럼 구분자 •  패턴과 다른 로그의 경우 표준 출력으로 기록 할지 여부(디버깅용) Apache Access Log의 위치와 CSV 파 일의 위치를 지정 MapReduce JAR 파일과 Driver 클래스
    • Workflow Designer •  최종 결과물을 생성하기 위해서는 복잡한 워크플로우를 구성하게 됨 •  MapReduce의 특성상 파일을 가공하는데 한번의 작업이 아닌 다수의 작업으 로 해야하는 경우 빈번하여 워크플로우를 복잡하게 만듬 •  국내 엔지니어들은 절대적으로 Apache Hive의 SQL like Query Languag e를 선호하여 MapReduce를 많이 사용하지 않으므로 워크플로우 디자이너 의 중요성이 많이 부각되지 않음 •  현업에서 다양한 로그 파일을 다루는 경우 워크플로우 디자이너와 MapRedu ce는 매우 중요함
    • Workflow Monitoring •  워크플로우 디자이너에서 디자인한 워크플로의 실행을 모니터링. 실행 로그를 정확하게 확인할 수 있음.
    • Workflow Monitoring root@n02:~/flamingo_data/tmp/2014/03/31/90/JOB_20140331_172000_90_157566920/26385942 $> ls -lsa 합계 40 4 drwxr-xr-x 2 root root 4096 2014-03-31 17:23 . 4 drwxr-xr-x 20 root root 4096 2014-03-31 17:23 .. 16 -rw-r--r-- 1 root root 12731 2014-03-31 17:23 action.log à 실행 로그 4 -rwxrwxrwx 1 root root 1259 2014-03-31 17:23 core-site.xml 0 -rw-r--r-- 1 root root 0 2014-03-31 17:23 hadoop.job_201403300831_0471 à MapReduce Job ID 4 -rwxrwxrwx 1 root root 852 2014-03-31 17:23 script.sh à 커맨드 라인 root@n02:~/flamingo_data/tmp/2014/03/31/90/JOB_20140331_172000_90_157566920/26385942 $> 워크플로우의 노드는 다 수의 MAPREDUCE JOB 으로 동작할 수 있으므 로 추적이 가능해야 함 사용자 관점의 MapReduce 실행 이력
    • Hadoop Job Monitoring Hadoop Job 모니터링에서도 반대로 추적이 모두 가능해야 함.
    • Expression Language (EL) •  동적인 값들을 얻고자할 때 Workflow Designer에서 활용 •  예) 오늘 날짜 : dateFormat(‘yyyyMMdd’) dateFormat(‘yyyy-MM-dd’) •  워크플로우가 실행할 때 특정한 값들은 해당 시간으로 대체되어야 하는 경우가 발생 •  예) 오늘 실행하는 워크플로우는 어제 날짜의 디렉토리에 기록 (일배치) •  제공하는 Expression Language •  dateFormat(‘DATE FORMAT’) à dateFormat(‘yyyyMMddHHmmss’) •  hostname, escapeString, •  yesterday, tommorow •  month, day, hour, minute, … à day(‘yyyyMMdd’, -1) :: 어제 날짜 (20131111) •  trim, concat, urlEncode, firstNotNull
    • Expression Language (EL) 입력 필드에 ${EL} 형식으로 입력하는 경우 동적으로 해석하여 값이 변경됨.
    • Hadoop Job Tracker Monitoring •  Hadoop의 Job Tracker 상세 정보를 그래프로 보여주는 모니터링 기능
    • Hadoop Job Tracker Monitoring •  Hadoop Job의 상세 정보를 원격에서 모두 모니터링하고 추적 가능
    • Hive Editor & Hive Metastore Browser •  파일 시스템의 파일을 SQL로 조회, 브라우징, 다운로드 •  Hive Metastore 관리 기능을 제공하여 데이터베이스와 테이블을 통합 관리할 수 있도록 기능을 제공
    • Hive 편집기 적용 사례 •  시스템의 사용자 접근 이력 로그를 Hive로 조회하는 사례 –  대상 로그의 형식이 반정형이나 비정형인 경우 문제 발생 –  칼럼 안에 Array, Map 등의 이상한 구조를 가진 로그의 경우 문제 발생 •  대상 로그는 CSV 형식과 같은 잘 정리된 형식이 아닌 반정형 로그 형식 TYPE="IPINSIDE" TIME="2014-03-20 17:40:37" ID="guest0899349" MAC="AA-BB-01-18-68-68" NAT_IP="10.24 .104.104" NAT_IP_NATION="USA" PROXY_USE="Y" VPN_USE="Y" REMOTE_USE="Y" PROXY_IP="192.24.104.104" P ROXY_IP_NATION="USA" VPN_IP="192.24.104.104" VPN_IP_NATION="USA" SVC_CODE="SVC_CODE_0899349" HDD_D ISK="HDD_DISK_0899349" CPU_INFO="CPU_INFO_0899349" USE_OS_NATION="USA" MESG="mesg..... time[139528 4830] rnd[875899349] unq[5000000]" TYPE="IPINSIDE" TIME="2014-03-20 17:40:37" ID="guest0899349" MAC="AA-BB-01-18-68-68" NAT_IP="10.24 .104.104" NAT_IP_NATION="USA" PROXY_USE="Y" VPN_USE="Y" REMOTE_USE="Y" PROXY_IP="192.24.104.104" P ROXY_IP_NATION="USA" VPN_IP="192.24.104.104" VPN_IP_NATION="USA" SVC_CODE="SVC_CODE_0899349" HDD_D ISK="HDD_DISK_0899349" CPU_INFO="CPU_INFO_0899349" USE_OS_NATION="USA" MESG="mesg..... time[139528 4830] rnd[875899349] unq[5000000]"
    • Hive 편집기 적용 사례 TYPE="IPINSIDE" TIME="2014-03-20 17:40:37" ID="guest0899349" MAC="AA-BB-01-18-68-68" NAT_IP="10.24.104.104" NAT_IP_NATION="USA" PROXY_USE="Y" VPN_USE="Y" REMOTE_USE="Y" PROXY_IP="192.24.104.104" PROXY_IP_NATION="USA" VPN_IP="192.24.104.104" VPN_IP_NATION="USA" SVC_CODE="SVC_CODE_0899349" HDD_DISK="HDD_DISK_0899349" CPU_INFO="CPU_INFO_0899349" USE_OS_NATION="USA" MESG="mesg..... time[1395284 830] rnd[875899349] unq[5000 000]”
    • Hive 편집기 적용 사례 CREATE DATABASE TEST LOCATION '/RAW'; CREATE EXTERNAL TABLE TEST.MAS ( type string, time string, id string, mac string, nat_ip string, nat_ip_nation string, proxy_use string, vpn_use string, remote_use string, proxy_ip string, proxy_ip_nation string, vpn_ip string, vpn_ip_nation string, svc_code string, hdd_disk string, cpu_info string, use_os_nation string, mesg string) PARTITIONED BY ( yyyy string, mm string, dd string) ROW FORMAT SERDE 'kr.cloudine.poc.MasSerde' LOCATION '/RAW/MAS'; ALTER TABLE MAS ADD PARTITION (YYYY='2014', MM='03', DD=’25');
    • Hive 편집기 적용 사례
    • Hive 편집기 적용 사례 public class MasSerde implements SerDe { private StructTypeInfo rowTypeInfo; private ObjectInspector rowOI; private List<String> colNames; private List<Object> row = new ArrayList<Object>(); Pattern p = Pattern.compile(""(.*?)""); // 로그 파일의 정규 표현식 @Override public Object deserialize(Writable blob) throws SerDeException { row.clear(); Matcher m = p.matcher(blob.toString()); // 로그 파일을 정규식으로 패턴 매칭 List list = new ArrayList(); while (m.find()) { list.add(m.group(1)); // 패턴 매칭을 통해 추출한 칼럼 정보를 저장 } String[] split = (String[]) list.toArray(new String[list.size()]); int i = 0; for (String fieldName : rowTypeInfo.getAllStructFieldNames()) { TypeInfo fieldTypeInfo = rowTypeInfo.getStructFieldTypeInfo(fieldName); row.add(parseField(split[i], fieldTypeInfo)); i++; } return row; } ... 생략 } HIVE QUERY 실행시 로그 파일을 로딩할 때 DESERIALIZE한다.
    • Hive 편집기 적용 사례
    • Pig Script Editor •  Pig Latin Script를 편집하고 저장 •  Pig Latin Script를 실행하고 관련 이력을 관리하여 빠르게 데이터를 프로세싱
    • Dashboard •  배치 작업의 동작 현황을 보여주는 UI
    • Job Management •  워크플로우를 주기적으로 실행하도록 배치 작업을 등록하고 모니터링
    • Job Management •  Cron Expression Fully Support
    • 프로젝트 정보 •  Source Forge (다운로드) –  http://www.sourceforge.net/projects/hadoop-manager •  위키 (설명서 및 각종 기술자료) –  http://wiki.opencloudengine.org/pages/viewpage.action?pageId=8 19205 •  이슈 관리 (버그 및 신규 기능) –  http://jira.opencloudengine.org •  빌드 서버 –  http://build.opencloudengine.org •  구글 그룹스 : flamingo-project-kr@googlegroups.com •  facebook : https://www.facebook.com/groups/flamingo.workflow •  서브스크립션 (기업 기술지원) : sales@cloudine.co.kr
    • Flamingo Project의 미래 •  Big Data on Cloud •  Netra (OpenStack based Hadoop Provisioning) + Flamingo (Hadoop based Workspace) •  Open Source based Big Data Platform •  Apache Hadoop EcoSystem •  Big Data Management Using Flamingo •  Apache Hadoop PaaS (Platform as a Service) •  Big Data All In One Package
    • Workflow Designer •  MapReduce 개발자 마다 모두 파라미터 처리가 틀리고 표준화 되어 있지 않음 •  이러한 다양한 MapReduce를 빠르게 어떻게 통합할 것인가?
    • Workflow Designer •  대부분의 UI 컴포넌트는 재사용 가능하도록 설계하여 컴포넌트 형태로 제공 •  MapReduce Module과 UI 통합 방식이 표준화 되어 있으며 프레임워크로 제공되어 빠르게 개발 및 통합 가능 재사용 컴포넌트 UI 구성
    • Workflow Designer •  모듈의 아이콘도 메타 데이터를 통해서 정의하여 별도 코드 작성을 최소화하고 •  관련 기능을 통합 프레임워크로 위임하고 사용자는 메타 데이터만으로 핸들링
    • 참여와 공유!! www.opencloudengine.org