SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Hadoop Tutorial



    충남대학교 데이터네트워크 연구실
                이 연 희


             2012. 04. 05




1
차례
   Hadoop 이란
   Hadoop 아키텍쳐
   HDFS
   MapReduce
   Hadoop 어플리케이션 개발
Data Explosion




3
What is MapReduce?




   텍스트 검색 라이브러리 아파치 루씬 창시자 '더그 커팅'에
    의해 시작
       오픈소스 웹 검색엔진 아파치 너치(Apache Nutch)에서 탄생
   구글 MapReduce 프로그래밍 모델을 제안
    •   소스를 공개를 하지 않음
HDFS와 MapReduce
   오픈소스 분산 어플리케이션 프레임워크
       파일시스템: HDFS
       컴퓨팅 프레임워크: MapReduce
   수천 대의 클러스터까지 확장 가능
   대용량 데이터의 처리에 적합
   Google에 의해 MapReduce 모델 제안




                  HDFS           MapReduce
Hadoop
   Open Source in Java
   Yahoo에서 구현하여 공개




                                             Hadoop

                     HDFS
        ( Hadoop Distributed File System )
                                                           MapReduce



                                    Java Virtual Machine
HDFS
   클러스터 파일 시스템 (Cluster File System)


일반 파일 시스템                     클러스터 파일 시스템


                           Network            Network




    물리 디스크        물리 디스크             물리 디스크             물리 디스크




    논리 디스크                           논리 디스크
MapReduce
   분산 처리 모델 (Distributed Computing Model)


    일반 처리 모델                        분산 처리 모델




                          Network              Network
Hadoop의 물리적 구성


                           Hadoop HDFS




Job Tracker   Task Tracker          Task Tracker       Task Tracker
              ( Map & Reduce )      ( Map & Reduce )   ( Map & Reduce )
Hadoop Architecture
                                 Master
                                                                 HDFS

                      Namenode                                   MapReduce
                                          Jobtracker




      Worker 1      Worker 2         Worker 3                 Worker n

     Tasktracker   Tasktracker     Tasktracker
                                                       …….   Tasktracker

     Datanode      Datanode         Datanode                 Datanode




10
HDFS: Architecture
HDFS: Metadata

   파일의 위치 + 파일 이름 + 복제 수
   메모리에 상주하면서 빠르게 정보를 전달


              /home/test/test_file
                 어디에 있나?
                                              Name Node
      CLIEN
                    X 노드, Y 블럭
        T

                                               Metadata

                                     /home/root/test, 3 …..
                                     /home/test/test_file,3 …..
                                     /home/micle/miracle, 3 ….
HDFS: Block
   저장 공간의 단위
       사용자의 설정에 의해 변경될 수 있다.
   저장공간 보다 작은 다 수의 파일은?
          40M 128M
                 88M

          40M 128M
                 88M
                         기본 블록 사이즈는 128MB 라고 가정
              128M       40MB 크기의 파일 2 개를 복사

   저장공간 보다 큰 파일은?
              128M

           72M128M 56M
                         기본 블록 사이즈는 128MB 라고 가정
              128        200MB 크기의 파일 1 개를 복사
HDFS: Replication
   Replication  복제

   왜 복제를 하는가?

                        DATA




                  복제가 존재하는 서버
                   복제가 없는 서버
Hadoop and MapReduce

MapReduce 처리 흐름




     Map(k1, v1)  list(k2, v2)
     Reduce(k2, list[v2])  (K2, v3)

                                  -15 -
MapReduce

                Split Data
                                        (key, value)                  (key, value)

              Data Split 1    Mapper    Temp Disk
                                                            Reducer
Large
Data          Data Split 2    Mapper    Temp Disk                       Result
                                                            Reducer

              Data Split 3    Mapper    Temp Disk




        1.   (Key,Value) 로 자료를 가져온다.          1.       (Key,Value) 로 자료를 가져온다.
        2.   분석 후 (Key,Value) 를 생성한다.         2.       같은 key 값에 대한 분석을 진행한다.
        3.   분석 된 (Key,Value) 를 저장한다          3.       최종 결과 (Key,Value) 를 저장한다.
