SlideShare uma empresa Scribd logo
1 de 72
Baixar para ler offline
공봉식
kongbong23@gmail.com
HADOOP
그 멋있지만 병신같고 복잡한 세계
기도합시다
늑대인간을 한방에 없앨 수 있는 은총알은 없다.
1부
하둡? 너 누구니?
WHY?
700GB 짜리 하드가 2개가 있는데 1TB 짜리 파일을 담는 방법?
1.2TB 짜리 하드를 산다.
2. 파일을 500GB 로 나눠서 각각 담는다.
(파일 헤더에 몇번째 블록인지 쓴다)
하드 2개 중 하나가 사망하셨다.
미러링 한다.
(RAID 1 이라고 하지요)
서버랙이 사망하셨다. (보통 스위치나 전원이 나가죠)
랙 2개에 미러링 한다.
IDC 가 물에 잠겼다.
답 없다.
하지만…
구글 신이라면 얘기가 다르지
구글은 데이터센터가
전세계에 8개
미국 6개, 유럽 2개
여기까지 스토리지 얘기
텍스트로 된 1TB 짜리 파일의 단어를 정렬한다면…
생각하기도 싫다…
하지만 구글신은 매일 하는 일..
하둡의 역사
검색 엔진으로부터 시작
검색 엔진이 하는 일을 보자
• 크롤링 (검색 로봇이 웹을 돌면서 웹문서를 긁어온다)
• 형태소 추출 (웹문서에서 단어들을 추출한다)
• 역색인 (단어 – 웹문서 형태로 색인한다)
하둡의 창시자 – 더그 커팅
웹 크롤러 넛치를 제작
검색엔진 루씬 제작
문제는 스토리지..
내가 도와줄께~
구글에서 빅테이블 과 맵리듀스에 대한 논문 발표
그럼,
왜 갑자기?
기술이 빅데이터 열풍을 선도했다.
- 실로암 못에 가서 씻으라 -
- 요한복음 9장 1~7절
데이터를 모으기 시작
- 활용은 모르겠고 우선 모으고 보자
- 버려지던 데이터들을 모으기 시작
Big Data, Simple Algorithms
How?
하둡은 파일 시스템
• NTFS 나 FAT32 같은 거임
• 대용량 파일을 분산해서 저장하고 분산된 파일을 처리하는 기반 시스템
하둡만 가지고는 아무것도 못한다.
DB? 절대 그런거 아님
스토리지 측면,
대용량 파일 처리 측면
namenode, secondary namenode, datanode
- 스토리지 쪽
jobtracker, tasktracker
- 대용량 파일 처리 쪽
스토리지 측면
• 3 Copy (기본 옵션)
• 같은 랙에 하나, 다른 랙에 하나
• 64mb 블록
• 파일을 64mb 블록으로 나눠서 저장
• namenode 에서 각 파일 블록을 관리한다. (속도 위해 In-momory 관리)
• namenode 장애에 매우 취약하다.
• namenode 메모리가 매우 중요하다.
• 작은 크기의 매우 많은 파일에 매우 취약하다.
• secondary namenode 는 그냥 grace 종료를 위한 용도이다.
기도합시다
늑대인간을 한방에 없앨 수 있는 은총알은 없다.
대용량 파일 처리 측면
맵 & 리듀스
기존의 데이터 처리와 달라도 너~~~무 달라
멘붕!
이쯤에서 보는 코드
단어 하나 세는데.!!
2부
복잡해도 너~~~무 복잡한 하둡 생태계
하둡만 가지고는 아무것도 못한다.
하둡 생태계 내 다른 프로젝트들을 올려서 사용
이걸 다 쓴다는거….
Pig
ZooKeeper
Sqoop
오픈 소스 환경에 익숙한 사람은 괜찮지만,
MS 진영에서는 ‘이뭐병’ 상황
덮어놓고 비판하기 전에
하나씩 살펴보자
PIG
• 맵리듀스는 분석가가 만들기 어렵다.
• 하지만 보통 데이터 분석은 몇가지 기능만 사용된다.
• 그럼 기능을 스크립트로 제공하고 스크립트를 해석해서 맵리듀스 코드를 생성해서 돌리자
• 전용 스크립트 PigLatin 을 사용
• 스크립트를 분석해서 맵리듀스 코드 생성
• 코드를 하둡에 올리고 돌려서 결과 생성
확 줄었다
데이터 로드
c = load '/user/bdh/data27/cite.TXT' using PigStorage(',') as (c1:int, c2:int);
/** 카운트를 위한 컬럼 그룹화 */
g = group c by c1, c2;
/** group 데이터 수를 카운트 */
f = foreach g generate flatten(group), COUNT($1) as cnt;
/** 결과를 확인해 볼 수 있다. */
L = limit f 10;
Dump L;
HIVE
• 전용 스크립트를 분석해서 맵리듀스를 생성하는 건 같다.
• 하지만 그 과정이 별도 테이블을 정의하고 SQL Query 를 통해서 분석 결과를 뽑고 결
과를 다시 테이블 형태로 저장 가능
• 멋있어 보이지만, 생각만큼 만만한 얘는 아니다.
테이블 생성
create external table cite (
citing int , cited int
)row format delimited fields terminated by ',' lines terminated by 'n'
stored as textfile;
로컬데이터로드
load data local inpath '/home/bdh/data/cite.TXT' overwrite into table cite;
카운팅
select citing, count(citing) from cite group by citing limit 100;
HBASE
• 하둡의 심장!
• 이거 때문에라도 하둡을 써야 한다.
• 구글의 빅테이블을 구현한 데이터베이스 (하둡 생태계에서 유일한 스토리지)
• 컬럼 베이스 형태의 NoSQL DB(카산드라와 같다)
• RDBMS 랑 구조와 완전히 다르다 (DB 라는 생각을 버려야 한다)
• 하둡의 작은 파일에 대한 취약점을 극복
• 컬럼 패밀리를 미리 정의하고 컬럼패밀리 내의 컬럼은 무한히 증가될 수 있는 구조
• 각 컬럼 별 타임스태프로 버전관리가 된다.
• RowKey 를 통한 랜덤억세스에 특화되어 있다.
• Full Scan 은 뭘해도 느리다 (복잡한 문제를 한방에 푸는 방법은 없다.)
• 그래도 싱글머신에서 돌리는 것보단 훨 빠르다.
HBASE
HBASE 의 데이터 구조
• • 테이블 (Table)
• 로우(Row)들의 집합. - 각 로우는 로우키(Row Key)가있으며 다수의 컬럼패밀리로 구성됨 - 스키마 정의시 컬럼패
밀리(Column Family)만 정의
• • 로우키(Row Key)
• 임의의바이트열, 사전순으로 내림차순 정렬 - 빈바이트 문자열은 테이블의 시작과 끝을 의미
• • 컬럼패밀리 (Column Family)
• 컬럼들의그룹이며, 컬럼패밀리의 멤버컬럼은 같은접두사(prefix) - course:history와 course:math는
course라는 컬럼패밀리의 멤버컬럼임. history와 math를 컬럼 Qualifier라고 함
• • 셀(Cell)
• 로우키& 컬럼& 버전이 명시된 튜플 - 값은 임의의 바이트열이며 Timestamp가있음 StumbleUpon의
HBase의 선택 이유
HBASE 의 특징
• 컬럼패밀리만 사전에 정의하고 컬럼은 무한정 늘어날 수 있다.
• RowKey 는 바이너리로 저장된다.
• 저장은 Cell 단위로 저장된다.
• 하나의 Cell 이 타임스탬프로 여러 버전이 저장될 수 있다.
• RowKey 로 엑세스가 빠르다.
• Query 문을 지원하지 않는다 (Get, Put, Del 등만 지원)
ZOOKEEPER
• 여러개의 머신에서 데이터를 동기화해주는 툴
• 머신을 죽었을 때 자동으로 리더를 새로 선출해서 결정한다.
• HBase 등의 다른 시스템에서 공유 데이터를 관리하기 위해서 사용한다.
• 굉장히 좋은 툴로, 비슷한 기능이 요구될 때 별도로 사용 가능해 보인다.
FLUME
• 로그 수집기
• 로그가 발생되는 머신에 Agent 를 띄운다.
• 로그는 Source – Channel – Sink 를 거치며 저장된다.
• Agent 는 다시 다른 Agent 로 연결될 수 있다.
• 최종적으로 HBase 와 같은 DB 에 저장된다.
SKOOP
• 외부 DB 에서 하둡으로 데이터를 옮겨준다 (ETL 툴)
• JDBC 를 제공하는 모든 DB 에서 테이블 구조를 읽어서
• 데이터를 옮기는 맵리듀스 코드를 생성해주고
• 해당 코드를 실행함으로써 옮긴다.
• 주로 배치 잡으로 일정 간격으로 외부 DB 에서 데이터를 긁어오는데 사용
Apache, Maven, MySQL 도 힘들었는데…
이 모든 시스템들을 다 일일이 설치하고 설정까지 잡아주고…
3부
국내외 적용 사례
일반적인 하둡 이용 시나리오
데이터 적재
• Flume 을 이용해서 로그 데이터를 실시간으로 쌓거나
• Sqoop 을 이용해서 일정 간격으로 외부 DB 에서 데이터를 긁어서 적재한다.
• 일반적으로 적재는 HBase 를 이용한다.
데이터 분석
• Hive 를 이용해서 데이터를 샘플링하고
• 샘플링 데이터를 데이터 분석가에게 넘겨서 R 을 이용해서 데이터 분석 모
델링을 만든다.
• 분석 모델링을 가지고 맵리듀스 스크립트를 만든다 (수동)
• 배치 잡으로 일정 간격 맵리듀스 스크립트를 만들어 결과를 생성한다.
• 생성한 결과를 외부 DB 에 저장한다.
엘라스틴서치 같은 검색 엔진을 올려서 데이터를 실시간 검색
설치도 복잡하고 사용하기도 까다로운
하둡을 왜 쓰는가?
불가능을 가능케 해주는 현재로썬 유일한 도구
그나마 5년정도 대규모 사용을 해온 안정성
먹어주는 키워드 – 하둡 쓴다고 하면 오~ 좀 하는데 소리 들을 수 있음
Hadoop발표자료
Hadoop발표자료
Hadoop발표자료
Hadoop발표자료
Hadoop발표자료
Hadoop발표자료
Hadoop발표자료

