MapReduce
예제로 설명해 봅시다
Example: 기상 데이터셋
●출처: www.ncdc.noaa.gov
●반 구조적이고 레코드 지향적인 데이타 분석 포맷STATION DATE EVAP MDEV MXPN MNPN DAEV SN32 SN03 SN02 SN33 SX33 SX32 SX03 SX02
DWPR DAPR SNWD MDPR DASF PRCP MDSF SNOW ACSH ACMH TSUN PSUN TMIN TOBS DATX
DATN TMAX MDTX MDTN WESD FRGT GAHT WESF FMTM WDFM WDFG AWND WSF2 WSF5 WSF1
WSFG WSFM WDMV MDWM DAWM PGTM WDF5 WDF2 WDF1 WV20 WV18 WV03 WV01 WT18
WT19 WT14 WT15 WT16 WT17 WT22 WT21 WT05 WT06 WT03 WT04 WT09 WT07 WT08 WT13 WT12
WT11 WT10 WT02 WT01 ----------------- -------- -------- -------- -------- -------- -------- -------- -------- -------- ------
-- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- ---
----- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- --------
-------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- ------
-- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- ---
----- -------- -------- -------- -------- -------- GHCND:USC00083322 20000101 10 9999 9999 9999 9999 139
9999 9999 139 156 161 9999 9999 9999 9999 0 9999 9999 0 9999 0 9999 9999 9999 9999 89 200 9999
9999 228 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999
9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999
9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999
9999는 해당 데이타가
누락되었단 의미에요
이런 ASCII data를 받아서 처리하려면?
●간단한 프로그램 짜면 되죠
o언어야 뭐든지 상관없고요
o이런 논리로 짜면 되겠죠?
 읽는다
 필요한 데이터 추출한다
 닫는다
 위의 과정을 모든 데이터에 대해 반복한다.
UNIX도구 이용, 매년 제일 높았던 지구
기온 찾기
awk기반 데이터 분석 스크립트 수행 결과
●모든 데이타 파일을 찾아 읽어서 처리한다
●20세기 데이타 전체 수행하는데 EC2고성능 CPU XL instance
에서 42분 걸렸다
●그런데 이게 최선입니까? 확실해요?
몇가지 개선점을 생각해봅시다
●병렬로 하면 좀 나아지긴 할건데요,
o연도별 파일 크기가 달라져서 동일한 크기로 일을 나누기가
쉽진 않네요
o각각의 프로세스의 처리 결과를 합산하는 시간은 얼마나 또
걸릴까요?
o단일 서버의 처리 능력은 한계가 있어요. 분산해서 처리해
도 이거 관리 하는 일이 복잡하죠
MapReduce개념을 좀 넣어 봅시다.
Map / Reduce
●크게 Map / Reduce로 단계를 나눠서 처리합니다.
o각 단계는 입력과 출력으로써 Key / Value 쌍을 가지고 있
고, 타입은 프로그래머 마음대로
oMap / Reduce 함수는 프로그래머가 직접 작성합니다
●Map단계
o입력: NDDC 원본 데이터
 키: 이 텍스트 파일에서 몇번째 라인인지 나타내는
Offset
 값:연도와 기온데이타를 추출
