• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
OpenSource Big Data Platform - Flamingo 소개와 활용
 

OpenSource Big Data Platform - Flamingo 소개와 활용

on

  • 3,653 views

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

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

Statistics

Views

Total Views
3,653
Views on SlideShare
3,632
Embed Views
21

Actions

Likes
14
Downloads
117
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 previous next

  • 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