SlideShare a Scribd company logo
공봉식
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

Stability Patterns for Microservices
Stability Patterns for MicroservicesStability Patterns for Microservices
Stability Patterns for Microservices
pflueras
 
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
SANG WON PARK
 
Trends_of_MLOps_tech_in_business
Trends_of_MLOps_tech_in_businessTrends_of_MLOps_tech_in_business
Trends_of_MLOps_tech_in_business
SANG WON PARK
 
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
Yooseok Choi
 
Internals of Presto Service
Internals of Presto ServiceInternals of Presto Service
Internals of Presto Service
Treasure Data, Inc.
 
HBase in Practice
HBase in Practice HBase in Practice
HBase in Practice
DataWorks Summit/Hadoop Summit
 
Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문
SeungHyun Eom
 
Performance Optimizations in Apache Impala
Performance Optimizations in Apache ImpalaPerformance Optimizations in Apache Impala
Performance Optimizations in Apache Impala
Cloudera, Inc.
 
Apache Kudu: Technical Deep Dive


Apache Kudu: Technical Deep Dive

Apache Kudu: Technical Deep Dive


Apache Kudu: Technical Deep Dive


Cloudera, Inc.
 
Introduction to Storm
Introduction to Storm Introduction to Storm
Introduction to Storm Chandler Huang
 
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Yongho Ha
 
Log analysis with the elk stack
Log analysis with the elk stackLog analysis with the elk stack
Log analysis with the elk stack
Vikrant Chauhan
 
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the CloudAmazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Noritaka Sekiyama
 
Druid and Hive Together : Use Cases and Best Practices
Druid and Hive Together : Use Cases and Best PracticesDruid and Hive Together : Use Cases and Best Practices
Druid and Hive Together : Use Cases and Best Practices
DataWorks Summit
 
State of the Trino Project
State of the Trino ProjectState of the Trino Project
State of the Trino Project
Martin Traverso
 
Running Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on HadoopRunning Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on Hadoop
clairvoyantllc
 
Centralized Logging System Using ELK Stack
Centralized Logging System Using ELK StackCentralized Logging System Using ELK Stack
Centralized Logging System Using ELK Stack
Rohit Sharma
 
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
Jae Young Park
 
elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리
Junyi Song
 
Apache kafka performance(latency)_benchmark_v0.3
Apache kafka performance(latency)_benchmark_v0.3Apache kafka performance(latency)_benchmark_v0.3
Apache kafka performance(latency)_benchmark_v0.3
SANG WON PARK
 

What's hot (20)

Stability Patterns for Microservices
Stability Patterns for MicroservicesStability Patterns for Microservices
Stability Patterns for Microservices
 
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
 
Trends_of_MLOps_tech_in_business
Trends_of_MLOps_tech_in_businessTrends_of_MLOps_tech_in_business
Trends_of_MLOps_tech_in_business
 
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
 
Internals of Presto Service
Internals of Presto ServiceInternals of Presto Service
Internals of Presto Service
 
HBase in Practice
HBase in Practice HBase in Practice
HBase in Practice
 
Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문
 
Performance Optimizations in Apache Impala
Performance Optimizations in Apache ImpalaPerformance Optimizations in Apache Impala
Performance Optimizations in Apache Impala
 
Apache Kudu: Technical Deep Dive


Apache Kudu: Technical Deep Dive

Apache Kudu: Technical Deep Dive


Apache Kudu: Technical Deep Dive


 
Introduction to Storm
Introduction to Storm Introduction to Storm
Introduction to Storm
 
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
 
Log analysis with the elk stack
Log analysis with the elk stackLog analysis with the elk stack
Log analysis with the elk stack
 
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the CloudAmazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
 
Druid and Hive Together : Use Cases and Best Practices
Druid and Hive Together : Use Cases and Best PracticesDruid and Hive Together : Use Cases and Best Practices
Druid and Hive Together : Use Cases and Best Practices
 
State of the Trino Project
State of the Trino ProjectState of the Trino Project
State of the Trino Project
 
Running Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on HadoopRunning Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on Hadoop
 
Centralized Logging System Using ELK Stack
Centralized Logging System Using ELK StackCentralized Logging System Using ELK Stack
Centralized Logging System Using ELK Stack
 
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
 
elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리
 
Apache kafka performance(latency)_benchmark_v0.3
Apache kafka performance(latency)_benchmark_v0.3Apache kafka performance(latency)_benchmark_v0.3
Apache kafka performance(latency)_benchmark_v0.3
 

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 Scala
Taewook Eom
 
빅데이터 솔루션 소개서(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 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 yes
Eunsil 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 Hadoop
Philippe Julio
 

Viewers also liked (18)

하둡 (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.io
daumkakao
 
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)_스파크 사용자 모임_20141106
SangHoon Lee
 
Redis acc 2015
Redis acc 2015Redis acc 2015
Redis acc 2015
DaeMyung Kang
 
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
Woong Seok Kang
 
Bottled water 요약 설명 20151114
Bottled water 요약 설명 20151114Bottled water 요약 설명 20151114
Bottled water 요약 설명 20151114
Daeyong 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 설계 리뷰, NDC2018
devCAT Studio, NEXON
 
그림으로 공부하는 오라클 구조
그림으로 공부하는 오라클 구조그림으로 공부하는 오라클 구조
그림으로 공부하는 오라클 구조
Choonghyun Yang
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
devCAT 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
 
HDFS Overview
HDFS OverviewHDFS Overview
HDFS Overview
JEONGPHIL HAN
 

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
 
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)
 
HDFS Overview
HDFS OverviewHDFS Overview
HDFS Overview
 

More from Vong Sik Kong

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