빅데이터 기본 개념 Yonsei University 2 nd Semester, 2015 Sanghyun Park * The slides are from the book “ 시작하세요 ! 하둡 프로그래밍 : 기초부터 실무까지 하둡의 모든 것 ” written by 정재화 ( 위키북스, 2012)
목차 빅데이터란 ? 빅데이터의 3 대 요소 빅데이터의 출현 배경 하둡이란 ? 왜 하둡인가 ? 하둡 에코시스템
빅데이터란 ? 데이터의 규모에 초점을 맞춘 정의 기존 데이터베이스 관리도구의 데이터 수집, 저장, 관리, 분석 역량을 넘어서는 데이터 ( 맥킨지 2011 년 5 월 ) 업무 수행 방식에 초점을 맞춘 정의 다양한 종류의 대규모 데이터로부터 저렴한 비용으로 가 치를 추출하고, 데이터의 빠른 수집, 발굴, 분석을 지원하 도록 고안된 차세대 기술 및 아키텍처 (IDC 2011 년 6 월 )
빅데이터의 3 대 요소 (3V) BI/DW 리서치 기관인 TDWI 가 빅데이터의 3 대 요소 (3V) 를 그림으로 표현 3 대 요소 가운데 두 가지 이상의 요소만 충족된다면 빅데 이터라고 볼 수 있음
크기 (Volume) (1) 일반적으로 수십 테라바이트 (terabyte) 혹은 수십 페타바 이트 (petabyte) 이상이 빅데이터의 범위에 해당 1 테라바이트는 1024 기가바이트 (gigabyte) 1 페타바이트는 1024 테라바이트 1 페타바이트는 6 기가바이트 DVD 영화를 17 만 4 천 편 담을 수 있는 용량
크기 (Volume) (2) 빅데이터는 기존 파일 시스템에 저장하기 어려울 뿐 아니라 데이터 분석을 위해 사용하는 기존 DW 같은 솔루션에서 소화 하기 어려울 정도로 급격하게 데이터의 양이 증가하고 있음 이러한 문제를 극복하려면 확장 가능한 방식으로 데이터를 저 장하고 분석하는 분산 컴퓨팅 방식으로 접근해야 함 현재 분산 컴퓨팅 솔루션에는 구글의 GFS, 아파치의 하둡 등 이 있음 대용량 병렬 처리 데이터베이스로는 EMC 의 GreenPlum, HP 의 Vertica, IBM 의 Netezza, 테라데이터의 Kickfire 등이 있음
속도 (Velocity) 빅데이터의 속도적인 특징은 크게 실시간 처리와 장기적인 접 근으로 나눌 수 있음 오늘날 디지털 데이터는 매우 빠른 속도로 생성되기 때문에 데이터의 수집, 저장, 분석 등이 실시간으로 처리돼야 함 모든 데이터가 실시간 처리만을 요구하는 것은 아님 수집된 대량의 데이터를 다양한 분석 기법과 표현 기술로 분 석해야 하는데, 이는 장기적이고 전략적인 차원에서 접근할 필요가 있음 통계학과 전산학에서 사용하는 데이터 마이닝, 기계 학습, 자 연어 처리, 패턴 인식 등이 분석 기법에 해당함
다양성 (Variety) 데이터는 정형화 정도에 따라 정형 (Structured), 반정형 (Semi- Structured), 비정형 (Unstructured) 으로 구분 정형 데이터는 고정된 필드에 저장되는 데이터를 의미하며, 일정한 형식을 갖추고 있음 반정형 데이터는 고정된 필드로 저장되지는 않지만, XML 이 나 HTML 같이 메타데이터나 스키마 등을 포함 비정형 데이터는 고정된 필드에 저장되지 않는 데이터를 의미 함. 사진, 동영상, 메신저로 주고 받은 대화 내용, 스마트폰에 기록되는 위치 정보, 통화 내용 등이 이에 해당 빅데이터는 비정형 데이터도 처리할 수 있어야 함
빅데이터의 출현 배경 (1) 스마트폰과 같은 디지털 기기의 보급과 소셜네트워크서 비스 (SNS) 의 부상으로 엄청난 양의 데이터가 생산되고 있음 빅데이터는 기업, 정부, 의료, 교육 분야에서 그 가치가 입증되고 있음 빅데이터를 적극적으로 활용하는 기업은 비즈니스 성과 를 개선할 수 있음 글로벌 패션기업인 자라 (ZARA) 는 빅데이터 분석을 통해 상품 공급 프로세스를 혁신하고 재고 수량을 최적화함으 로써 매출과 영업이익을 크게 증대시켰음
빅데이터의 출현 배경 (2) 빅데이터는 의료 분야에서도 적용이 확대되고 있음 최근 일본 IBM 과 도호대학은 의료정보를 분석해 미래 질병을 예측할 수 있는 시스템을 개발했다고 발표함 ( 의료 기록에 텍 스트 분석 기술을 적용 ) DNA 연구 분야에서도 빅데이터 기술이 활발하게 적용되고 있 음 ( 인간의 DNA 를 구성하는 염기서열 1 쌍당 4 테라바이트의 이미지 데이터가 생성 ) 국가 차원에서도 빅데이터에 대응하기 위한 다양한 정책이 발 표되고 있음 ( 미국 백악관, 일본 총무성과 국가전략회의 )
하둡이란 ? (1) 하둡은 대용량 데이터를 분산 처리할 수 있는 자바 기반 의 오픈소스 프레임워크 하둡은 2005 년에 더그 커팅 (Doug Cutting) 이 구글이 논 문으로 발표한 GFS(Google File System) 와 맵리듀스 (MapReduce) 를 구현한 결과물 처음에는 오픈소스 검색 엔진인 너치 (Nutch) 에 적용하기 위해 시작됐다가 이후 독립적인 프로젝트로 만들어졌고, 2008 년에는 아파치 최상위 프로젝트로 승격되었음
하둡이란 ? (2) 하둡은 분산 파일 시스템인 HDFS(Hadoop Distributed File System) 에 데이터를 저장하고, 분산 처리 시스템인 맵리듀스를 이용해 데이터를 처리 더그 커팅이 자신의 아들이 노란 코끼리 장난감 인형을 하둡이라고 부르는 것을 듣고 하둡이라는 이름을 지었음. 그래서 하둡의 로고로 노란 코끼리가 사용되는 것임 이러한 프로젝트 네이밍 룰 때문에 이후 하둡 관련 서브 프로젝트도 모두 동물과 관련된 이름을 사용
왜 하둡인가 ? (1) 정형 데이터의 경우 기존 RDBMS 에 저장할 수 있지만 웹 로그 같은 비정형 데이터를 RDBMS 에 저장하기에는 데이터 크기 가 너무 큼 하둡은 오픈소스 프로젝트이기에 소프트웨어 라이선스 비용 에 대한 부담이 없음 값비싼 유닉스 장비를 사용하지 않고, x86 CPU 에 리눅스 서 버면 얼마든지 설치하고 운영할 수 있음. 데이터 저장 용량이 부족할 경우, 필요한 만큼 리눅스 서버만 추가하면 됨 하둡은 데이터의 복제본을 저장하기 때문에 데이터의 유실이 나 장애가 발생했을 때도 데이터의 복구가 가능함
왜 하둡인가 ? (2) 기존 RDBMS 는 데이터가 저장된 서버에서 데이터를 처리하 는 방식이지만, 하둡은 여러 대의 서버에 데이터를 저장하고, 데이터가 저장된 각 서버에서 동시에 데이터를 처리하는 방식 임 하둡의 저렴한 구축 비용과 비용 대비 빠른 데이터 처리, 장애 를 대비한 특성은 많은 기업들의 구미를 당기게 했음 하둡은 초기에 야후에서만 주도적으로 사용됐지만, 현재는 아 마존, 이베이, 페이스북, 마이스페이스 등 글로벌 서비스 업체 에서 주로 이용함 국내에서는 NHN, DAUM 과 같은 포털 기업과 KT, SKT 같은 통신업체에서 사용함
왜 하둡인가 ? (3) EMC, IBM, 테라데이터, 오라클, 델, 마이크로소프트, HP 등은 하둡과 관련된 제품을 쏟아내며 마케팅을 강화 미국에서는 클라우데라, 호튼웍스와 같은 하둡 컨설팅 업체들이 활발히 활동 국내에서는 그루터, 넥스알, 클라우다인 같은 기업들이 하둡과 연계한 자체 솔루션을 선보이고 있음
하둡 에코시스템 (1) 하둡은 비즈니스에 효율적으로 적용할 수 있게 다양한 서브 프로젝트가 제공됨. 이러한 서브 프로젝트를 바탕 으로 하둡 에코시스템이 구성되었음
하둡 에코시스템 (2) 분산 데이터를 저장하는 HDFS 와 분산 데이터를 처리하는 맵 리듀스가 하둡 코어 프로젝트에 해당하며 나머지는 모두 하둡 의 서브 프로젝트 Zookeeper( 분산 코디네이터 ) 는 분산 환경에서 서버 간의 상호 조정이 필요한 다양한 서비스를 제공하는 시스템 Oozie( 워크플로우 관리 ) 는 하둡 작업을 관리하는 워크플로우 및 코디네이터 시스템 HBase( 분산 데이터베이스 ) 는 HDFS 기반의 컬럼 데이터베이 스이며 구글의 BigTable 논문을 기반으로 개발되었음. 실시간 랜덤 조회 및 업데이트가 가능함. 얼마 전 NHN 이 모바일 메신 저 라인에 HBase 를 적용한 시스템 아키텍처를 발표했음
하둡 에코시스템 (3) Pig( 하이레벨 스크립트 언어 for 데이터 분석 ) 는 복잡한 맵리 듀스 프로그래밍을 대체할 Pig Latin 이라는 자체 언어를 제공 함. 맵리듀스 API 를 크게 단순화 했으며 SQL 과 유사한 형태 로 설계되었음. 야후에서 개발됨 Hive( 데이터 분석 ) 는 페이스북에서 개발된 하둡 기반의 DW 용 솔루션임. SQL 과 매우 유사한 HiveQL 이라는 쿼리를 제공함. HiveQL 은 내부적으로 맵리듀스 잡으로 변환되어 실행됨 Mahout( 데이터 마이닝 ) 은 하둡 기반으로 데이터 마이닝 알고 리즘을 구현한 오픈소스임. Classification, clustering, 추천 및 협업 필터링, 회귀 분석, 차원 리덕션, 진화 알고리즘 등을 지 원함
하둡 에코시스템 (4) Hcatalog ( 메티데이터 관리 ) 는 하둡으로 생성한 데이터 를 위한 테이블 및 스토리지 관리 서비스 Avro( 직렬화 ) 는 RPC(Remote Procedure Call) 와 데이터 직렬화를 지원하는 프레임워크. JSON 을 이용해 데이터 형식과 프로토콜을 정의하며 작고 빠른 바이너리 포맷으 로 데이터를 직렬화 함
하둡 에코시스템 (5) Chukwa( 비정형 데이터 수집 ) 는 분산 환경에서 생성되는 데이 터를 HDFS 에 안정적으로 저장하는 플랫폼. 분산된 각 서버에 서 에이전트를 실행하고 콜렉터가 에이전트로부터 데이터를 받아 HDFS 에 저장함 Flume( 비정형 데이터 수집 ) 은 Chukwa 처럼 분산된 서버에 에 이전트가 설치되고, 에이전트로부터 데이터를 전달받는 콜렉 터로 구성. 차이점은 전체 데이터의 흐름을 관리하는 마스터 서버가 있어서 데이터를 어디서 수집하고 어떤 방식으로 전달 할지를 동적으로 변경할 수 있음. 클라우데라에서 개발 Scribe( 비정형 데이터 수집 ) 는 페이스북에서 개발한 데이터 수 집 플랫폼이며, Chuckwa 와는 다르게 중앙 집중 서버로 전송 하는 방식을 사용함
하둡 에코시스템 (5) Scoop( 대용량 데이터 전송 솔루션 ) 은 HDFS, RDBMS, DW, NoSQL 등 다양한 저장소에 대용량 데이터를 신속 하게 전송할 수 있는 방법을 제공함 Hiho( 대용량 데이터 전송 솔루션 ) 는 Sqoop 과 같은 대용 량 데이터 전송 솔루션이며 GitHub 에 공개돼 있음. 오라 클과 MySQL 의 데이터 전송만 지원함
하둡 에코시스템 (6) Impala 는 클라우데라에서 개발한 하둡 기반의 실시간 SQL 질의 시스템이며, 맵리듀스를 사용하지 않고 자체 개발한 엔진을 사용해 빠른 성능을 보여줌. 데이터 조회 를 위한 인터페이스로 HiveQL 을 사용하며 Hbase 와도 연 동할 수 있음 Tajo 는 고려대학교 박사 과정 학생들이 주도해서 개발한 하둡 기반의 SW 시스템이며, 2013 년 아파치 재단의 인 큐베이션 프로젝트로 선정됐음. 데이터 저장소는 HDFS 를 사용하되, SQL 언어를 사용하여 실시간으로 데이터 를 조회할 수 있음
NoSQL 이란 ? NoSQL 이란 관계형 데이터 모델과 SQL 문을 사용하지 않는 데이터베이스 시스템 혹은 데이터 저장소를 의미함 기존 RDBMS 가 분산 환경에 적합하지 않기 때문에 이를 극복 하기 위해 NoSQL 이 고안되었음 NoSQL 의 데이터베이스는 단순히 키와 값의 쌍으로만 이뤄져 있고, 인덱스와 데이터가 분리되어 별도로 운영됨. 또한 조인 이 없으며, 샤딩 (Sharding) 이라는 기능을 이용해 데이터를 분 할해서 다른 서버에 나눠 저장함 MongoDB, HBase, CouchDB, Casandra, Redis 등 다양한 NoSQL 솔루션이 출시되고 있으며, 국내에서는 MongoDB 가 가장 많이 사용됨