Hadoop의 하위 프로젝트들



       Pig     Chukwa   Hive      HBase

                                   Zoo
       MapReduce        HDFS
                                  Keeper

             Core              Avro




17
Hadoop의 하위 프로젝트
•   Avro
    –   직렬화 시스템
•   Chukwa
    –   분산된 데이터를 수집 시스템
•   Hbase
    –   큰 테이블을 지원하는 데이터 베이스 시스템
•   Hive
    –   데이터를 통합하고 SQL-like 쿼리 지원
•   Pig
    –   흐름제어를 위한 Script 언어 지원
•   Zookeeper
    –   분산 어플리케이션을 위한 coordination 서비스
사례: Amazon EC2, S3 서비스
   왜 Amazon의 서비스를 이용하는가?

       성능 향상
           다수의 컴퓨터를 이용한 성능 향상


       비용 절감
           수 백대 혹은 그 이상의 컴퓨터를 유지하는 비용 절감


       설치가 필요 없음
           기본적인 MapReduce를 제공
뉴욕타임즈 사례
1851年 – 1981年 12月
  1100만매의 신문
                               Amazon S3 Service


             TIFF Image ( 4TB )                        PDF File ( 1.5TB )


                                              Amazon EC2 Service
          Hadoop AMI
   (Hadoop Amazon Machine Image)
              X 100




                                   소요 비용
             S3                            EC2
     Storage – 5.5TB                                           $ 1465
    Data Transfer – 4TB            Instances 100 x 24 Hour
사례 : Facebook 로그 분석
   Scribe 를 이용한 로그 수집 후

   MapReduce를 이용한 분석
       Hadoop의 하위 프로젝트 Hive를 이용
사례 : 트래픽 분석
   Snort 로그 분석
       방화벽 로그 분석


   Flow Data 분석
       대용량의 플로우 데이터를 분석

   http://wiki.apache.org/hadoop/PoweredBy#G
MapReduce 프로그래밍 구성요소




 InputFormat      Mapper   Key1     Combiner      Key1     Reducer   OutputFormat

                           Value1   Partitioner   Value1
RecorderReader                                                       RecorderWriter

     InputSplit
                                                                     Key2    Value2


                              맵리듀스 프레임워크
     입력 데이터                                                           출력 데이터




23
MapReduce 프로그래밍 구성요소
1.       InputFormat
        입력데이터를 map() 메소드로 전달
        몇 개의 맵 태스크로 분리해야 하는지에 대한 정보
            getSplit()
        하나의 레코드 씩 map() 메소드로에 전달
            RecordReader가 담당


2.       Mapper
        RecordReader에 의해 전달된 각 레코드를 읽어 새로운 키-값 생성

3.       Combiner
        맵의 결과로 생성된 임시 로컬 데이터에 대한 리듀스 작업 수행
        리듀스로 전달되는 데이터의 양을 줄임으로써 네트워크 성능 문제
         해결

 24
MapReduce 프로그래밍 구성요소
4.       Partitioner
        키를 이용해 맵의 출력 데이터를 각 리듀스로 분배하는 규칙 적용


5.       Reducer
        새로운 키를 기준으로 의미있는 결과 생성


6.       OutputFormat
        리듀스의 결과를 출력




 25
MR 애플리케이션 작성 절차
    데이터 흐름 설계
    InputFormat/OutputFormat 구현
    Mapper 구현
    Partitioner 구현
    Reducer 구현
    Driver 구현




    26
