하둡 8장 기능

Download Report

Transcript 하둡 8장 기능

HADOOP

하둡 맵리듀스 기능

장지은

MapReduce의 기능

1.

카운터 2.

정렬 2

3

카운터

Mapper와 Reducer에서 특정 이벤트의 발생횟수를 쉽게 카운트하는 메커니즘 ( = 맵리듀스 잡의 진행 상황을 모니터링 )

[ 콘솔 화면에 출력되는 로그에 나타남 ] --------------------------------------------------------------------------- ----------------------------------------------------------------------------

( + ) 몇 개의 Map Task와 Reduce Task가 실행되고 실패했는지 맵, 리듀스, 콤바이너의 입출력 레코드 건수와 바이트를 확인

카운터

1.

내장 카운터 a.

b.

태스크 카운터 잡 카운터 2.

사용자 정의 자바 카운터 4

5

내장 카운터

( 354 p )

하둡은 모든 잡에 대해 내장 카운터를 유지

내장 카운터 카운터 그룹 맵리듀스 태스크 카운터 내장 태스크 카운터 파일 관련 카운터 그룹 그룹 MapReduce Task counters Filesystem counters FileInputFormat counters FileOutputFormat counters 내장 잡 카운터 잡 카운터 Job counters

→ 진행 정도에 따라 갱신

참고 표 8-2 표 8-3 표 8-4 표 8-5 표 8-6

내장 카운터

( 354 p ) 6

7

내장 카운터

( 354 p )

하둡은 모든 잡에 대해 내장 카운터를 유지

내장 카운터 카운터 그룹 맵리듀스 태스크 카운터 내장 태스크 카운터 파일 관련 카운터 그룹 그룹 MapReduce Task counters Filesystem counters FileInputFormat counters FileOutputFormat counters 내장 잡 카운터 잡 카운터 Job counters

→ 진행 정도에 따라 갱신

참고 표 8-2 표 8-3 표 8-4 표 8-5 표 8-6

내장 카운터

( 354 p )

태스크 카운터

 태스크 실행 시간 동안 해당 태스크에 관련된 정보를 수집, 최종 결과는 잡의 모든 태스크에 대한

누적된 전체 수치 전송 8

 각 태스크에 의해 관리되고 주기적으로

태스크 트래커

잡 트래커

에게 보내진다.

9

내장 카운터

( 355 p )

태스크 카운터

 마지막 전송 시점에서 변경된 최신 값만 전달하는 것이 아니라

보낼 때

마다 누적된 전체 수치 전송 이는

메시지 유실로 인한 오류를 방지

하기 위해서다.

 태스크가 실패하면 카운터는 중단 잡이 성공해야 카운터 값은 최종값이 된다

10

내장 카운터

( 357 p )

잡 카운터

 잡 트래커에 의해 유지되므로 사용자 정의 카운터를 포함한 다른 카운터와는 달리 네트워크 상으로 전달될 필요 없음

11

사용자 정의 자바 카운터

( 359 p ) 12 코드 수준에서 카운터의 집합을 정의해주어 원하는 방식으로 카운터를 증가하게 할 수 있음

enum 이름 = counters 그룹 명 enum 필드 = counter 명  잡은 임의의 숫자의 enum을 정의할 수 있고, 각 enum은 임의의 필드 개수를 가질 수 있음

13

사용자 정의 자바 카운터

( 359 p )

 JobBilder 명령행에서 INPUT/OUTPUT 인자 (args[0]/args[0]) 읽기 INPUT/OUTPUT PATH 설정  NcdcRecordParser(Mapper 의 역할 ) 기상청 원시 데이터 -> 정제된 데이터로 추출  MaxTemperatureReducer 정제된 데이터 -> 필요한 최적의 데이터 추출  MaxTemperatureWithCounters(

Main

문 포함 ) Mapper 를 생성하여 NcdcRecordParser 를 통해 Mapper 의 결과 도출 Mapper 의 결과를 Reducer 의 입력으로 설정 후 최종 결과 도출

14

MaxTemperatureWithCounters

( 359 - 60p )

NcdcRecordParser

15

16

MaxTemperatureWithCounters

( 359 - 60p )

17

MaxTemperatureWithCounters

( 359 - 60p )

JobBilder

18

19

MaxTemperatureWithCounters

( 359 - 60p )

MaxTemperatureReducer

20

21

사용자 정의 자바 카운터 결과창

( 359 p )

22

사용자 정의 자바 카운터 예제 실습

1. JAR 파일 및 분석 data 가져오기

scp –r [email protected]:/usr/local/hadoop/classes08/* $HADOOP_HOME cd $HADOOP_HOME/

( Hadoop/input/all/1901 또는 1902 에 data가 없는 경우 )

hadoop fs –put 1901 (or 1902).

gz /input/ncdc/all

( all 디렉터리가 아예 없는 경우 )

hadoop fs –mkdir /input/ncdc/all

2. Jar 파일 실행

Hadoop jar classes_chap08.jar MaxTemperatureWithCounters /input/ncdc/all output-counters

사용자 정의 자바 카운터

( 362 p ) 23

카운터 조회

 잡이 끝나는 시점에서 카운터를 가져오는 것이 일반적 But, 안정적으로 동작 중일 때에는 잡 수행하는 도중에 조회 가능

사용자 정의 자바 카운터

( 362 p ) 기온 필드 없는 레코드의 비율을 계산하는 예제 24

결과창

1. Jar 파일 실행

Hadoop jar classes_chap08.jar MissingTemperatureFields (jobID)

25

정렬

데이터 셋을 정렬하는 방법들 1.

준비 – SequencaFile형식으로 변경 2.

부분정렬 3.

전체정렬 26

준비

-

기온을 제대로 읽을 수 없는 레코드를 제거하여 압축된 시퀀스파일을 출력으로 생성하는 클래스 27

결과창

1. Jar 파일 실행

Hadoop jar classes_chap08.jar SortDataPreprocessor /input/ncdc/all /input/ncdc/all-seq

28

결과창

( 364 p ) 1. SequenceFile Read

Hadoop fs –text /input/ncdc/all-seq/part-m-00000

29

부분정렬

( 366 p )

-

IntWritable키를 가지고 시퀀스 파일을 정렬하는 클래스 30

31

결과창

( 364 p ) 1. Jar 파일 실행

Hadoop jar classes_chap08.jar SortByTemperatureUsingHashPartitioner -D mapred.reduce.tasks=30 /input/ncdc/all-seq output-hashsort

결과창

( 364 p )

-

Part-r-00000

-

Part-r-00001 .

.

.

32

전체정렬

33

34

결과창

1. Jar 파일 실행

Hadoop jar classes_chap08.jar SortByTemperatureUsingTotalOrderPartitioner -D mapred.reduce.task=5 /input/ncdc/all-seq output-totalsort

결과창

( 364 p )

-

Part-r-00000

-

Part-r-00001 .

.

.

-

Part-r-00004 35