Mais conteúdo relacionado

Mais procurados

Cloud DW technology trends and considerations for enterprises to apply snowflake
Cloud DW technology trends and considerations for enterprises to apply snowflakeCloud DW technology trends and considerations for enterprises to apply snowflake
Cloud DW technology trends and considerations for enterprises to apply snowflake
SANG WON PARK
 
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering)
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering) 20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering)
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering)
Tae Young Lee
 

Mais procurados (20)

성장을 좋아하는 사람이, 성장하고 싶은 사람에게
성장을 좋아하는 사람이, 성장하고 싶은 사람에게성장을 좋아하는 사람이, 성장하고 싶은 사람에게
성장을 좋아하는 사람이, 성장하고 싶은 사람에게
 
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
 
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
 
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
 
[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영
 
Data Engineering 101
Data Engineering 101Data Engineering 101
Data Engineering 101
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법
 
Cloud DW technology trends and considerations for enterprises to apply snowflake
Cloud DW technology trends and considerations for enterprises to apply snowflakeCloud DW technology trends and considerations for enterprises to apply snowflake
Cloud DW technology trends and considerations for enterprises to apply snowflake
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
 
인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례
 
Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라
 
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering)
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering) 20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering)
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering)
 
HDFS Overview
HDFS OverviewHDFS Overview
HDFS Overview
 