0067011990999991950051507004+68750+023550FM-12+038299999V0203301N00671220001CN9999999N9+00001+99999999999
0043011990999991950051512004+68750+023550FM-12+038299999V0203201N00671220001CN9999999N9+00221+99999999999
0043011990999991950051518004+68750+023550FM-12+038299999V0203201N00261220001CN9999999N9-00111+99999999999
0043012650999991949032412004+62300+010750FM-12+048599999V0202701N00461220001CN0500001N9+01111+99999999999
0043012650999991949032418004+62300+010750FM -12+048599999V0202701N00461220001CN0500001N9+00781+99999999999
............................
............................
Key / Value 로 Map함수에 입력되는 것
( 0, 0067011990999991950051507004+68750+023550FM-
12+038299999V0203301N00671220001CN9999999N9+00001+99999999999 )
(106, 0043011990999991950051512004+68750+023550FM-
12+038299999V0203201N00671220001CN9999999N9+00221+99999999999 )
(212, 0043011990999991950051518004+68750+023550FM-12+038299999V0203201N00261220001CN9999999N9-
00111+99999999999 )
(318, 0043012650999991949032412004+62300+010750FM-
12+048599999V0202701N00461220001CN0500001N9+01111+99999999999 )
(424, 0043012650999991949032418004+62300+010750FM -
12+048599999V0202701N00461220001CN0500001N9+00781+99999999999 )
..........................
..........................
Map함수가 동작하면...
Map함수 출력
( 1950, 0 )
( 1950, 22)
( 1950, -11)
( 1949, 111)
( 1949, 78 )
..
.
.......
단순히 연도와 기온을 추출하고 이걸
출력합니다.
이제 Reduce함수에 맞게 입력데이타를
만듭니다
●Key를 중심으로
●Key / Value 쌍들을 정렬하고 그룹을 만든다.
●그래서 만든 데이타는 이렇게 된다. 이것을 Reduce함수에 집
어 넣습니다.
( 1949, [111, 78]
( 1950, [0, 22, -11] )
........
.......
Reduce함수가 하는 일
각 Key안에 있는 list를 sorting합니다.
( 1949, 111 )
( 1950, 22 )
........
.......
딱 보니 Pattern이 보이네요
이런 식으로 정리하는 거죠
1.많은 데이터에서 내가 필요한 데이터가 뭔지 정의하죠
2.이 데이터에서 Key / Value로 데이터를 정리합니다.
1.이 Key는 마지막 단계까지 쓰게 됩니다.
3.정리된 데이터를 정렬합니다.
4.정렬된 데이터를 순환하면서 원하는 데이타를 뽑아낸다.
UNIX pipeline으로 정리해 보면 이런 식이네요.
Hadoop을 이용해서는 어떻게 할까요?
Hadoop 적용 코드: mapper
import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.MapReduceBase;
import org.apache.hadoop.mapred.Mapper;
import org.apache.hadoop.mapred.OutputCollector;
import org.apache.hadoop.mapred.Reporter;
Hadoop 적용 코드: mapper
public class MaxTemperatureMapper extends MapReduceBase
implements Mapper {
private static final int MISSING = 9999;
public void map(LongWritable key, Text value,
OutputCollector output, Reporter reporter)
throws IOException {
String line = value.toString();
String year = line.substring(15, 19);
int airTemperature;
if (line.charAt(87) == '+') { // parseInt doesn't like leading plus signs
airTemperature = Integer.parseInt(line.substring(88, 92));
} else {
airTemperature = Integer.parseInt(line.substring(87, 92));
}
String quality = line.substring(92, 93);
if (airTemperature != MISSING && quality.matches("[01459]")) {
output.collect(new Text(year), new IntWritable(airTemperature)); }
}
Hadoop 적용 코드: mapper
String quality = line.substring(92, 93);
if (airTemperature != MISSING && quality.matches("[01459]")) {
output.collect(new Text(year), new IntWritable(airTemperature));
}
}
}
Hadoop적용코드: Reducer
import java.io.IOException;
import java.util.Iterator;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.MapReduceBase;
import org.apache.hadoop.mapred.OutputCollector;
import org.apache.hadoop.mapred.Reducer;
import org.apache.hadoop.mapred.Reporter;
Hadoop적용코드: Reducer
public class MaxTemperatureReducer extends MapReduceBase
implements Reducer {
public void reduce(Text key, Iterator values,
OutputCollector output, Reporter reporter)
throws IOException {
int maxValue = Integer.MIN_VALUE;
while (values.hasNext()) {
maxValue = Math.max(maxValue, values.next().get());
}
output.collect(key, new IntWritable(maxValue));
}
}
Hadoop적용코드: Hadoop Job code
import java.io.IOException;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.FileInputFormat;
import org.apache.hadoop.mapred.FileOutputFormat;
import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;
Hadoop적용코드: Hadoop Job code
public class MaxTemperature {
public static void main(String[] args) throws IOException {
if (args.length != 2) {
System.err.println("Usage: MaxTemperature ");
System.exit(-1);
}
Hadoop적용코드: Hadoop Job code
JobConf conf = new JobConf(MaxTemperature.class);
conf.setJobName("Max temperature");
FileInputFormat.addInputPath(conf, new Path(args[0]));
FileOutputFormat.setOutputPath(conf, new Path(args[1]));
conf.setMapperClass(MaxTemperatureMapper.class);
conf.setReducerClass(MaxTemperatureReducer.class);
conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(IntWritable.class);
JobClient.runJob(conf);
}
실제 JAVA code를 읽어보면...
●기본적으로 Hadoop에서 Map함수, Reduce함수는 사용자가
작성하는 거다.
●세가지는 코드를 작성해야 한다.
oMap함수
oReduce함수
o구동 코드
 JobConf: 어떻게 Job을 수행할지 결정해주는 객체
 hadoop cluster에서는 소스코드를 JAR파일로 묶어야
하고 Hadoop이 Cluster에 JAR를 배치하게 해준다.
자세한 코드는
여기를 참조하세요.
http://answers.oreilly.com/topic/455-get-started-analyzing-data-
with-hadoop/

More Related Content

PDF
하둡 맵리듀스 훑어보기
PPTX
introduce of Hadoop map reduce
PPTX
Spark 소개 1부
PDF
[빅데이터 컨퍼런스 전희원]
PDF
Mapreduce tuning
PDF
Spark 소개 2부
PDF
Hadoop 제주대
PPT
Hadoop Introduction (1.0)
하둡 맵리듀스 훑어보기
introduce of Hadoop map reduce
Spark 소개 1부
[빅데이터 컨퍼런스 전희원]
Mapreduce tuning
Spark 소개 2부
Hadoop 제주대
Hadoop Introduction (1.0)

What's hot (20)

PDF
Java 초보자를 위한 hadoop 설정
PPTX
5일차.map reduce 활용
PDF
Spark은 왜 이렇게 유명해지고 있을까?
PDF
[Pgday.Seoul 2018] Greenplum의 노드 분산 설계
PPTX
Druid+superset
PPTX
하둡 타입과 포맷
PDF
Hadoop overview
PDF
하둡 좋은약이지만 만병통치약은 아니다
PDF
하둡완벽가이드 Ch6. 맵리듀스 작동 방법
KEY
Distributed Programming Framework, hadoop
PDF
Apache sqoop
PPTX
하둡 설치(의사분산모드)
PDF
서울 하둡 사용자 모임 발표자료
PDF
Tajo TPC-H Benchmark Test on AWS
PDF
HDFS Overview
PPTX
20140522 uc집계 정민철_발표자료_최종
PDF
Spark_Overview_qna
PDF
hadoop ch1
PDF
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
PDF
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
Java 초보자를 위한 hadoop 설정
5일차.map reduce 활용
Spark은 왜 이렇게 유명해지고 있을까?
[Pgday.Seoul 2018] Greenplum의 노드 분산 설계
Druid+superset
하둡 타입과 포맷
Hadoop overview
하둡 좋은약이지만 만병통치약은 아니다
하둡완벽가이드 Ch6. 맵리듀스 작동 방법
Distributed Programming Framework, hadoop
Apache sqoop
하둡 설치(의사분산모드)
서울 하둡 사용자 모임 발표자료
Tajo TPC-H Benchmark Test on AWS
HDFS Overview
20140522 uc집계 정민철_발표자료_최종
Spark_Overview_qna
hadoop ch1
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
Ad

Similar to Map reduce 기본 설명 (20)

PPTX
An introduction to hadoop
PDF
weather-data-processing-using-python
PDF
Spark Day 2017@Seoul(Spark Bootcamp)
PPT
구글의 분산데이터 처리
PDF
빅데이터, big data
DOCX
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
PPTX
하둡 에코시스템 위에서 환상적인 테이크오프 - DSTS 2019
PPTX
about hadoop yes
PPT
Google 4
PDF
7가지 동시성 모델 람다아키텍처
PDF
3 빅데이터기반비정형데이터의실시간처리방법 원종석
PDF
빅데이터분석실습 농산물중급분야 V0.9
PDF
Partner Story(Megazone): 금융사 실전 프로젝트 DeepDive
PDF
Real-time Big Data Analytics Practice with Unstructured Data
PDF
Bog data 설명
PDF
Mapreduce introduction
PDF
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
PDF
Hadoop발표자료
PDF
[기상 정보학] 지상 관측 자료 (아스키 파일)를 이용하여 NetCDF 변환한 후 시계열 그래프 그리기 그리고 GPCP 강우강도 자료를 이...
PDF
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
An introduction to hadoop
weather-data-processing-using-python
Spark Day 2017@Seoul(Spark Bootcamp)
구글의 분산데이터 처리
빅데이터, big data
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
하둡 에코시스템 위에서 환상적인 테이크오프 - DSTS 2019
about hadoop yes
Google 4
7가지 동시성 모델 람다아키텍처
3 빅데이터기반비정형데이터의실시간처리방법 원종석
빅데이터분석실습 농산물중급분야 V0.9
Partner Story(Megazone): 금융사 실전 프로젝트 DeepDive
Real-time Big Data Analytics Practice with Unstructured Data
Bog data 설명
Mapreduce introduction
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
Hadoop발표자료
[기상 정보학] 지상 관측 자료 (아스키 파일)를 이용하여 NetCDF 변환한 후 시계열 그래프 그리기 그리고 GPCP 강우강도 자료를 이...
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Ad

Map reduce 기본 설명

