SlideShare a Scribd company logo
1 of 48
Download to read offline
Hadoop Overview
Cecil
(hyeonseok.c.choi@gmail.com)

13년 10월 21일 월요일
이런것들이 대체 무엇이냐?

PIG

13년 10월 21일 월요일
What is Big Data?

13년 10월 21일 월요일
데이터의 규모에 맞춘 단순한 정의
기존 데이터 관리 도구로는 감당할 수 없을 정도 규모의 데이터

13년 10월 21일 월요일
TDWI에서 정의한
BIG Data의 3대요소
• Volume
✓ 수십 TB or 수십 PB 이상
✓ 기존의 솔루션으로 처리하기 힘든 정도의 크기

• Velocity

✓ 대용량의 데이터에 대해 서비스의 요구사항에 맞게
실시간/배치 처리 가능

• Variety
✓ 정형, 반정형 뿐만 아니라 비정형 데이터를 핸들링
이 중 2가지 이상을 만족하면 Big data

이미지 출처: What is Big Data?, Datameer, <http://www.datameer.com/product/big-data.html>
13년 10월 21일 월요일
왜 빅 데이터인가?

13년 10월 21일 월요일
“일반적으로 더 많은 데이터가 더 좋은
알고리즘보다 낫다”
-아난드 라자라만

ex) 자동 번역 프로그램 IBM vs. Google

13년 10월 21일 월요일
IBM의 자동 번역 프로그램
컴퓨터가 명사, 형용사, 동사 등 단어와 어문의 문법적 구조를
인식하여 번역하는 방식

13년 10월 21일 월요일
IBM의 자동 번역 프로그램
컴퓨터가 명사, 형용사, 동사 등 단어와 어문의 문법적 구조를
인식하여 번역하는 방식

지난 40년간 개발하였으나 실패!!

13년 10월 21일 월요일
Google 번역
수억건의 문장과 번역문을 데이터베이스화하여
번역시 유사한 문장과 어구를 데이터베이스에서
추론해나가는 통계적 기법을 적용

13년 10월 21일 월요일
Google 번역
수억건의 문장과 번역문을 데이터베이스화하여
번역시 유사한 문장과 어구를 데이터베이스에서
추론해나가는 통계적 기법을 적용

전 세계 58개의 언어간의
자동 번역 프로그램 개발에 성공
13년 10월 21일 월요일
그럼 빅 데이터를 시작해 볼까?

13년 10월 21일 월요일
빅 데이터를 처리하기 위해서는...
단일 장비로는 한계가 있다

13년 10월 21일 월요일
빅 데이터를 처리하기 위해서는...
단일 장비로는 한계가 있다

분산 처리가 답임!!

13년 10월 21일 월요일
분산처리에 따른 이슈
✓ 처리할 작업을 어떻게 나눌 것인가?
✓ 데이터를 어떻게 나누어 처리할 것인가?
✓ Failure는 어떻게 다룰 것인가?

13년 10월 21일 월요일
분산 처리

분산 처리를 위한 여러가지 방법이 존재
13년 10월 21일 월요일
분산 처리

But, 너무 복잡!!
13년 10월 21일 월요일
MapReduce
분산 처리와 장애에 대한 투명성을 제공하기 위한
MapReduce라는 제한된 프로그래밍 모델을 논문으로 공개

13년 10월 21일 월요일
더그 커팅(Doug Cutting)이 구글이
논문으로 발표한 GFS(Google File System),
MapReduce를 구현한 결과물
http://hadoop.apache.org/

Hadoop = HDFS(GFS) + MapReduce

13년 10월 21일 월요일
그럼 Hadoop으로...

13년 10월 21일 월요일
대용량 파일을 안전하게 저장하고, 처리하기 위한
하둡 분산 파일 시스템
(Hadoop Distributed File System)

13년 10월 21일 월요일
HDFS의 설계의 특징
• 대용량 파일을 주로 저장
✓ FAT32: 4G, NTFS: 4~64G, EXT3: 2TB ~ 64TB

• 랜덤 접근 보다는 스트리밍 접근 방식을 선호
✓ 순차적인 파일 연산

• 고가의 장비보다는 여러대의 저가의 장비에서 실행됨
✓ 장비의 고장이 일반적인 상황으로 고려되어야 함

• 한번 쓰여진 파일은 내용이 변경되기 보다는 추가됨
✓ 제공되는 파일 연산: create/delete/append/modify(x)

13년 10월 21일 월요일
HDFS Architecture

13년 10월 21일 월요일
주요 컨포넌트
• Name-node
✓ 파일 및 블록에 대한 메타 데이터 관리
✓ HDFS에 전체에 대한 동작을 관리

• Data-node

✓ 블록 단위의 데이터가 저장되는 곳

• Client

✓ HDFS API를 이용해서 작성된 클라이언트

13년 10월 21일 월요일
블록 기반 파일 시스템
• Block
✓ 모든 파일은 블록 단위로 저장됨
✓ 하나의 파일은 여러개의 블록으로 이루어짐
✓ 기본 블록의 사이즈: 64M

• Replication

✓ 블록은 장애에 대비하여 여러개의 복제본을 가짐
✓ 기본 복제 계수: 3
✓ 각각의 파일별로 복제 계수 설정 가능

13년 10월 21일 월요일
Metadata 관리
• 모든 Metadata는 Name-node의 메모리에 저장
• Name-node는 3가지 주요 데이터를 저장
✓ 파일에 대한 네임스페이스 정보
✓ 파일과 블록의 맵핑 정보
✓ 각 블록에 대한 데이터 노드 위치 정보