Apache Hudi: The Path Forward
Apache Hudi: The Path ForwardApache Hudi: The Path Forward
Apache Hudi: The Path Forward
 
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
 
10분만에 익히는 Jupyter Notebook :)
10분만에 익히는 Jupyter Notebook :)10분만에 익히는 Jupyter Notebook :)
10분만에 익히는 Jupyter Notebook :)
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
 
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro
 
Seoul (Commercial Real-Estate) Market Analysis Pipeline
Seoul (Commercial Real-Estate) Market Analysis PipelineSeoul (Commercial Real-Estate) Market Analysis Pipeline
Seoul (Commercial Real-Estate) Market Analysis Pipeline
 
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
 

Destaque

Federated HDFS
Federated HDFSFederated HDFS
Federated HDFS
huguk
 
빅데이터 솔루션 소개서(2013년 05월)
빅데이터 솔루션 소개서(2013년 05월)빅데이터 솔루션 소개서(2013년 05월)
빅데이터 솔루션 소개서(2013년 05월)
동학 노
 
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum DNA
 
알고 쓰자! HBase | Devon 2012
알고 쓰자!  HBase | Devon 2012알고 쓰자!  HBase | Devon 2012
알고 쓰자! HBase | Devon 2012
Daum DNA
 

Destaque (18)