MapReduce Programming
    Mapper 클래스
        키-값의 쌍을 생성


    Reduce 클래스
        입력은 키와 값 목록
        키를 기준으로 여러 개의 값을 출력


    메인 클래스(Driver)
        작업의 설정과 실행   map (k1, v1)  list (k2, v2)
                      Reduce (k2, list (v2)  list (v2)



    27
MapReduce 예제: WordCount




28
MapReduce: WordCount 예제
public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> {


  private final static IntWritable one = new IntWritable(1);
  private Text word = new Text();


  public void map(LongWritable key, Text value, Context context) {
      String line = value.toString();
      StringTokenizer tokenizer = new StringTokenizer(line);


      while (tokenizer.hasMoreTokens()) {
          word.set(tokenizer.nextToken());
          context.write(word, one);
      }
  }

 29
MapReduce: WordCount 예제
public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable>
  {


    public void reduce(Text key, Iterable<IntWritable> values, Context context)
         throws IOException, InterruptedException {
          int sum = 0;
          for (IntWritable val : values) {
              sum += val.get();
          }
          context.write(key, new IntWritable(sum));
    }
}




    30
MapReduce: WordCount 예제
public static void main(String[] args) throws Exception {
     Configuration conf = new Configuration();
     Job job = new Job(conf, "wordcount");


     job.setOutputKeyClass(Text.class);
     job.setOutputValueClass(IntWritable.class);
     job.setMapperClass(Map.class);
     job.setReducerClass(Reduce.class);
     job.setInputFormatClass(TextInputFormat.class);
     job.setOutputFormatClass(TextOutputFormat.class);


     FileInputFormat.addInputPath( job, new Path(args[0]));
     FileOutputFormat.setOutputPath( job, new Path(args[1]));


     job.waitForCompletion(true);
}
    31
Partitioner
public class HashPartitioner<K2, V2> implements Partitioner<K2, V2> {


     public void configure(JobConf job) {}


     public int getPartition(K2 key, V2 value, int numPartitions) {
           return (key.hashCode() & Integer.MAX_VALUE) % numPartitions ;
     }
}




    32
Combiner
public static void main(String[] args) throws Exception {
   Configuration conf = new Configuration();
   Job job = new Job(conf, "wordcount");


   job.setOutputKeyClass(Text.class);
   job.setOutputValueClass(IntWritable.class);
   job.setMapperClass(Map.class);
   job.setCombinerClass(Reduce.class);
   job.setReducerClass(Reduce.class);
   job.setInputFormatClass(TextInputFormat.class);
   job.setOutputFormatClass(TextOutputFormat.class);


   FileInputFormat.addInputPath( job, new Path(args[0]));
   FileOutputFormat.setOutputPath( job, new Path(args[1]));


   job.waitForCompletion(true);
} 33
Hadoop Wiki 참고
    http://wiki.apache.org/hadoop/FrontPage




    34
Thank you!




35

Weitere ähnliche Inhalte

Was ist angesagt?

about hadoop yes
about hadoop yesabout hadoop yes
about hadoop yesEunsil Yoon
 
하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다민철 정민철
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoMatthew (정재화)
 
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
 
하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기beom kyun choi
 
하둡 타입과 포맷
하둡 타입과 포맷하둡 타입과 포맷
하둡 타입과 포맷진호 박
 
하둡 설치(의사분산모드)
하둡 설치(의사분산모드)하둡 설치(의사분산모드)
하둡 설치(의사분산모드)Kwangyoung Jeon
 
빅데이터 구축 사례
빅데이터 구축 사례빅데이터 구축 사례
빅데이터 구축 사례Taehyeon Oh
 
5일차.map reduce 활용
5일차.map reduce 활용5일차.map reduce 활용
5일차.map reduce 활용주영 송
 
하둡완벽가이드 Ch9
하둡완벽가이드 Ch9하둡완벽가이드 Ch9
하둡완벽가이드 Ch9HyeonSeok Choi
 
20180714 하둡 스터디 종료 보고 및 연구과제 발표자료
20180714 하둡 스터디 종료 보고 및 연구과제 발표자료20180714 하둡 스터디 종료 보고 및 연구과제 발표자료
20180714 하둡 스터디 종료 보고 및 연구과제 발표자료BOMI KIM
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-HadoopGRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-HadoopGruter
 
하둡 HDFS 훑어보기
하둡 HDFS 훑어보기하둡 HDFS 훑어보기
하둡 HDFS 훑어보기beom kyun choi
 

Was ist angesagt? (20)

about hadoop yes
about hadoop yesabout hadoop yes
about hadoop yes
 
하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다
 
hadoop ch1
hadoop ch1hadoop ch1
hadoop ch1
 
HBase 훑어보기
HBase 훑어보기HBase 훑어보기
HBase 훑어보기
 
Hadoop administration
Hadoop administrationHadoop administration
Hadoop administration
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 
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
 
하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기
 
하둡 타입과 포맷
하둡 타입과 포맷하둡 타입과 포맷
하둡 타입과 포맷
 
하둡 설치(의사분산모드)
하둡 설치(의사분산모드)하둡 설치(의사분산모드)
하둡 설치(의사분산모드)
 
Apache hive
Apache hiveApache hive
Apache hive
 
Hadoop발표자료
Hadoop발표자료Hadoop발표자료
Hadoop발표자료
 
빅데이터 구축 사례
빅데이터 구축 사례빅데이터 구축 사례
빅데이터 구축 사례
 
Hdfs
HdfsHdfs
Hdfs
 
5일차.map reduce 활용
5일차.map reduce 활용5일차.map reduce 활용
5일차.map reduce 활용
 
하둡완벽가이드 Ch9
하둡완벽가이드 Ch9하둡완벽가이드 Ch9
하둡완벽가이드 Ch9
 
20180714 하둡 스터디 종료 보고 및 연구과제 발표자료
20180714 하둡 스터디 종료 보고 및 연구과제 발표자료20180714 하둡 스터디 종료 보고 및 연구과제 발표자료
20180714 하둡 스터디 종료 보고 및 연구과제 발표자료
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-HadoopGRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
 
Hive begins
Hive beginsHive begins
Hive begins
 
하둡 HDFS 훑어보기
하둡 HDFS 훑어보기하둡 HDFS 훑어보기
하둡 HDFS 훑어보기
 

Andere mochten auch

Deview2013 SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
Deview2013 SQL-on-Hadoop with Apache Tajo, and application case of SK TelecomDeview2013 SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
Deview2013 SQL-on-Hadoop with Apache Tajo, and application case of SK TelecomNAVER D2
 
PostgreSQL Deep Internal
PostgreSQL Deep InternalPostgreSQL Deep Internal
PostgreSQL Deep InternalEXEM
 
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun KimDeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun KimGruter
 
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안치완 박
 
빅데이터, big data
빅데이터, big data빅데이터, big data
빅데이터, big dataH K Yoon
 
20141111 파이썬으로 Hadoop MR프로그래밍
20141111 파이썬으로 Hadoop MR프로그래밍20141111 파이썬으로 Hadoop MR프로그래밍
20141111 파이썬으로 Hadoop MR프로그래밍Tae Young Lee
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)Channy Yun
 

Andere mochten auch (9)

Deview2013 SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
Deview2013 SQL-on-Hadoop with Apache Tajo, and application case of SK TelecomDeview2013 SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
Deview2013 SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
 
PostgreSQL Deep Internal
PostgreSQL Deep InternalPostgreSQL Deep Internal
PostgreSQL Deep Internal
 
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun KimDeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
 
YARN overview
YARN overviewYARN overview
YARN overview
 
Intro to r & hadoop
Intro to r & hadoopIntro to r & hadoop
Intro to r & hadoop
 
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안
 
빅데이터, big data
빅데이터, big data빅데이터, big data
빅데이터, big data
 
20141111 파이썬으로 Hadoop MR프로그래밍
20141111 파이썬으로 Hadoop MR프로그래밍20141111 파이썬으로 Hadoop MR프로그래밍
20141111 파이썬으로 Hadoop MR프로그래밍
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)
 