• 파일에 대한 네임스페이스 정보와 파일과 블록의 맵핑 정보는
Name-node에서 영구적으로 관리
✓ 파일 시스템에 대한 이미지 및 변경 로그(FSImage, Edit log)

• 각 블록에 대한 위치 정보는 Name-node에서 임시적으로 관리
✓ 데이터 노드 시작시 Name-node로 전송, Name-node는 해당 정보를 메모리에 유지

13년 10월 21일 월요일
FSImage & EditLog
• Name-node는 FSImage와 EditLog를 사용해서 파일 시스템 이미지를 구성
✓ EditLog가 클수록 파일 시스템 갱신시 시간이 오래 걸림.
✓ 이러한 이슈를 해결하기 위하여, 보조 네임노드는 주기적으로 파일 시스템 이미지를 갱신
Secondary Name-node

Name-node
Memory FileSystem

Storage
Edit Log

/

저장
/user

A

B

/etc

C

/var

D

E

병합
Edit Log

1. Add File
2. Delete File
3. Append File
:

다운
로드

:

+

FS
Image

FS
Image

전송

13년 10월 21일 월요일

New
FS Image
FSDataOutputStream

DFSOutput

Flow - Write Operation

Stream

DFSOutputStream

Data

Streamer

DataStreamer
• 클라이언트는 Name-node로 해당 파일 생성을 요청

• Name-node는 해당 파일 블록을 저장할 Data-node의 목록을 전달
• 클라이언트는 첫번째 Data-node에게 데이터를 전송
✓ 데이터 복제는 Data-node간의 파이프 라인을 통해 이루어짐

13년 10월 21일 월요일
Flow - Read Operation
• 클라이언트는 Name-node로 해당 파일의 블록 위치를 요청
• Name-node는 복제 블록이 저장된 곳을 확인 후, 클라이언트에서 가까운 순서로
정렬해서 반환
• 클라이언트는 Data-node에게 블록 데이터를 요청
✓ Best case: 클라이언트와 해당 블록이 저장된 Data-node가 같은 장비일 경우

13년 10월 21일 월요일
일반적인 하드웨어로 구성된 클러스터 상에서
많은 양의 데이터를 병렬로 처리하는 어플리케이션을
쉽게 작성할 수 있도록 하는 소프트웨어 프레임워크

13년 10월 21일 월요일
Map-Reduce Overview
Map-Reduce는 입력 데이터를 Split으로 분할하여 각각의 노드에서 병렬적으로 처리

13년 10월 21일 월요일
Map & Reduce
read a book
write a book
<1, read a book>
<2, write a book>

키,값

Map-Reduce는 Map과 Reduce라는

Map

Map

2개의 메서드로 구성

<read, 1>
<a, 1>
<book, 1>
<write, 1>
<a, 1>
<book, 1>

정렬과
병합

<read, (1)>
<a, (1,1)>
<book, (1,1)>
<write, (1)>

Reduce
<read, 1>
< a, 2>
<book, 2>
<write, 1>

13년 10월 21일 월요일

Map: (k1, v1) -> list(k2, v2)
Reduce: (k2, list(v2)) -> list(k3, v3)
ex) 단어 수 세기

Reduce

: 직접 소스 개발
: 프레임워크에서 동작
Example
WordCount-Mapper
Map: (k1, v1) -> list(k2, v2)
public static class TokenizerMapper
extends Mapper<Object, Text, Text, IntWritable>{
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();

}

13년 10월 21일 월요일

public void map(Object key, Text value, Context context
) throws IOException, InterruptedException {
StringTokenizer itr = new StringTokenizer(value.toString());
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());
context.write(word, one);
}
}
Example
WordCount-Reducer
Reduce: (k2, list(v2)) -> list(k3, v3)
public static class IntSumReducer
extends Reducer<Text,IntWritable,Text,IntWritable> {
private IntWritable result = new IntWritable();

}

13년 10월 21일 월요일

public void reduce(Text key, Iterable<IntWritable> values,
Context context
) throws IOException, InterruptedException {
int sum = 0;
for (IntWritable val : values) {
sum += val.get();
}
result.set(sum);
context.write(key, result);
}
Example
WordCount-Driver
main함수가 있는 구동 Class
public class WordCount {
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
String[] otherArgs = new GenericOptionsParser(conf, args)
.getRemainingArgs();
if (otherArgs.length != 2) {
System.err.println("Usage: wordcount <in> <out>");
System.exit(2);
}
Job job = new Job(conf, "word count");
job.setJarByClass(WordCount.class);
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumReducer.class);
job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}
13년 10월 21일 월요일
Map-Reduce Architecture

13년 10월 21일 월요일
Map-Reduce-I
• JobClient
✓ 공통 파일을 분산 파일 시스템에 복사
✓ JobTracker에 Map-Reduce 잡을 제출

• JobTracker

✓ 제출된 맵 리듀스 잡을 스케쥴링
✓ 태스크 트래커에 태스크(Map/Reduce)를 할당

• TaskTracker

✓ 할당된 태스크를 수행
✓ 수행되는 태스크는 별도의 JVM에서 실행됨
✓ 일반적으로 HDFS의 Data-node와 같은 곳에서
실행됨. - 데이터 지역성 극대화

13년 10월 21일 월요일

JobClient submitJob()
Map-Reduce-II(YARN)
• Job
✓ 공통 파일을 분산 파일 시스템에 복사
✓ JobTracker에 Map-Reduce 잡을 제출

• Resource Manager

✓ 클러스터 상의 컴퓨터 리소스를 할당

• Application Master

✓ 맵 리듀스 잡을 수행
✓ Node Manager에게 태스크 수행을 요청