Hadoop 기반 빅데이터 이해
Hadoop 기반 빅데이터 이해Hadoop 기반 빅데이터 이해
Hadoop 기반 빅데이터 이해
 
하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기
 
Map reduce 기본 설명
Map reduce 기본 설명Map reduce 기본 설명
Map reduce 기본 설명
 
Federated HDFS
Federated HDFSFederated HDFS
Federated HDFS
 
하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다
 
Scalding - Big Data Programming with Scala
Scalding - Big Data Programming with ScalaScalding - Big Data Programming with Scala
Scalding - Big Data Programming with Scala
 
빅데이터 솔루션 소개서(2013년 05월)
빅데이터 솔루션 소개서(2013년 05월)빅데이터 솔루션 소개서(2013년 05월)
빅데이터 솔루션 소개서(2013년 05월)
 
HBase란
HBase란HBase란
HBase란
 
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012
 
알고 쓰자! HBase | Devon 2012
알고 쓰자!  HBase | Devon 2012알고 쓰자!  HBase | Devon 2012
알고 쓰자! HBase | Devon 2012
 
about hadoop yes
about hadoop yesabout hadoop yes
about hadoop yes
 
하둡 맵리듀스 훑어보기
하둡 맵리듀스 훑어보기하둡 맵리듀스 훑어보기
하둡 맵리듀스 훑어보기
 
Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Hadoop Introduction (1.0)
Hadoop Introduction (1.0)
 
하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기
 
범용 PaaS 플랫폼 mesos(mesosphere)
범용 PaaS 플랫폼 mesos(mesosphere)범용 PaaS 플랫폼 mesos(mesosphere)
범용 PaaS 플랫폼 mesos(mesosphere)
 
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
 
Big Data Analytics with Hadoop
Big Data Analytics with HadoopBig Data Analytics with Hadoop
Big Data Analytics with Hadoop
 

Semelhante a Hadoop발표자료

Hadoop설명
Hadoop설명Hadoop설명
Hadoop설명
Ji Hoon Lee
 
NDC 2015 마비노기 듀얼 패치 시스템
NDC 2015 마비노기 듀얼 패치 시스템NDC 2015 마비노기 듀얼 패치 시스템
NDC 2015 마비노기 듀얼 패치 시스템
tcaesvk
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
devCAT Studio, NEXON
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
devCAT Studio, NEXON
 

Semelhante a Hadoop발표자료 (20)

NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
 
Hadoop engineering v1.0 for dataconference.io
Hadoop engineering v1.0 for dataconference.ioHadoop engineering v1.0 for dataconference.io
Hadoop engineering v1.0 for dataconference.io
 
Spark Day 2017@Seoul(Spark Bootcamp)
Spark Day 2017@Seoul(Spark Bootcamp)Spark Day 2017@Seoul(Spark Bootcamp)
Spark Day 2017@Seoul(Spark Bootcamp)
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
 
Redis acc 2015
Redis acc 2015Redis acc 2015
Redis acc 2015
 
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
 
Bottled water 요약 설명 20151114
Bottled water 요약 설명 20151114Bottled water 요약 설명 20151114
Bottled water 요약 설명 20151114
 
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)
 
Hadoop설명
Hadoop설명Hadoop설명
Hadoop설명
 
