SlideShare a Scribd company logo
1 of 72
Download to read 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발표자료

More Related Content

What's hot

Massive service basic
Massive service basicMassive service basic
Massive service basicDaeMyung Kang
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop QuébecMathieu Dumoulin
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - IntroductionBlandine Larbret
 
Managing 2000 Node Cluster with Ambari
Managing 2000 Node Cluster with AmbariManaging 2000 Node Cluster with Ambari
Managing 2000 Node Cluster with AmbariDataWorks Summit
 
Hadoop hive presentation
Hadoop hive presentationHadoop hive presentation
Hadoop hive presentationArvind Kumar
 
Apache Spark overview
Apache Spark overviewApache Spark overview
Apache Spark overviewDataArt
 
HBase Application Performance Improvement
HBase Application Performance ImprovementHBase Application Performance Improvement
HBase Application Performance ImprovementBiju Nair
 
Exactly once with spark streaming
Exactly once with spark streamingExactly once with spark streaming
Exactly once with spark streamingQuentin Ambard
 
Apache sqoop with an use case
Apache sqoop with an use caseApache sqoop with an use case
Apache sqoop with an use caseDavin Abraham
 
Hadoop Architecture and HDFS
Hadoop Architecture and HDFSHadoop Architecture and HDFS
Hadoop Architecture and HDFSEdureka!
 
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들Woong Seok Kang
 
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)NTT DATA Technology & Innovation
 
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...NTT DATA Technology & Innovation
 
Building robust CDC pipeline with Apache Hudi and Debezium
Building robust CDC pipeline with Apache Hudi and DebeziumBuilding robust CDC pipeline with Apache Hudi and Debezium
Building robust CDC pipeline with Apache Hudi and DebeziumTathastu.ai
 
Introduction to Apache Cassandra
Introduction to Apache CassandraIntroduction to Apache Cassandra
Introduction to Apache CassandraRobert Stupp
 

What's hot (20)

Spark SQL
Spark SQLSpark SQL
Spark SQL
 
Massive service basic
Massive service basicMassive service basic
Massive service basic
 
Introduction à Hadoop
Introduction à HadoopIntroduction à Hadoop
Introduction à Hadoop
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop Québec
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - Introduction
 
Managing 2000 Node Cluster with Ambari
Managing 2000 Node Cluster with AmbariManaging 2000 Node Cluster with Ambari
Managing 2000 Node Cluster with Ambari
 
Hadoop hive presentation
Hadoop hive presentationHadoop hive presentation
Hadoop hive presentation
 
Apache Spark overview
Apache Spark overviewApache Spark overview
Apache Spark overview
 
HBase Application Performance Improvement
HBase Application Performance ImprovementHBase Application Performance Improvement
HBase Application Performance Improvement
 
Exactly once with spark streaming
Exactly once with spark streamingExactly once with spark streaming
Exactly once with spark streaming
 
Apache sqoop with an use case
Apache sqoop with an use caseApache sqoop with an use case
Apache sqoop with an use case
 
Hadoop Architecture and HDFS
Hadoop Architecture and HDFSHadoop Architecture and HDFS
Hadoop Architecture and HDFS
 
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
 
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
 
Hadoop Oozie
Hadoop OozieHadoop Oozie
Hadoop Oozie
 
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
 
Building robust CDC pipeline with Apache Hudi and Debezium
Building robust CDC pipeline with Apache Hudi and DebeziumBuilding robust CDC pipeline with Apache Hudi and Debezium
Building robust CDC pipeline with Apache Hudi and Debezium
 
Apache Spark Architecture
Apache Spark ArchitectureApache Spark Architecture
Apache Spark Architecture
 
Big data architectures
Big data architecturesBig data architectures
Big data architectures
 
Introduction to Apache Cassandra
Introduction to Apache CassandraIntroduction to Apache Cassandra
Introduction to Apache Cassandra
 

Viewers also liked

하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기beom kyun choi
 
Map reduce 기본 설명
Map reduce 기본 설명Map reduce 기본 설명
Map reduce 기본 설명Jinho Yoo
 
Federated HDFS
Federated HDFSFederated HDFS
Federated HDFShuguk
 