• Node Manager

✓ 컨테이너의 리소스를 관리
✓ 리소스 허용 범위 내의 태스크를 실행

13년 10월 21일 월요일
Map-Reduce-II(YARN)
• Job
✓ 공통 파일을 분산 파일 시스템에 복사
✓ JobTracker에 Map-Reduce 잡을 제출

• Resource Manager

✓ 클러스터 상의 컴퓨터 리소스를 할당

• Application Master

✓ 맵 리듀스 잡을 수행
✓ Node Manager에게 태스크 수행을 요청

• Node Manager

✓ 컨테이너의 리소스를 관리
✓ 리소스 허용 범위 내의 태스크를 실행
확장성 문제를 해결하기 위해
잡트래커의 책임을 분리
13년 10월 21일 월요일
이전 버전과의 차이 (2/2)
Map-Reduce I vs YARN

출처: Hortonworks, http://hortonworks.com/hadoop/yarn

13년 10월 21일 월요일
Hadoop Echo System

13년 10월 21일 월요일
Apache HBase
하둡 기반의 NoSQL 시스템(컬럼기반), Google Big Table 과 유사
- MasterServer와 RegionServer로 구성됨.
- HA를 위해 Apache Zookeer 사용

13년 10월 21일 월요일
Apache PIG
• 대규모의 데이터를 쉽게 분석할 수 있도록 스크립트
수준의 언어를 제공하는 분석 플랫폼
✓ Hadoop 상에서 구동시 스크립트가 내부적으로 맵리듀스
잡으로 수행 됨

<WordCount Example>
A = load './input.txt';
B = foreach A generate flatten(TOKENIZE((chararray)$0)) as word;
C = group B by word;
D = foreach C generate COUNT(B), group;
store D into './wordcount';

13년 10월 21일 월요일
Apache Hive
Hive clients
하둡에 저장된 데이터를 쉽게 처리할 수 있도록 하는 데이터 웨어하우스 솔루션
hive --service hiveserver
- SQL 호환의 스크립트 구조를 제공
- 메타 정보를 저장하기 위해 별도의 메타 스토어가 필요

13년 10월 21일 월요일
Apache Sqoop
하둡과 RDBMS 사이에서 데이터를 전송하기 위한 Tool

Import

Export

이미지 출처: siliconweek, <http://www.siliconweek.es/noticias/apache-sqoop-se-convierte-en-proyecto-prioritario-para-big-data-21558>
13년 10월 21일 월요일
Apache Flume
• 분석을 위해 많은 양의 로그 데이터를 효과적으
로 수집하여 HDFS에 저장하는 시스템

• 노드
✓ Logical: 데이터의 흐름을 담당
✓ Physical: 단일 자바 프로세스, 즉 단일 JVM 인스턴스
Logical 노드를 담는 컨테이너

• 컨포넌트
✓ Master: Logical, Physical 노드를 제어
✓ Agent: 로그를 수집하여 Collector에 전송하는 역할
✓ Collector: 로그를 수집하여 더 큰 스트림으로 묶어 HDFS에
저장

출처: cloudera, http://archive.cloudera.com/cdh/3/flume-0.9.0+1/UserGuide.html
13년 10월 21일 월요일
Apache Zookeeper
분산 환경에서 필요한 여러가지 기능을 구현할수 있도록 하는 분산 코디네이터
- Google Chubby의 구현제
- 세션 기반의 파일 시스템과 유사한 데이터 저장 구조를 제공
- 분산 락, 캐시, 맴버쉽 관리에 용이
- HA를 위해 과반수 알고리즘을 사용

13년 10월 21일 월요일
References
• 정재화. 시작하세요! 하둡 프로그래밍. 경기도 파주: 위키북스, 2012
• 위키피디아. 빅데이터. http://ko.wikipedia.org/wiki/%EB%B9%85_%EB%8D%B0%EC%9D
%B4%ED%84%B0 .
• Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung. The Google le system. In 19th
Symposium on Operating Systems Principles, pages 2943, Lake George, New York, 2003.
• 아파치. 하둡. http://hadoop.apache.org/
• Hadoop YARN “A next-generation framework for Hadoop data processing”, Hortonworks,
http://hortonworks.com/hadoop/yarn
• Flume User Guide, Cloudera, http://archive.cloudera.com/cdh/3/flume-0.9.0+1/
UserGuide.html

13년 10월 21일 월요일

More Related Content

What's hot

하둡 타입과 포맷
하둡 타입과 포맷하둡 타입과 포맷
하둡 타입과 포맷진호 박
 
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 (정재화)
 
하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다민철 정민철
 
하둡 설치(의사분산모드)
하둡 설치(의사분산모드)하둡 설치(의사분산모드)
하둡 설치(의사분산모드)Kwangyoung Jeon
 
하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기beom kyun choi
 
20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제Tae Young Lee
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Gruter
 
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for HadoopSeungYong Baek
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료Teddy Choi
 
An introduction to hadoop
An introduction to hadoopAn introduction to hadoop
An introduction to hadoopMinJae Kang
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoMatthew (정재화)
 
하둡완벽가이드 Ch6. 맵리듀스 작동 방법
하둡완벽가이드 Ch6. 맵리듀스 작동 방법하둡완벽가이드 Ch6. 맵리듀스 작동 방법
하둡완벽가이드 Ch6. 맵리듀스 작동 방법HyeonSeok Choi
 
SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표Sinhyub Kim
 
about hadoop yes
about hadoop yesabout hadoop yes
about hadoop yesEunsil Yoon
 

What's hot (20)

HDFS Overview
HDFS OverviewHDFS Overview
HDFS Overview
 