[스마트스터디]MongoDB 의 역습
[스마트스터디]MongoDB 의 역습[스마트스터디]MongoDB 의 역습
[스마트스터디]MongoDB 의 역습
 
토이 프로젝트를 위한 속성 RDB(MySQL) 스터디 1
토이 프로젝트를 위한 속성 RDB(MySQL) 스터디 1토이 프로젝트를 위한 속성 RDB(MySQL) 스터디 1
토이 프로젝트를 위한 속성 RDB(MySQL) 스터디 1
 
NDC 2015 마비노기 듀얼 패치 시스템
NDC 2015 마비노기 듀얼 패치 시스템NDC 2015 마비노기 듀얼 패치 시스템
NDC 2015 마비노기 듀얼 패치 시스템
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
그림으로 공부하는 오라클 구조
그림으로 공부하는 오라클 구조그림으로 공부하는 오라클 구조
그림으로 공부하는 오라클 구조
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
 
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
 
Redis From 2.8 to 4.x(unstable)
Redis From 2.8 to 4.x(unstable)Redis From 2.8 to 4.x(unstable)
Redis From 2.8 to 4.x(unstable)
 
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기) FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
 

Mais de Vong Sik Kong (8)

UPnP 발표자료
UPnP 발표자료UPnP 발표자료
UPnP 발표자료
 
Lambda 란 무엇인가
Lambda 란 무엇인가Lambda 란 무엇인가
Lambda 란 무엇인가
 
TDD in gameserver 발표자료
TDD in gameserver 발표자료TDD in gameserver 발표자료
TDD in gameserver 발표자료
 
HolubOnPatterns/chapter3_2
HolubOnPatterns/chapter3_2HolubOnPatterns/chapter3_2
HolubOnPatterns/chapter3_2
 
Chap10
Chap10Chap10
Chap10
 
게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망
 
버클리Db 를 이용한 게임 서버 제작
버클리Db 를 이용한 게임 서버 제작버클리Db 를 이용한 게임 서버 제작
버클리Db 를 이용한 게임 서버 제작
 
6장 그래프 알고리즘
6장 그래프 알고리즘6장 그래프 알고리즘
6장 그래프 알고리즘
 

Último

Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
Wonjun Hwang
 

Último (6)

클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
 
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
 
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
 
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
 

