이번글은 Reducer 클랙스 공부입니다.

오늘도 빅데이터공부로 열심히열심히 글을 올리겠습니다. ^-^

하핫 !!! 빅데이터공부하시는 분들 퐈이팅!!

 

Reducer 클래스

 

org.apache.hadoop.mapreduce.Reducer로부터 계승

 

extends Reducer<K1, V1, K2, V2>

처음 2개는 입력레코드의 키, 밸류의 타입 (K1, V1)

- mapper 출력레코드의 키, 밸류의 타입과 일치

 

다음 2개는 출력레코드의 키, 밸류의 타입(K2, V2)

이 타입들은 main함수에서 Job클래스의 setOutputKeyClass setOutputValueClass로 지정한 타임과 일치해야함.

 

Job 클래스의 setReducerClass로 지정(프레임웍에 알린다)

 

코어는 바로 Reducer의 reduce메소드

-벨류는 V2타입의 리스트이며 이를 *개의 출력레코드로 변환

- 출력레코드를 프레임웍으로 내보내는데 Context 클래스의 srite메소드를 사용

- 출력레코드가 어떻게 저장되느냐는 main함수에서 호출한 Job클래스의 setOutputFormatClass 메소드에서 지정한 출력차입에 의해 결정

 

 

 

빅데이터공부하기 40번째글입니다.

벌써!!! 많이 공부했죠 우리 ^---^

 

이번공부의 주제는 mapper 클래스입니다.

오늘도 열심히 빅데이터를 공부해볼까용?!!

GoGo ~~!!

 

Mapper 클래스

 

org.apache.hadoop.mapreduce.Mapper로 부터 계승

 

extends Mapper<K1, V1, K2, V2>

처음 2개는 입력레코드의 키, 밸류의 타입 (K1, V1)

다음 2개는 출력레코드의 키, 밸류의 타입 (K2, V2)

- reducer입력레코드의 키, 밸류의 타입과 일치

 

Job 클래스의 setMapperClass로 지정 (프레임웍에 알린다)

 

코어는 바로 Mapper의 map 메소드

- 주어진 입력레코드를 *개의 출력레코드로 변환

- 출력레코드를 프레임웍으로 내보내는데 Context클래스의 write메소드를 사용

 


Public static class Map extends Mapper<Long Writable, Text, Text, LongWritable>

private final static LongWritable one = new LongWritable(1);

private text word= new Text();

 

public voidmap(LongWritable key, Text value, Context context)

throws IOException, InterruptedException

{

String line = value.toString();

String Tokenize tokenizer = new String Tokenizer(line, "trnf,.\"");

while(tokenizer.hasMoreTokens());

context.write(word, one);

}


1. 입력레코드의 키, 밸류 타입은 인풋포뱃이 결정하며 앞서 main에서 보면 TextlnputFormat을 사용. LongWritable.Text등은 자바의 Long과 String 타입의 하둡용랩퍼.

 

2. 출력레코드의 키, 밸류 타입은 Text, LongWritable인데 이건 프레임웍에 의해 소팅, 셔플링이 된다음에 reducer로 넘어간다

 

3. map 메소드내에서 사용할 변수를 두개 미리 만들어둔다.

 

4. map 메소드는 밸류로 넘어온 텍스트 파일의 라인을 StringTokenizer클래스를 이용해 파싱한 다음 각 단어들을 하나씩 프레임웍으로 넘긴다 (키는 단어, 밸류는 1)

 

 

 

 

 

이번 빅데이터공부하기 39번째글은 MAIN함수코드 설명입니다.

 

먼저 Main 함수부터 공부해보겠습니다. ^^

 

main 함수

 

Configuration과 Job 인스턴스 생성

 

두 인스턴스를 이용해서 수행하려는 잡의 환경설정

- mapper, rduecer 클래스지정

- 입렵/출력포맷 지정

- 입력파일위치, 출력디렉토리 지정

둘다 HDFS(혹은 AWS의 S3도 가능)

 

여러개 잡들의 chaining도 가능

 


public static void main(String[] args) throws Exception

{

Configuration conf = new Configuration();

Job job = new Job(conf, "wordcount");

 

 

job.setJarByClass(WordCount.class);

job.setMapperClass(Map.class);

job.setReducerClass(Reduce.class);

 

 

job.setOutputKeyClass(Text.class);

job.setOutputValueClass(LongWritable.class);

 

job.setInputFormatClass(Text.class);

job.setOutputFormatClass(TextOutputFormat.class);

 

 

 

FileInoutFormat.addlnputPath(job, new Path(args[0]));

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

 

 

job.watiForCompletion(true);

}

 