Ähnlich wie Hadoop 제주대

Spark은 왜 이렇게 유명해지고 있을까?
Spark은 왜 이렇게  유명해지고 있을까?Spark은 왜 이렇게  유명해지고 있을까?
Spark은 왜 이렇게 유명해지고 있을까?KSLUG
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처Sunggon Song
 
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo,  and application case of SK TelecomSQL-on-Hadoop with Apache Tajo,  and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo, and application case of SK TelecomGruter
 
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)SANG WON PARK
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna현철 박
 
3 빅데이터기반비정형데이터의실시간처리방법 원종석
3 빅데이터기반비정형데이터의실시간처리방법 원종석3 빅데이터기반비정형데이터의실시간처리방법 원종석
3 빅데이터기반비정형데이터의실시간처리방법 원종석Saltlux Inc.
 
log-monitoring-architecture.pdf
log-monitoring-architecture.pdflog-monitoring-architecture.pdf
log-monitoring-architecture.pdfSungkyun Kim
 
하둡-맵리듀스
하둡-맵리듀스하둡-맵리듀스
하둡-맵리듀스Yunsu Lee
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습동현 강
 
Cloudera Impala 1.0
Cloudera Impala 1.0Cloudera Impala 1.0
Cloudera Impala 1.0Minwoo Kim
 