Hadoop발표자료

  • 2. 기도합시다 늑대인간을 한방에 없앨 수 있는 은총알은 없다.
  • 5. 700GB 짜리 하드가 2개가 있는데 1TB 짜리 파일을 담는 방법? 1.2TB 짜리 하드를 산다. 2. 파일을 500GB 로 나눠서 각각 담는다. (파일 헤더에 몇번째 블록인지 쓴다)
  • 6. 하드 2개 중 하나가 사망하셨다. 미러링 한다. (RAID 1 이라고 하지요)
  • 7. 서버랙이 사망하셨다. (보통 스위치나 전원이 나가죠) 랙 2개에 미러링 한다.
  • 8. IDC 가 물에 잠겼다. 답 없다. 하지만…
  • 9. 구글 신이라면 얘기가 다르지 구글은 데이터센터가 전세계에 8개 미국 6개, 유럽 2개
  • 11. 텍스트로 된 1TB 짜리 파일의 단어를 정렬한다면… 생각하기도 싫다…
  • 15. 검색 엔진이 하는 일을 보자 • 크롤링 (검색 로봇이 웹을 돌면서 웹문서를 긁어온다) • 형태소 추출 (웹문서에서 단어들을 추출한다) • 역색인 (단어 – 웹문서 형태로 색인한다)
  • 16. 하둡의 창시자 – 더그 커팅 웹 크롤러 넛치를 제작 검색엔진 루씬 제작 문제는 스토리지..
  • 17. 내가 도와줄께~ 구글에서 빅테이블 과 맵리듀스에 대한 논문 발표
  • 19. 기술이 빅데이터 열풍을 선도했다. - 실로암 못에 가서 씻으라 - - 요한복음 9장 1~7절
  • 20. 데이터를 모으기 시작 - 활용은 모르겠고 우선 모으고 보자 - 버려지던 데이터들을 모으기 시작
  • 21. Big Data, Simple Algorithms
  • 22. How?
  • 23. 하둡은 파일 시스템 • NTFS 나 FAT32 같은 거임 • 대용량 파일을 분산해서 저장하고 분산된 파일을 처리하는 기반 시스템 하둡만 가지고는 아무것도 못한다. DB? 절대 그런거 아님
  • 25. namenode, secondary namenode, datanode - 스토리지 쪽 jobtracker, tasktracker - 대용량 파일 처리 쪽
  • 26. 스토리지 측면 • 3 Copy (기본 옵션) • 같은 랙에 하나, 다른 랙에 하나 • 64mb 블록 • 파일을 64mb 블록으로 나눠서 저장 • namenode 에서 각 파일 블록을 관리한다. (속도 위해 In-momory 관리) • namenode 장애에 매우 취약하다. • namenode 메모리가 매우 중요하다. • 작은 크기의 매우 많은 파일에 매우 취약하다. • secondary namenode 는 그냥 grace 종료를 위한 용도이다.
  • 27. 기도합시다 늑대인간을 한방에 없앨 수 있는 은총알은 없다.
  • 28. 대용량 파일 처리 측면 맵 & 리듀스
  • 29.
  • 30. 기존의 데이터 처리와 달라도 너~~~무 달라 멘붕!
  • 35. 하둡 생태계 내 다른 프로젝트들을 올려서 사용
  • 37. 오픈 소스 환경에 익숙한 사람은 괜찮지만, MS 진영에서는 ‘이뭐병’ 상황
  • 39. PIG • 맵리듀스는 분석가가 만들기 어렵다. • 하지만 보통 데이터 분석은 몇가지 기능만 사용된다. • 그럼 기능을 스크립트로 제공하고 스크립트를 해석해서 맵리듀스 코드를 생성해서 돌리자 • 전용 스크립트 PigLatin 을 사용 • 스크립트를 분석해서 맵리듀스 코드 생성 • 코드를 하둡에 올리고 돌려서 결과 생성
  • 40. 확 줄었다 데이터 로드 c = load '/user/bdh/data27/cite.TXT' using PigStorage(',') as (c1:int, c2:int); /** 카운트를 위한 컬럼 그룹화 */ g = group c by c1, c2; /** group 데이터 수를 카운트 */ f = foreach g generate flatten(group), COUNT($1) as cnt; /** 결과를 확인해 볼 수 있다. */ L = limit f 10; Dump L;
  • 41. HIVE • 전용 스크립트를 분석해서 맵리듀스를 생성하는 건 같다. • 하지만 그 과정이 별도 테이블을 정의하고 SQL Query 를 통해서 분석 결과를 뽑고 결 과를 다시 테이블 형태로 저장 가능 • 멋있어 보이지만, 생각만큼 만만한 얘는 아니다.
  • 42. 테이블 생성 create external table cite ( citing int , cited int )row format delimited fields terminated by ',' lines terminated by 'n' stored as textfile; 로컬데이터로드 load data local inpath '/home/bdh/data/cite.TXT' overwrite into table cite; 카운팅 select citing, count(citing) from cite group by citing limit 100;
  • 43. HBASE • 하둡의 심장! • 이거 때문에라도 하둡을 써야 한다. • 구글의 빅테이블을 구현한 데이터베이스 (하둡 생태계에서 유일한 스토리지) • 컬럼 베이스 형태의 NoSQL DB(카산드라와 같다) • RDBMS 랑 구조와 완전히 다르다 (DB 라는 생각을 버려야 한다) • 하둡의 작은 파일에 대한 취약점을 극복
  • 44. • 컬럼 패밀리를 미리 정의하고 컬럼패밀리 내의 컬럼은 무한히 증가될 수 있는 구조 • 각 컬럼 별 타임스태프로 버전관리가 된다. • RowKey 를 통한 랜덤억세스에 특화되어 있다. • Full Scan 은 뭘해도 느리다 (복잡한 문제를 한방에 푸는 방법은 없다.) • 그래도 싱글머신에서 돌리는 것보단 훨 빠르다. HBASE
  • 45. HBASE 의 데이터 구조 • • 테이블 (Table) • 로우(Row)들의 집합. - 각 로우는 로우키(Row Key)가있으며 다수의 컬럼패밀리로 구성됨 - 스키마 정의시 컬럼패 밀리(Column Family)만 정의 • • 로우키(Row Key) • 임의의바이트열, 사전순으로 내림차순 정렬 - 빈바이트 문자열은 테이블의 시작과 끝을 의미 • • 컬럼패밀리 (Column Family) • 컬럼들의그룹이며, 컬럼패밀리의 멤버컬럼은 같은접두사(prefix) - course:history와 course:math는 course라는 컬럼패밀리의 멤버컬럼임. history와 math를 컬럼 Qualifier라고 함 • • 셀(Cell) • 로우키& 컬럼& 버전이 명시된 튜플 - 값은 임의의 바이트열이며 Timestamp가있음 StumbleUpon의 HBase의 선택 이유
  • 46.
  • 47. HBASE 의 특징 • 컬럼패밀리만 사전에 정의하고 컬럼은 무한정 늘어날 수 있다. • RowKey 는 바이너리로 저장된다. • 저장은 Cell 단위로 저장된다. • 하나의 Cell 이 타임스탬프로 여러 버전이 저장될 수 있다. • RowKey 로 엑세스가 빠르다. • Query 문을 지원하지 않는다 (Get, Put, Del 등만 지원)
  • 48. ZOOKEEPER • 여러개의 머신에서 데이터를 동기화해주는 툴 • 머신을 죽었을 때 자동으로 리더를 새로 선출해서 결정한다. • HBase 등의 다른 시스템에서 공유 데이터를 관리하기 위해서 사용한다. • 굉장히 좋은 툴로, 비슷한 기능이 요구될 때 별도로 사용 가능해 보인다.
  • 49. FLUME • 로그 수집기 • 로그가 발생되는 머신에 Agent 를 띄운다. • 로그는 Source – Channel – Sink 를 거치며 저장된다. • Agent 는 다시 다른 Agent 로 연결될 수 있다. • 최종적으로 HBase 와 같은 DB 에 저장된다.
  • 50.
  • 51. SKOOP • 외부 DB 에서 하둡으로 데이터를 옮겨준다 (ETL 툴) • JDBC 를 제공하는 모든 DB 에서 테이블 구조를 읽어서 • 데이터를 옮기는 맵리듀스 코드를 생성해주고 • 해당 코드를 실행함으로써 옮긴다. • 주로 배치 잡으로 일정 간격으로 외부 DB 에서 데이터를 긁어오는데 사용
  • 52. Apache, Maven, MySQL 도 힘들었는데…
  • 53. 이 모든 시스템들을 다 일일이 설치하고 설정까지 잡아주고…
  • 56. 데이터 적재 • Flume 을 이용해서 로그 데이터를 실시간으로 쌓거나 • Sqoop 을 이용해서 일정 간격으로 외부 DB 에서 데이터를 긁어서 적재한다. • 일반적으로 적재는 HBase 를 이용한다.
  • 57. 데이터 분석 • Hive 를 이용해서 데이터를 샘플링하고 • 샘플링 데이터를 데이터 분석가에게 넘겨서 R 을 이용해서 데이터 분석 모 델링을 만든다. • 분석 모델링을 가지고 맵리듀스 스크립트를 만든다 (수동) • 배치 잡으로 일정 간격 맵리듀스 스크립트를 만들어 결과를 생성한다. • 생성한 결과를 외부 DB 에 저장한다.
  • 58. 엘라스틴서치 같은 검색 엔진을 올려서 데이터를 실시간 검색
  • 59.
  • 60.
  • 61.
  • 62. 설치도 복잡하고 사용하기도 까다로운 하둡을 왜 쓰는가?
  • 63. 불가능을 가능케 해주는 현재로썬 유일한 도구
  • 64. 그나마 5년정도 대규모 사용을 해온 안정성
  • 65. 먹어주는 키워드 – 하둡 쓴다고 하면 오~ 좀 하는데 소리 들을 수 있음