하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다민철 정민철
 
Scalding - Big Data Programming with Scala
Scalding - Big Data Programming with ScalaScalding - Big Data Programming with Scala
Scalding - Big Data Programming with ScalaTaewook Eom
 
빅데이터 솔루션 소개서(2013년 05월)
빅데이터 솔루션 소개서(2013년 05월)빅데이터 솔루션 소개서(2013년 05월)
빅데이터 솔루션 소개서(2013년 05월)동학 노
 
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum DNA
 
알고 쓰자! HBase | Devon 2012
알고 쓰자!  HBase | Devon 2012알고 쓰자!  HBase | Devon 2012
알고 쓰자! HBase | Devon 2012Daum DNA
 
about hadoop yes
about hadoop yesabout hadoop yes
about hadoop yesEunsil Yoon
 
하둡 맵리듀스 훑어보기
하둡 맵리듀스 훑어보기하둡 맵리듀스 훑어보기
하둡 맵리듀스 훑어보기beom kyun choi
 
Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Keeyong Han
 
하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기beom kyun choi
 
범용 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)Matthew (정재화)
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례NAVER LABS
 
하둡 HDFS 훑어보기
하둡 HDFS 훑어보기하둡 HDFS 훑어보기
하둡 HDFS 훑어보기beom kyun choi
 
Big Data Analytics with Hadoop
Big Data Analytics with HadoopBig Data Analytics with Hadoop
Big Data Analytics with HadoopPhilippe Julio
 

Viewers also liked (19)

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를 이용한 빌드 서버 가상화 사례
 
하둡 HDFS 훑어보기
하둡 HDFS 훑어보기하둡 HDFS 훑어보기
하둡 HDFS 훑어보기
 
Big Data Analytics with Hadoop
Big Data Analytics with HadoopBig Data Analytics with Hadoop
Big Data Analytics with Hadoop
 

Similar to Hadoop발표자료

NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기Wonha Ryu
 
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.iodaumkakao
 
Spark Day 2017@Seoul(Spark Bootcamp)
Spark Day 2017@Seoul(Spark Bootcamp)Spark Day 2017@Seoul(Spark Bootcamp)
Spark Day 2017@Seoul(Spark Bootcamp)Sang-bae Lim
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106SangHoon Lee
 
Bottled water 요약 설명 20151114
Bottled water 요약 설명 20151114Bottled water 요약 설명 20151114
Bottled water 요약 설명 20151114Daeyong Shin
 
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)khuhacker
 
Hadoop설명
Hadoop설명Hadoop설명
Hadoop설명Ji Hoon Lee
 
[스마트스터디]MongoDB 의 역습
[스마트스터디]MongoDB 의 역습[스마트스터디]MongoDB 의 역습
[스마트스터디]MongoDB 의 역습smartstudy_official
 
토이 프로젝트를 위한 속성 RDB(MySQL) 스터디 1
토이 프로젝트를 위한 속성 RDB(MySQL) 스터디 1토이 프로젝트를 위한 속성 RDB(MySQL) 스터디 1
토이 프로젝트를 위한 속성 RDB(MySQL) 스터디 1승빈이네 공작소
 
NDC 2015 마비노기 듀얼 패치 시스템
NDC 2015 마비노기 듀얼 패치 시스템NDC 2015 마비노기 듀얼 패치 시스템
NDC 2015 마비노기 듀얼 패치 시스템tcaesvk
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기Sumin Byeon
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018devCAT Studio, NEXON
 
그림으로 공부하는 오라클 구조
그림으로 공부하는 오라클 구조그림으로 공부하는 오라클 구조
그림으로 공부하는 오라클 구조Choonghyun Yang
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)Dong Chan Shin
 
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석smartstudy_official
 
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)DaeMyung Kang
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기AWSKRUG - AWS한국사용자모임
 

Similar to 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
 
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)
 
HDFS Overview
HDFS OverviewHDFS Overview
HDFS Overview
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
 

More from Vong Sik Kong

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

More from 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장 그래프 알고리즘
 

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. 먹어주는 키워드 – 하둡 쓴다고 하면 오~ 좀 하는데 소리 들을 수 있음