Daum 내부 빅데이터 및 클라우드 기술 활용 사례- 윤석찬 (2012)
Daum 내부 빅데이터 및 클라우드 기술 활용 사례- 윤석찬 (2012)Daum 내부 빅데이터 및 클라우드 기술 활용 사례- 윤석찬 (2012)
Daum 내부 빅데이터 및 클라우드 기술 활용 사례- 윤석찬 (2012)Channy Yun
 
Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Hyoungjun Kim
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제NAVER D2
 
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)JiandSon
 
Hadoop Overview 1
Hadoop Overview 1Hadoop Overview 1
Hadoop Overview 1Kay Kim
 
Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Steve Min
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례Gruter
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)NAVER D2
 
Flamingo 1.2 릴리즈의 지원 기능 정리
Flamingo 1.2 릴리즈의 지원 기능 정리Flamingo 1.2 릴리즈의 지원 기능 정리
Flamingo 1.2 릴리즈의 지원 기능 정리BYOUNG GON KIM
 

Ähnlich wie Hadoop 제주대 (20)

Spark은 왜 이렇게 유명해지고 있을까?
Spark은 왜 이렇게  유명해지고 있을까?Spark은 왜 이렇게  유명해지고 있을까?
Spark은 왜 이렇게 유명해지고 있을까?
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처
 
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo,  and application case of SK TelecomSQL-on-Hadoop with Apache Tajo,  and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
 
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna
 
3 빅데이터기반비정형데이터의실시간처리방법 원종석
3 빅데이터기반비정형데이터의실시간처리방법 원종석3 빅데이터기반비정형데이터의실시간처리방법 원종석
3 빅데이터기반비정형데이터의실시간처리방법 원종석
 
log-monitoring-architecture.pdf
log-monitoring-architecture.pdflog-monitoring-architecture.pdf
log-monitoring-architecture.pdf
 
하둡-맵리듀스
하둡-맵리듀스하둡-맵리듀스
하둡-맵리듀스
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습
 
What is spark
What is sparkWhat is spark
What is spark
 
Cloudera Impala 1.0
Cloudera Impala 1.0Cloudera Impala 1.0
Cloudera Impala 1.0
 
Daum 내부 빅데이터 및 클라우드 기술 활용 사례- 윤석찬 (2012)
Daum 내부 빅데이터 및 클라우드 기술 활용 사례- 윤석찬 (2012)Daum 내부 빅데이터 및 클라우드 기술 활용 사례- 윤석찬 (2012)
Daum 내부 빅데이터 및 클라우드 기술 활용 사례- 윤석찬 (2012)
 
Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)
 
Hadoop Overview 1
Hadoop Overview 1Hadoop Overview 1
Hadoop Overview 1
 
Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Apache Htrace overview (20160520)
Apache Htrace overview (20160520)
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)
 
Flamingo 1.2 릴리즈의 지원 기능 정리
Flamingo 1.2 릴리즈의 지원 기능 정리Flamingo 1.2 릴리즈의 지원 기능 정리
Flamingo 1.2 릴리즈의 지원 기능 정리
 