하둡 타입과 포맷
하둡 타입과 포맷하둡 타입과 포맷
하둡 타입과 포맷
 
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)
 
하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다
 
Hive begins
Hive beginsHive begins
Hive begins
 
하둡 설치(의사분산모드)
하둡 설치(의사분산모드)하둡 설치(의사분산모드)
하둡 설치(의사분산모드)
 
하둡관리
하둡관리하둡관리
하둡관리
 
하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기
 
20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013
 
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료
 
An introduction to hadoop
An introduction to hadoopAn introduction to hadoop
An introduction to hadoop
 
hadoop ch1
hadoop ch1hadoop ch1
hadoop ch1
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 
하둡완벽가이드 Ch6. 맵리듀스 작동 방법
하둡완벽가이드 Ch6. 맵리듀스 작동 방법하둡완벽가이드 Ch6. 맵리듀스 작동 방법
하둡완벽가이드 Ch6. 맵리듀스 작동 방법
 
SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표
 
Hdfs
HdfsHdfs
Hdfs
 
about hadoop yes
about hadoop yesabout hadoop yes
about hadoop yes
 
HBase 훑어보기
HBase 훑어보기HBase 훑어보기
HBase 훑어보기
 

Viewers also liked

Logstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaLogstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaHyeonSeok Choi
 
Anomy chat platform
Anomy chat platformAnomy chat platform
Anomy chat platform동철 박
 
Domain driven design ch9
Domain driven design ch9Domain driven design ch9
Domain driven design ch9HyeonSeok Choi
 
Domain driven design ch1
Domain driven design ch1Domain driven design ch1
Domain driven design ch1HyeonSeok Choi
 
MiningTheSocialWeb.Ch2.Microformat
MiningTheSocialWeb.Ch2.MicroformatMiningTheSocialWeb.Ch2.Microformat
MiningTheSocialWeb.Ch2.MicroformatHyeonSeok Choi
 
자바 병렬 프로그래밍 ch9
자바 병렬 프로그래밍 ch9자바 병렬 프로그래밍 ch9
자바 병렬 프로그래밍 ch9HyeonSeok Choi
 
서버인프라를지탱하는기술3_2_3
서버인프라를지탱하는기술3_2_3서버인프라를지탱하는기술3_2_3
서버인프라를지탱하는기술3_2_3HyeonSeok Choi
 
CODE Ch.21 버스에 올라 탑시다
CODE Ch.21 버스에 올라 탑시다CODE Ch.21 버스에 올라 탑시다
CODE Ch.21 버스에 올라 탑시다HyeonSeok Choi
 
Refactoring 메소드 호출의 단순화
Refactoring 메소드 호출의 단순화Refactoring 메소드 호출의 단순화
Refactoring 메소드 호출의 단순화HyeonSeok Choi
 
프로그래머로 사는 법 Ch14
프로그래머로 사는 법 Ch14프로그래머로 사는 법 Ch14
프로그래머로 사는 법 Ch14HyeonSeok Choi
 
Mining the social web 6
Mining the social web 6Mining the social web 6
Mining the social web 6HyeonSeok Choi
 
SICP_2.5 일반화된 연산시스템
SICP_2.5 일반화된 연산시스템SICP_2.5 일반화된 연산시스템
SICP_2.5 일반화된 연산시스템HyeonSeok Choi
 
Code 11 논리 게이트
Code 11 논리 게이트Code 11 논리 게이트
Code 11 논리 게이트HyeonSeok Choi
 
Erlang을 이용한 swap 서버
Erlang을 이용한 swap 서버Erlang을 이용한 swap 서버
Erlang을 이용한 swap 서버Jaejin Yun
 
자바 병렬 프로그래밍 1&2
자바 병렬 프로그래밍 1&2자바 병렬 프로그래밍 1&2
자바 병렬 프로그래밍 1&2HyeonSeok Choi
 
컴퓨터 프로그램 구조와 해석 3.5
컴퓨터 프로그램 구조와 해석 3.5컴퓨터 프로그램 구조와 해석 3.5
컴퓨터 프로그램 구조와 해석 3.5HyeonSeok Choi
 
서버인프라를지탱하는기술2_1-2
서버인프라를지탱하는기술2_1-2서버인프라를지탱하는기술2_1-2
서버인프라를지탱하는기술2_1-2HyeonSeok Choi
 

Viewers also liked (20)

Erlang
ErlangErlang
Erlang
 
Logstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaLogstash, ElasticSearch, Kibana
Logstash, ElasticSearch, Kibana
 
Anomy chat platform
Anomy chat platformAnomy chat platform
Anomy chat platform
 
Domain driven design ch9
Domain driven design ch9Domain driven design ch9
Domain driven design ch9
 
Domain driven design ch1
Domain driven design ch1Domain driven design ch1
Domain driven design ch1
 
MiningTheSocialWeb.Ch2.Microformat
MiningTheSocialWeb.Ch2.MicroformatMiningTheSocialWeb.Ch2.Microformat
MiningTheSocialWeb.Ch2.Microformat
 
자바 병렬 프로그래밍 ch9
자바 병렬 프로그래밍 ch9자바 병렬 프로그래밍 ch9
자바 병렬 프로그래밍 ch9
 
서버인프라를지탱하는기술3_2_3
서버인프라를지탱하는기술3_2_3서버인프라를지탱하는기술3_2_3
서버인프라를지탱하는기술3_2_3
 
CODE Ch.21 버스에 올라 탑시다
CODE Ch.21 버스에 올라 탑시다CODE Ch.21 버스에 올라 탑시다
CODE Ch.21 버스에 올라 탑시다
 