  • 2. Example: 기상 데이터셋 ●출처: www.ncdc.noaa.gov ●반 구조적이고 레코드 지향적인 데이타 분석 포맷STATION DATE EVAP MDEV MXPN MNPN DAEV SN32 SN03 SN02 SN33 SX33 SX32 SX03 SX02 DWPR DAPR SNWD MDPR DASF PRCP MDSF SNOW ACSH ACMH TSUN PSUN TMIN TOBS DATX DATN TMAX MDTX MDTN WESD FRGT GAHT WESF FMTM WDFM WDFG AWND WSF2 WSF5 WSF1 WSFG WSFM WDMV MDWM DAWM PGTM WDF5 WDF2 WDF1 WV20 WV18 WV03 WV01 WT18 WT19 WT14 WT15 WT16 WT17 WT22 WT21 WT05 WT06 WT03 WT04 WT09 WT07 WT08 WT13 WT12 WT11 WT10 WT02 WT01 ----------------- -------- -------- -------- -------- -------- -------- -------- -------- -------- ------ -- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- --- ----- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- ------ -- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- --- ----- -------- -------- -------- -------- -------- GHCND:USC00083322 20000101 10 9999 9999 9999 9999 139 9999 9999 139 156 161 9999 9999 9999 9999 0 9999 9999 0 9999 0 9999 9999 9999 9999 89 200 9999 9999 228 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999는 해당 데이타가 누락되었단 의미에요
  • 3. 이런 ASCII data를 받아서 처리하려면? ●간단한 프로그램 짜면 되죠 o언어야 뭐든지 상관없고요 o이런 논리로 짜면 되겠죠?  읽는다  필요한 데이터 추출한다  닫는다  위의 과정을 모든 데이터에 대해 반복한다.
  • 4. UNIX도구 이용, 매년 제일 높았던 지구 기온 찾기 awk기반 데이터 분석 스크립트 수행 결과 ●모든 데이타 파일을 찾아 읽어서 처리한다 ●20세기 데이타 전체 수행하는데 EC2고성능 CPU XL instance 에서 42분 걸렸다 ●그런데 이게 최선입니까? 확실해요?
  • 5. 몇가지 개선점을 생각해봅시다 ●병렬로 하면 좀 나아지긴 할건데요, o연도별 파일 크기가 달라져서 동일한 크기로 일을 나누기가 쉽진 않네요 o각각의 프로세스의 처리 결과를 합산하는 시간은 얼마나 또 걸릴까요? o단일 서버의 처리 능력은 한계가 있어요. 분산해서 처리해 도 이거 관리 하는 일이 복잡하죠
  • 7. Map / Reduce ●크게 Map / Reduce로 단계를 나눠서 처리합니다. o각 단계는 입력과 출력으로써 Key / Value 쌍을 가지고 있 고, 타입은 프로그래머 마음대로 oMap / Reduce 함수는 프로그래머가 직접 작성합니다 ●Map단계 o입력: NDDC 원본 데이터  키: 이 텍스트 파일에서 몇번째 라인인지 나타내는 Offset  값:연도와 기온데이타를 추출
  • 9. Key / Value 로 Map함수에 입력되는 것 ( 0, 0067011990999991950051507004+68750+023550FM- 12+038299999V0203301N00671220001CN9999999N9+00001+99999999999 ) (106, 0043011990999991950051512004+68750+023550FM- 12+038299999V0203201N00671220001CN9999999N9+00221+99999999999 ) (212, 0043011990999991950051518004+68750+023550FM-12+038299999V0203201N00261220001CN9999999N9- 00111+99999999999 ) (318, 0043012650999991949032412004+62300+010750FM- 12+048599999V0202701N00461220001CN0500001N9+01111+99999999999 ) (424, 0043012650999991949032418004+62300+010750FM - 12+048599999V0202701N00461220001CN0500001N9+00781+99999999999 ) .......................... ..........................
  • 11. Map함수 출력 ( 1950, 0 ) ( 1950, 22) ( 1950, -11) ( 1949, 111) ( 1949, 78 ) .. . ....... 단순히 연도와 기온을 추출하고 이걸 출력합니다.
  • 12. 이제 Reduce함수에 맞게 입력데이타를 만듭니다 ●Key를 중심으로 ●Key / Value 쌍들을 정렬하고 그룹을 만든다. ●그래서 만든 데이타는 이렇게 된다. 이것을 Reduce함수에 집 어 넣습니다. ( 1949, [111, 78] ( 1950, [0, 22, -11] ) ........ .......
  • 13. Reduce함수가 하는 일 각 Key안에 있는 list를 sorting합니다. ( 1949, 111 ) ( 1950, 22 ) ........ .......
  • 14. 딱 보니 Pattern이 보이네요 이런 식으로 정리하는 거죠 1.많은 데이터에서 내가 필요한 데이터가 뭔지 정의하죠 2.이 데이터에서 Key / Value로 데이터를 정리합니다. 1.이 Key는 마지막 단계까지 쓰게 됩니다. 3.정리된 데이터를 정렬합니다. 4.정렬된 데이터를 순환하면서 원하는 데이타를 뽑아낸다.
  • 15. UNIX pipeline으로 정리해 보면 이런 식이네요.
  • 17. Hadoop 적용 코드: mapper import java.io.IOException; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapred.MapReduceBase; import org.apache.hadoop.mapred.Mapper; import org.apache.hadoop.mapred.OutputCollector; import org.apache.hadoop.mapred.Reporter;
  • 18. Hadoop 적용 코드: mapper public class MaxTemperatureMapper extends MapReduceBase implements Mapper { private static final int MISSING = 9999; public void map(LongWritable key, Text value, OutputCollector output, Reporter reporter) throws IOException { String line = value.toString(); String year = line.substring(15, 19); int airTemperature; if (line.charAt(87) == '+') { // parseInt doesn't like leading plus signs airTemperature = Integer.parseInt(line.substring(88, 92)); } else { airTemperature = Integer.parseInt(line.substring(87, 92)); } String quality = line.substring(92, 93); if (airTemperature != MISSING && quality.matches("[01459]")) { output.collect(new Text(year), new IntWritable(airTemperature)); } }
  • 19. Hadoop 적용 코드: mapper String quality = line.substring(92, 93); if (airTemperature != MISSING && quality.matches("[01459]")) { output.collect(new Text(year), new IntWritable(airTemperature)); } } }
  • 20. Hadoop적용코드: Reducer import java.io.IOException; import java.util.Iterator; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapred.MapReduceBase; import org.apache.hadoop.mapred.OutputCollector; import org.apache.hadoop.mapred.Reducer; import org.apache.hadoop.mapred.Reporter;
  • 21. Hadoop적용코드: Reducer public class MaxTemperatureReducer extends MapReduceBase implements Reducer { public void reduce(Text key, Iterator values, OutputCollector output, Reporter reporter) throws IOException { int maxValue = Integer.MIN_VALUE; while (values.hasNext()) { maxValue = Math.max(maxValue, values.next().get()); } output.collect(key, new IntWritable(maxValue)); } }
  • 22. Hadoop적용코드: Hadoop Job code import java.io.IOException; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapred.FileInputFormat; import org.apache.hadoop.mapred.FileOutputFormat; import org.apache.hadoop.mapred.JobClient; import org.apache.hadoop.mapred.JobConf;
  • 23. Hadoop적용코드: Hadoop Job code public class MaxTemperature { public static void main(String[] args) throws IOException { if (args.length != 2) { System.err.println("Usage: MaxTemperature "); System.exit(-1); }
  • 24. Hadoop적용코드: Hadoop Job code JobConf conf = new JobConf(MaxTemperature.class); conf.setJobName("Max temperature"); FileInputFormat.addInputPath(conf, new Path(args[0])); FileOutputFormat.setOutputPath(conf, new Path(args[1])); conf.setMapperClass(MaxTemperatureMapper.class); conf.setReducerClass(MaxTemperatureReducer.class); conf.setOutputKeyClass(Text.class); conf.setOutputValueClass(IntWritable.class); JobClient.runJob(conf); }
  • 25. 실제 JAVA code를 읽어보면... ●기본적으로 Hadoop에서 Map함수, Reduce함수는 사용자가 작성하는 거다. ●세가지는 코드를 작성해야 한다. oMap함수 oReduce함수 o구동 코드  JobConf: 어떻게 Job을 수행할지 결정해주는 객체  hadoop cluster에서는 소스코드를 JAR파일로 묶어야 하고 Hadoop이 Cluster에 JAR를 배치하게 해준다.

Editor's Notes

  • #2: MapReduce자체에 대한 궁금증이 원래 많았다.  Hadoop도 중요하지만 그 기반이 된 MapReduce에 대해 알아야 뭘 해도 할 것이다라는 생각에 이
  • #3: 이 예제는 'Hadoop 완벽가이드'에 있는 것을 이용 NCDC의 기상 데이터 셋을 읽어 처리하는 예제 NCDC에 들어가 보면 그 데이타의 거대함에 멍.. 해진다.  몇개받아보고 깜짝 놀람. 
  • #4: 이런 대량 데이타도 예전 같으면 일일이 잃고 처리하고 하게 해 줘야 한다. 
  • #5: AWK로 이걸 하는 스크립트를 만들어 본 결과 쓸만한겨? 
  • #6: 기본적인 병렬처리는 일을 나눠서 여럿이 하고 이를 모아서 처리하는 구조å
  • #7: 이것을 MapReduce방식으로 문제를 바꿔봅시다. 
  • #9: 읽어보면 이런 식으로 들어가 있습니다. 복잡하긴 합니다만...
  • #10: 연도 / 오
  • #12: 필요한 데이타를 뽑아보면 이렇습니다.
  • #16: cat은 출력하는 unix command