여!기!까!지

다음 빅데이터 글에서 또만나요 ^^

벌써 8월이... 3일밖에 안남았어요 !!

시간은 왕왕빠름

시간은 우리를 기다려주지를 않죠 ㅠㅠ

 

이번글은 MAPREDUCE 프로그램의 기본 골격에 대해서 공부하겠습니다.

 

mapred vs. mapreduce

 

두 종류의 MapReduce 라이브러리

* org.apache.hadoop.mapred(옛날버전)

* org.apache.hadoop.mapreduce(새버전)

 

mapreduce가 새로 제공되는 라이브러리이고 mapred는 점진적으로 phase out

이후 모든 예제에서 mapreduce를 사용

 

MapReduce 템플릿 (1)

 

import org.apache.hadoop.mapreduce.*;

 

public static class Reduce extends Reducer<K2, V2, K3, V3>

{

K3 k3 = new K3();

V3 v3 = new V3();

public void reduce(K2 key, lterable<V2> values, Context contes)

{

....

context.write(k3, v3)

}

}

 

 

 

MapReduce 템플릿 (2)

 

public static void main(String[] args) throws Exception

{

Configuration conf=new Conflguration();

Job job = new Job(conf, "wordcount")

// job 인스턴스를 갖고 각종 초기화 작업

...

// 최종적으로 실행 !

job.waitForCompletion(true);

}

 

 

 다음글에서 또만나요~~ ^^

빅데이터공부하기 !!!

WordCount에 대해서 공부할거에요 ^^

37번라인글도 퐈이팅!!

 

 

WordCount 프로그램

 

 가장 기본이 되는 프로그램입니다.

* 하둡 프로그래밍의 Hello World

 

입력으로 주어진 파일에서 단어들별로 빈도수를 카운트

* 단순 tokenization을 하기 때문에 CJK에는 제대로 동작하지 않음

 

WordCount 의사코드

 

Map(key, value)

- value : a line of text

- workflow

* tokenize value

* For each token

emit(token, 1)

 

Reduce(key, list(values))

- key : a word

- values: a list of count (1)

- workflow

* lterate values and sum them up

* emit (key, sum)

 

빅데이터공부하기 37

WordCount 프로그램

이번 빅데이터 공부하기는 예제프로그램을 실행하고 결과를 확인하려합니다.

오늘하루도 힘차게 !! 빅데이터 공부를 시작해볼께요 ^^

 

예제프로그램 실행

 

wordcount를 pseudo모드에서 재실행

 

input디렉토리를 HDFS로 먼저 복사

* bin/hadoop fs-copyFromLocal input /input

* 확인은 bin/hadoop fs-ls/input

 

Hadoop jar 명령실행

* bin/hadoop jar hadoop-examples-1.0.3.jar wordcount/input/README.txt/output/wordcount

 

 

 

 

예제프로그램 실행결과 확인

 

HDFS상의 출력디렉토리 확인

* hadoop fs -ls/output/wordcount

 

HDFS상의 출력파일 내용보기

* hadoop fs -text/output/wordcount/part-r-00000

 

Job Tracker 인터페이스를 통해 확인

http://[YourServer]:50030/

 

Task Tracker 인터페이스를 통해 확인

* http://[YourServer]:50060/

 

 

빅데이터공부하기

 

이번 공부하기는 웹인터페이스 입니다.

 

NameNode 웹인터페이스, JobTracker 웹인터페이스 두가지에대해서 공부할께요.

이번 빅데이터공부하기도 퐈이팅!!!

 

1. NameNode 웹인터페이스

 

 

 

2. JobTracker 웹인터페이스

 

 

여기까지!! 다음 빅데이터 공부에서 또만나요 ^^

 

 

빅데이터공부하기 -- 웹인터페이스

빅데이터공부하기 !!

이번시간도 하둡 Pseudo mode설치에 대해서 공부할거에요 ^^

 

지난글에선 설치를 했고 이번글은 설치확인을 해보겠어요.

 

 

 

설치확인

 

jps 커맨드를 실행하여 다음 5개의 프로세스가 모두 실행중인지 확인

* NameNode, Secondary NameNode, DataNode

* Job Tracker, Task Tracker

 

JT/NN 웹인터페이스 연결

* NameNode: http://[YourServer]:50070/

* Job Tracker: http://[YourServer]:50030/

 

HDFS shell 커맨드 실행

* bin/hadoop fs-ls/

 

+ Recent posts