C++ api design 품질
C++ api design 품질C++ api design 품질
C++ api design 품질
 
Refactoring 메소드 호출의 단순화
Refactoring 메소드 호출의 단순화Refactoring 메소드 호출의 단순화
Refactoring 메소드 호출의 단순화
 
프로그래머로 사는 법 Ch14
프로그래머로 사는 법 Ch14프로그래머로 사는 법 Ch14
프로그래머로 사는 법 Ch14
 
Code1_2
Code1_2Code1_2
Code1_2
 
Mining the social web 6
Mining the social web 6Mining the social web 6
Mining the social web 6
 
SICP_2.5 일반화된 연산시스템
SICP_2.5 일반화된 연산시스템SICP_2.5 일반화된 연산시스템
SICP_2.5 일반화된 연산시스템
 
Code 11 논리 게이트
Code 11 논리 게이트Code 11 논리 게이트
Code 11 논리 게이트
 
Erlang을 이용한 swap 서버
Erlang을 이용한 swap 서버Erlang을 이용한 swap 서버
Erlang을 이용한 swap 서버
 
자바 병렬 프로그래밍 1&2
자바 병렬 프로그래밍 1&2자바 병렬 프로그래밍 1&2
자바 병렬 프로그래밍 1&2
 
컴퓨터 프로그램 구조와 해석 3.5
컴퓨터 프로그램 구조와 해석 3.5컴퓨터 프로그램 구조와 해석 3.5
컴퓨터 프로그램 구조와 해석 3.5
 
서버인프라를지탱하는기술2_1-2
서버인프라를지탱하는기술2_1-2서버인프라를지탱하는기술2_1-2
서버인프라를지탱하는기술2_1-2
 

Similar to Hadoop overview

Hadoop Overview 1
Hadoop Overview 1Hadoop Overview 1
Hadoop Overview 1Kay Kim
 
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)JiandSon
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoGruter
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례Gruter
 
Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Gruter
 
Hadoop distributed file system rev3
Hadoop distributed file system rev3Hadoop distributed file system rev3
Hadoop distributed file system rev3Sung-jae Park
 
[경북] I'mcloud information
[경북] I'mcloud information[경북] I'mcloud information
[경북] I'mcloud informationstartupkorea
 
Cloud Computing v1.0
Cloud Computing v1.0Cloud Computing v1.0
Cloud Computing v1.0Steve Min
 
Object storage의 이해와 활용
Object storage의 이해와 활용Object storage의 이해와 활용
Object storage의 이해와 활용Seoro Kim
 
Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Hyoungjun Kim
 
Big data application architecture 요약2
Big data application architecture 요약2Big data application architecture 요약2
Big data application architecture 요약2Seong-Bok Lee
 
[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준NAVER D2
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea CloudJude Kim
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)NAVER D2
 
AWS 활용한 Data Lake 구성하기
AWS 활용한 Data Lake 구성하기AWS 활용한 Data Lake 구성하기
AWS 활용한 Data Lake 구성하기Nak Joo Kwon
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개Gruter
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처Sunggon Song
 
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017Amazon Web Services Korea
 
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)Daum’s Business Analytics Use-cases based on Bigdata technology (2012)
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)Channy Yun
 
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDBNAVER D2
 

Similar to Hadoop overview (20)

Hadoop Overview 1
Hadoop Overview 1Hadoop Overview 1
Hadoop Overview 1
 
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
 
Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)
 
Hadoop distributed file system rev3
Hadoop distributed file system rev3Hadoop distributed file system rev3
Hadoop distributed file system rev3
 
[경북] I'mcloud information
[경북] I'mcloud information[경북] I'mcloud information
[경북] I'mcloud information
 
Cloud Computing v1.0
Cloud Computing v1.0Cloud Computing v1.0
Cloud Computing v1.0
 
Object storage의 이해와 활용
Object storage의 이해와 활용Object storage의 이해와 활용
Object storage의 이해와 활용
 
Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218
 
Big data application architecture 요약2
Big data application architecture 요약2Big data application architecture 요약2
Big data application architecture 요약2
 
[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)
 
AWS 활용한 Data Lake 구성하기
AWS 활용한 Data Lake 구성하기AWS 활용한 Data Lake 구성하기
AWS 활용한 Data Lake 구성하기
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처
 
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
 
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)Daum’s Business Analytics Use-cases based on Bigdata technology (2012)
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)
 
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB
 

More from HyeonSeok Choi

밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05HyeonSeok Choi
 
밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2HyeonSeok Choi
 
프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2HyeonSeok Choi
 
알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04HyeonSeok Choi
 
딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04HyeonSeok Choi
 
밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05HyeonSeok Choi
 
7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성HyeonSeok Choi
 
7가지 동시성 모델 4장
7가지 동시성 모델 4장7가지 동시성 모델 4장
7가지 동시성 모델 4장HyeonSeok Choi
 
실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8HyeonSeok Choi
 
실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7HyeonSeok Choi
 
실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6HyeonSeok Choi
 
실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1HyeonSeok Choi
 
HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HyeonSeok Choi
 
HTTP 완벽가이드 16장
HTTP 완벽가이드 16장HTTP 완벽가이드 16장
HTTP 완벽가이드 16장HyeonSeok Choi
 
HTTP 완벽가이드 6장.
HTTP 완벽가이드 6장.HTTP 완벽가이드 6장.
HTTP 완벽가이드 6장.HyeonSeok Choi
 

More from HyeonSeok Choi (20)

밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05
 
밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2
 
프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2
 
알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04
 
딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04
 
밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05
 
함수적 사고 2장
함수적 사고 2장함수적 사고 2장
함수적 사고 2장
 