Hadoop 제주대

  • 1. Hadoop Tutorial 충남대학교 데이터네트워크 연구실 이 연 희 2012. 04. 05 1
  • 2. 차례  Hadoop 이란  Hadoop 아키텍쳐  HDFS  MapReduce  Hadoop 어플리케이션 개발
  • 4. What is MapReduce?  텍스트 검색 라이브러리 아파치 루씬 창시자 '더그 커팅'에 의해 시작  오픈소스 웹 검색엔진 아파치 너치(Apache Nutch)에서 탄생  구글 MapReduce 프로그래밍 모델을 제안 • 소스를 공개를 하지 않음
  • 5. HDFS와 MapReduce  오픈소스 분산 어플리케이션 프레임워크  파일시스템: HDFS  컴퓨팅 프레임워크: MapReduce  수천 대의 클러스터까지 확장 가능  대용량 데이터의 처리에 적합  Google에 의해 MapReduce 모델 제안 HDFS MapReduce
  • 6. Hadoop  Open Source in Java  Yahoo에서 구현하여 공개 Hadoop HDFS ( Hadoop Distributed File System ) MapReduce Java Virtual Machine
  • 7. HDFS  클러스터 파일 시스템 (Cluster File System) 일반 파일 시스템 클러스터 파일 시스템 Network Network 물리 디스크 물리 디스크 물리 디스크 물리 디스크 논리 디스크 논리 디스크
  • 8. MapReduce  분산 처리 모델 (Distributed Computing Model) 일반 처리 모델 분산 처리 모델 Network Network
  • 9. Hadoop의 물리적 구성 Hadoop HDFS Job Tracker Task Tracker Task Tracker Task Tracker ( Map & Reduce ) ( Map & Reduce ) ( Map & Reduce )
  • 10. Hadoop Architecture Master HDFS Namenode MapReduce Jobtracker Worker 1 Worker 2 Worker 3 Worker n Tasktracker Tasktracker Tasktracker ……. Tasktracker Datanode Datanode Datanode Datanode 10
  • 12. HDFS: Metadata  파일의 위치 + 파일 이름 + 복제 수  메모리에 상주하면서 빠르게 정보를 전달 /home/test/test_file 어디에 있나? Name Node CLIEN X 노드, Y 블럭 T Metadata /home/root/test, 3 ….. /home/test/test_file,3 ….. /home/micle/miracle, 3 ….
  • 13. HDFS: Block  저장 공간의 단위  사용자의 설정에 의해 변경될 수 있다.  저장공간 보다 작은 다 수의 파일은? 40M 128M 88M 40M 128M 88M 기본 블록 사이즈는 128MB 라고 가정 128M 40MB 크기의 파일 2 개를 복사  저장공간 보다 큰 파일은? 128M 72M128M 56M 기본 블록 사이즈는 128MB 라고 가정 128 200MB 크기의 파일 1 개를 복사
  • 14. HDFS: Replication  Replication  복제  왜 복제를 하는가? DATA 복제가 존재하는 서버 복제가 없는 서버
  • 15. Hadoop and MapReduce MapReduce 처리 흐름  Map(k1, v1)  list(k2, v2)  Reduce(k2, list[v2])  (K2, v3) -15 -
  • 16. MapReduce Split Data (key, value) (key, value) Data Split 1 Mapper Temp Disk Reducer Large Data Data Split 2 Mapper Temp Disk Result Reducer Data Split 3 Mapper Temp Disk 1. (Key,Value) 로 자료를 가져온다. 1. (Key,Value) 로 자료를 가져온다. 2. 분석 후 (Key,Value) 를 생성한다. 2. 같은 key 값에 대한 분석을 진행한다. 3. 분석 된 (Key,Value) 를 저장한다 3. 최종 결과 (Key,Value) 를 저장한다.
  • 17. Hadoop의 하위 프로젝트들 Pig Chukwa Hive HBase Zoo MapReduce HDFS Keeper Core Avro 17
  • 18. Hadoop의 하위 프로젝트 • Avro – 직렬화 시스템 • Chukwa – 분산된 데이터를 수집 시스템 • Hbase – 큰 테이블을 지원하는 데이터 베이스 시스템 • Hive – 데이터를 통합하고 SQL-like 쿼리 지원 • Pig – 흐름제어를 위한 Script 언어 지원 • Zookeeper – 분산 어플리케이션을 위한 coordination 서비스
  • 19. 사례: Amazon EC2, S3 서비스  왜 Amazon의 서비스를 이용하는가?  성능 향상  다수의 컴퓨터를 이용한 성능 향상  비용 절감  수 백대 혹은 그 이상의 컴퓨터를 유지하는 비용 절감  설치가 필요 없음  기본적인 MapReduce를 제공
  • 20. 뉴욕타임즈 사례 1851年 – 1981年 12月 1100만매의 신문 Amazon S3 Service TIFF Image ( 4TB ) PDF File ( 1.5TB ) Amazon EC2 Service Hadoop AMI (Hadoop Amazon Machine Image) X 100 소요 비용 S3 EC2 Storage – 5.5TB $ 1465 Data Transfer – 4TB Instances 100 x 24 Hour
  • 21. 사례 : Facebook 로그 분석  Scribe 를 이용한 로그 수집 후  MapReduce를 이용한 분석  Hadoop의 하위 프로젝트 Hive를 이용
  • 22. 사례 : 트래픽 분석  Snort 로그 분석  방화벽 로그 분석  Flow Data 분석  대용량의 플로우 데이터를 분석  http://wiki.apache.org/hadoop/PoweredBy#G
  • 23. MapReduce 프로그래밍 구성요소 InputFormat Mapper Key1 Combiner Key1 Reducer OutputFormat Value1 Partitioner Value1 RecorderReader RecorderWriter InputSplit Key2 Value2 맵리듀스 프레임워크 입력 데이터 출력 데이터 23
  • 24. MapReduce 프로그래밍 구성요소 1. InputFormat  입력데이터를 map() 메소드로 전달  몇 개의 맵 태스크로 분리해야 하는지에 대한 정보  getSplit()  하나의 레코드 씩 map() 메소드로에 전달  RecordReader가 담당 2. Mapper  RecordReader에 의해 전달된 각 레코드를 읽어 새로운 키-값 생성 3. Combiner  맵의 결과로 생성된 임시 로컬 데이터에 대한 리듀스 작업 수행  리듀스로 전달되는 데이터의 양을 줄임으로써 네트워크 성능 문제 해결 24
  • 25. MapReduce 프로그래밍 구성요소 4. Partitioner  키를 이용해 맵의 출력 데이터를 각 리듀스로 분배하는 규칙 적용 5. Reducer  새로운 키를 기준으로 의미있는 결과 생성 6. OutputFormat  리듀스의 결과를 출력 25
  • 26. MR 애플리케이션 작성 절차  데이터 흐름 설계  InputFormat/OutputFormat 구현  Mapper 구현  Partitioner 구현  Reducer 구현  Driver 구현 26
  • 27. MapReduce Programming  Mapper 클래스  키-값의 쌍을 생성  Reduce 클래스  입력은 키와 값 목록  키를 기준으로 여러 개의 값을 출력  메인 클래스(Driver)  작업의 설정과 실행 map (k1, v1)  list (k2, v2) Reduce (k2, list (v2)  list (v2) 27
  • 29. MapReduce: WordCount 예제 public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(LongWritable key, Text value, Context context) { String line = value.toString(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasMoreTokens()) { word.set(tokenizer.nextToken()); context.write(word, one); } } 29
  • 30. MapReduce: WordCount 예제 public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } context.write(key, new IntWritable(sum)); } } 30
  • 31. MapReduce: WordCount 예제 public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job job = new Job(conf, "wordcount"); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); job.setMapperClass(Map.class); job.setReducerClass(Reduce.class); job.setInputFormatClass(TextInputFormat.class); job.setOutputFormatClass(TextOutputFormat.class); FileInputFormat.addInputPath( job, new Path(args[0])); FileOutputFormat.setOutputPath( job, new Path(args[1])); job.waitForCompletion(true); } 31
  • 32. Partitioner public class HashPartitioner<K2, V2> implements Partitioner<K2, V2> { public void configure(JobConf job) {} public int getPartition(K2 key, V2 value, int numPartitions) { return (key.hashCode() & Integer.MAX_VALUE) % numPartitions ; } } 32
  • 33. Combiner public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job job = new Job(conf, "wordcount"); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); job.setMapperClass(Map.class); job.setCombinerClass(Reduce.class); job.setReducerClass(Reduce.class); job.setInputFormatClass(TextInputFormat.class); job.setOutputFormatClass(TextOutputFormat.class); FileInputFormat.addInputPath( job, new Path(args[0])); FileOutputFormat.setOutputPath( job, new Path(args[1])); job.waitForCompletion(true); } 33
  • 34. Hadoop Wiki 참고  http://wiki.apache.org/hadoop/FrontPage 34