7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성
 
7가지 동시성 모델 4장
7가지 동시성 모델 4장7가지 동시성 모델 4장
7가지 동시성 모델 4장
 
Bounded Context
Bounded ContextBounded Context
Bounded Context
 
DDD Repository
DDD RepositoryDDD Repository
DDD Repository
 
DDD Start Ch#3
DDD Start Ch#3DDD Start Ch#3
DDD Start Ch#3
 
실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8
 
실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7
 
실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6
 
실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1
 
HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HTTP 완벽가이드 21장
HTTP 완벽가이드 21장
 
HTTP 완벽가이드 16장
HTTP 완벽가이드 16장HTTP 완벽가이드 16장
HTTP 완벽가이드 16장
 
HTTPS
HTTPSHTTPS
HTTPS
 
HTTP 완벽가이드 6장.
HTTP 완벽가이드 6장.HTTP 완벽가이드 6장.
HTTP 완벽가이드 6장.
 

Hadoop overview

  • 3. What is Big Data? 13년 10월 21일 월요일
  • 4. 데이터의 규모에 맞춘 단순한 정의 기존 데이터 관리 도구로는 감당할 수 없을 정도 규모의 데이터 13년 10월 21일 월요일
  • 5. TDWI에서 정의한 BIG Data의 3대요소 • Volume ✓ 수십 TB or 수십 PB 이상 ✓ 기존의 솔루션으로 처리하기 힘든 정도의 크기 • Velocity ✓ 대용량의 데이터에 대해 서비스의 요구사항에 맞게 실시간/배치 처리 가능 • Variety ✓ 정형, 반정형 뿐만 아니라 비정형 데이터를 핸들링 이 중 2가지 이상을 만족하면 Big data 이미지 출처: What is Big Data?, Datameer, <http://www.datameer.com/product/big-data.html> 13년 10월 21일 월요일
  • 6. 왜 빅 데이터인가? 13년 10월 21일 월요일
  • 7. “일반적으로 더 많은 데이터가 더 좋은 알고리즘보다 낫다” -아난드 라자라만 ex) 자동 번역 프로그램 IBM vs. Google 13년 10월 21일 월요일
  • 8. IBM의 자동 번역 프로그램 컴퓨터가 명사, 형용사, 동사 등 단어와 어문의 문법적 구조를 인식하여 번역하는 방식 13년 10월 21일 월요일
  • 9. IBM의 자동 번역 프로그램 컴퓨터가 명사, 형용사, 동사 등 단어와 어문의 문법적 구조를 인식하여 번역하는 방식 지난 40년간 개발하였으나 실패!! 13년 10월 21일 월요일
  • 10. Google 번역 수억건의 문장과 번역문을 데이터베이스화하여 번역시 유사한 문장과 어구를 데이터베이스에서 추론해나가는 통계적 기법을 적용 13년 10월 21일 월요일
  • 11. Google 번역 수억건의 문장과 번역문을 데이터베이스화하여 번역시 유사한 문장과 어구를 데이터베이스에서 추론해나가는 통계적 기법을 적용 전 세계 58개의 언어간의 자동 번역 프로그램 개발에 성공 13년 10월 21일 월요일
  • 12. 그럼 빅 데이터를 시작해 볼까? 13년 10월 21일 월요일
  • 13. 빅 데이터를 처리하기 위해서는... 단일 장비로는 한계가 있다 13년 10월 21일 월요일
  • 14. 빅 데이터를 처리하기 위해서는... 단일 장비로는 한계가 있다 분산 처리가 답임!! 13년 10월 21일 월요일
  • 15. 분산처리에 따른 이슈 ✓ 처리할 작업을 어떻게 나눌 것인가? ✓ 데이터를 어떻게 나누어 처리할 것인가? ✓ Failure는 어떻게 다룰 것인가? 13년 10월 21일 월요일
  • 16. 분산 처리 분산 처리를 위한 여러가지 방법이 존재 13년 10월 21일 월요일
  • 17. 분산 처리 But, 너무 복잡!! 13년 10월 21일 월요일
  • 18. MapReduce 분산 처리와 장애에 대한 투명성을 제공하기 위한 MapReduce라는 제한된 프로그래밍 모델을 논문으로 공개 13년 10월 21일 월요일
  • 19. 더그 커팅(Doug Cutting)이 구글이 논문으로 발표한 GFS(Google File System), MapReduce를 구현한 결과물 http://hadoop.apache.org/ Hadoop = HDFS(GFS) + MapReduce 13년 10월 21일 월요일
  • 21. 대용량 파일을 안전하게 저장하고, 처리하기 위한 하둡 분산 파일 시스템 (Hadoop Distributed File System) 13년 10월 21일 월요일
  • 22. HDFS의 설계의 특징 • 대용량 파일을 주로 저장 ✓ FAT32: 4G, NTFS: 4~64G, EXT3: 2TB ~ 64TB • 랜덤 접근 보다는 스트리밍 접근 방식을 선호 ✓ 순차적인 파일 연산 • 고가의 장비보다는 여러대의 저가의 장비에서 실행됨 ✓ 장비의 고장이 일반적인 상황으로 고려되어야 함 • 한번 쓰여진 파일은 내용이 변경되기 보다는 추가됨 ✓ 제공되는 파일 연산: create/delete/append/modify(x) 13년 10월 21일 월요일
  • 23. HDFS Architecture 13년 10월 21일 월요일
  • 24. 주요 컨포넌트 • Name-node ✓ 파일 및 블록에 대한 메타 데이터 관리 ✓ HDFS에 전체에 대한 동작을 관리 • Data-node ✓ 블록 단위의 데이터가 저장되는 곳 • Client ✓ HDFS API를 이용해서 작성된 클라이언트 13년 10월 21일 월요일
  • 25. 블록 기반 파일 시스템 • Block ✓ 모든 파일은 블록 단위로 저장됨 ✓ 하나의 파일은 여러개의 블록으로 이루어짐 ✓ 기본 블록의 사이즈: 64M • Replication ✓ 블록은 장애에 대비하여 여러개의 복제본을 가짐 ✓ 기본 복제 계수: 3 ✓ 각각의 파일별로 복제 계수 설정 가능 13년 10월 21일 월요일
  • 26. Metadata 관리 • 모든 Metadata는 Name-node의 메모리에 저장 • Name-node는 3가지 주요 데이터를 저장 ✓ 파일에 대한 네임스페이스 정보 ✓ 파일과 블록의 맵핑 정보 ✓ 각 블록에 대한 데이터 노드 위치 정보 • 파일에 대한 네임스페이스 정보와 파일과 블록의 맵핑 정보는 Name-node에서 영구적으로 관리 ✓ 파일 시스템에 대한 이미지 및 변경 로그(FSImage, Edit log) • 각 블록에 대한 위치 정보는 Name-node에서 임시적으로 관리 ✓ 데이터 노드 시작시 Name-node로 전송, Name-node는 해당 정보를 메모리에 유지 13년 10월 21일 월요일
  • 27. FSImage & EditLog • Name-node는 FSImage와 EditLog를 사용해서 파일 시스템 이미지를 구성 ✓ EditLog가 클수록 파일 시스템 갱신시 시간이 오래 걸림. ✓ 이러한 이슈를 해결하기 위하여, 보조 네임노드는 주기적으로 파일 시스템 이미지를 갱신 Secondary Name-node Name-node Memory FileSystem Storage Edit Log / 저장 /user A B /etc C /var D E 병합 Edit Log 1. Add File 2. Delete File 3. Append File : 다운 로드 : + FS Image FS Image 전송 13년 10월 21일 월요일 New FS Image
  • 28. FSDataOutputStream DFSOutput Flow - Write Operation Stream DFSOutputStream Data Streamer DataStreamer • 클라이언트는 Name-node로 해당 파일 생성을 요청 • Name-node는 해당 파일 블록을 저장할 Data-node의 목록을 전달 • 클라이언트는 첫번째 Data-node에게 데이터를 전송 ✓ 데이터 복제는 Data-node간의 파이프 라인을 통해 이루어짐 13년 10월 21일 월요일
  • 29. Flow - Read Operation • 클라이언트는 Name-node로 해당 파일의 블록 위치를 요청 • Name-node는 복제 블록이 저장된 곳을 확인 후, 클라이언트에서 가까운 순서로 정렬해서 반환 • 클라이언트는 Data-node에게 블록 데이터를 요청 ✓ Best case: 클라이언트와 해당 블록이 저장된 Data-node가 같은 장비일 경우 13년 10월 21일 월요일
  • 30. 일반적인 하드웨어로 구성된 클러스터 상에서 많은 양의 데이터를 병렬로 처리하는 어플리케이션을 쉽게 작성할 수 있도록 하는 소프트웨어 프레임워크 13년 10월 21일 월요일
  • 31. Map-Reduce Overview Map-Reduce는 입력 데이터를 Split으로 분할하여 각각의 노드에서 병렬적으로 처리 13년 10월 21일 월요일
  • 32. Map & Reduce read a book write a book <1, read a book> <2, write a book> 키,값 Map-Reduce는 Map과 Reduce라는 Map Map 2개의 메서드로 구성 <read, 1> <a, 1> <book, 1> <write, 1> <a, 1> <book, 1> 정렬과 병합 <read, (1)> <a, (1,1)> <book, (1,1)> <write, (1)> Reduce <read, 1> < a, 2> <book, 2> <write, 1> 13년 10월 21일 월요일 Map: (k1, v1) -> list(k2, v2) Reduce: (k2, list(v2)) -> list(k3, v3) ex) 단어 수 세기 Reduce : 직접 소스 개발 : 프레임워크에서 동작
  • 33. Example WordCount-Mapper Map: (k1, v1) -> list(k2, v2) public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable>{ private final static IntWritable one = new IntWritable(1); private Text word = new Text(); } 13년 10월 21일 월요일 public void map(Object key, Text value, Context context ) throws IOException, InterruptedException { StringTokenizer itr = new StringTokenizer(value.toString()); while (itr.hasMoreTokens()) { word.set(itr.nextToken()); context.write(word, one); } }
  • 34. Example WordCount-Reducer Reduce: (k2, list(v2)) -> list(k3, v3) public static class IntSumReducer extends Reducer<Text,IntWritable,Text,IntWritable> { private IntWritable result = new IntWritable(); } 13년 10월 21일 월요일 public void reduce(Text key, Iterable<IntWritable> values, Context context ) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } result.set(sum); context.write(key, result); }
  • 35. Example WordCount-Driver main함수가 있는 구동 Class public class WordCount { public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); String[] otherArgs = new GenericOptionsParser(conf, args) .getRemainingArgs(); if (otherArgs.length != 2) { System.err.println("Usage: wordcount <in> <out>"); System.exit(2); } Job job = new Job(conf, "word count"); job.setJarByClass(WordCount.class); job.setMapperClass(TokenizerMapper.class); job.setCombinerClass(IntSumReducer.class); job.setReducerClass(IntSumReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.addInputPath(job, new Path(otherArgs[0])); FileOutputFormat.setOutputPath(job, new Path(otherArgs[1])); System.exit(job.waitForCompletion(true) ? 0 : 1); } } 13년 10월 21일 월요일
  • 37. Map-Reduce-I • JobClient ✓ 공통 파일을 분산 파일 시스템에 복사 ✓ JobTracker에 Map-Reduce 잡을 제출 • JobTracker ✓ 제출된 맵 리듀스 잡을 스케쥴링 ✓ 태스크 트래커에 태스크(Map/Reduce)를 할당 • TaskTracker ✓ 할당된 태스크를 수행 ✓ 수행되는 태스크는 별도의 JVM에서 실행됨 ✓ 일반적으로 HDFS의 Data-node와 같은 곳에서 실행됨. - 데이터 지역성 극대화 13년 10월 21일 월요일 JobClient submitJob()
  • 38. Map-Reduce-II(YARN) • Job ✓ 공통 파일을 분산 파일 시스템에 복사 ✓ JobTracker에 Map-Reduce 잡을 제출 • Resource Manager ✓ 클러스터 상의 컴퓨터 리소스를 할당 • Application Master ✓ 맵 리듀스 잡을 수행 ✓ Node Manager에게 태스크 수행을 요청 • Node Manager ✓ 컨테이너의 리소스를 관리 ✓ 리소스 허용 범위 내의 태스크를 실행 13년 10월 21일 월요일
  • 39. Map-Reduce-II(YARN) • Job ✓ 공통 파일을 분산 파일 시스템에 복사 ✓ JobTracker에 Map-Reduce 잡을 제출 • Resource Manager ✓ 클러스터 상의 컴퓨터 리소스를 할당 • Application Master ✓ 맵 리듀스 잡을 수행 ✓ Node Manager에게 태스크 수행을 요청 • Node Manager ✓ 컨테이너의 리소스를 관리 ✓ 리소스 허용 범위 내의 태스크를 실행 확장성 문제를 해결하기 위해 잡트래커의 책임을 분리 13년 10월 21일 월요일
  • 40. 이전 버전과의 차이 (2/2) Map-Reduce I vs YARN 출처: Hortonworks, http://hortonworks.com/hadoop/yarn 13년 10월 21일 월요일
  • 41. Hadoop Echo System 13년 10월 21일 월요일
  • 42. Apache HBase 하둡 기반의 NoSQL 시스템(컬럼기반), Google Big Table 과 유사 - MasterServer와 RegionServer로 구성됨. - HA를 위해 Apache Zookeer 사용 13년 10월 21일 월요일
  • 43. Apache PIG • 대규모의 데이터를 쉽게 분석할 수 있도록 스크립트 수준의 언어를 제공하는 분석 플랫폼 ✓ Hadoop 상에서 구동시 스크립트가 내부적으로 맵리듀스 잡으로 수행 됨 <WordCount Example> A = load './input.txt'; B = foreach A generate flatten(TOKENIZE((chararray)$0)) as word; C = group B by word; D = foreach C generate COUNT(B), group; store D into './wordcount'; 13년 10월 21일 월요일
  • 44. Apache Hive Hive clients 하둡에 저장된 데이터를 쉽게 처리할 수 있도록 하는 데이터 웨어하우스 솔루션 hive --service hiveserver - SQL 호환의 스크립트 구조를 제공 - 메타 정보를 저장하기 위해 별도의 메타 스토어가 필요 13년 10월 21일 월요일
  • 45. Apache Sqoop 하둡과 RDBMS 사이에서 데이터를 전송하기 위한 Tool Import Export 이미지 출처: siliconweek, <http://www.siliconweek.es/noticias/apache-sqoop-se-convierte-en-proyecto-prioritario-para-big-data-21558> 13년 10월 21일 월요일
  • 46. Apache Flume • 분석을 위해 많은 양의 로그 데이터를 효과적으 로 수집하여 HDFS에 저장하는 시스템 • 노드 ✓ Logical: 데이터의 흐름을 담당 ✓ Physical: 단일 자바 프로세스, 즉 단일 JVM 인스턴스 Logical 노드를 담는 컨테이너 • 컨포넌트 ✓ Master: Logical, Physical 노드를 제어 ✓ Agent: 로그를 수집하여 Collector에 전송하는 역할 ✓ Collector: 로그를 수집하여 더 큰 스트림으로 묶어 HDFS에 저장 출처: cloudera, http://archive.cloudera.com/cdh/3/flume-0.9.0+1/UserGuide.html 13년 10월 21일 월요일
  • 47. Apache Zookeeper 분산 환경에서 필요한 여러가지 기능을 구현할수 있도록 하는 분산 코디네이터 - Google Chubby의 구현제 - 세션 기반의 파일 시스템과 유사한 데이터 저장 구조를 제공 - 분산 락, 캐시, 맴버쉽 관리에 용이 - HA를 위해 과반수 알고리즘을 사용 13년 10월 21일 월요일
  • 48. References • 정재화. 시작하세요! 하둡 프로그래밍. 경기도 파주: 위키북스, 2012 • 위키피디아. 빅데이터. http://ko.wikipedia.org/wiki/%EB%B9%85_%EB%8D%B0%EC%9D %B4%ED%84%B0 . • Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung. The Google le system. In 19th Symposium on Operating Systems Principles, pages 2943, Lake George, New York, 2003. • 아파치. 하둡. http://hadoop.apache.org/ • Hadoop YARN “A next-generation framework for Hadoop data processing”, Hortonworks, http://hortonworks.com/hadoop/yarn • Flume User Guide, Cloudera, http://archive.cloudera.com/cdh/3/flume-0.9.0+1/ UserGuide.html 13년 10월 21일 월요일