Uber demo 프로그램
1. 기능
이 프로그램은 지역과 날짜별로 운행한 vehicle의 개수와 서비스횟수를 받아서
그것을 지역과 요일별로 묶어서 vehicle과 서비스횟수의 합을 구하는 기능을 한다.
2. uber.dat ( input 데이터 )
다음은 hdfs 의 input 폴더 안에 들어갈 텍스트 데이터이고, 한줄씩 Map의 input으로 전달된다.
Base number,Date,Active vehicles,Trip
Base number (지역번호)
Date (날짜)
Active vehicles (운행한 자동차의 갯수)
trips (서비스 횟수)
위와 같은 형식으로 작성되어 있다.
예를들어,
B02512,1/1/2018,190,1132 이면
-> Base number : B02512 , Date : 1/1/2018 , Active vehicles : 190, Trips : 1132 이다.
B02765,1/1/2015,225,1765 ... |
3. output.dat ( output 데이터 )
hdfs 의 uberoutput 폴더 하위에 생성될 출력파일이다.
지역번호,요일 서비스횟수,운행한 자동차의 갯수
B02512,MON 1922,122 |
4. Map
Base number,Date,Active vehicles,Trip
1) input 텍스트를 Tokenizer로 자른다.
2) Date(날짜) 의 요일을 구한다.
3) Base number(지역번호) 와 요일을 string으로 묶어서 key로 지정한다. (Base number + "," + "요일")
3) Active vehicles와 Trip을 string으로 묶어서 value로 지정한다. (Trip + "," + "Active vehicles")
5. shuffle (Hadoop engine 에서 자동으로 수행 - 직접 작성하지 않음)
(key, value) -> (장르, 1,1,1,1,1)
위와 같이 장르를 key값으로 하고 같은 장르를 가진 value 들을 모두 1로 한 entity 가 생성되고
이 entitiy들이 Reduce의 input으로 전달된다.
6. Reduce
Reduce 의 input 으로 들어온 key (장르) 는 그대로 output의 key로 설정하고
value인 1을 모두 더해서 그 합을 output의 value로 설정하여 write한다.
7. 소스코드
'개발 > Hadoop' 카테고리의 다른 글
MapSideJoin - 분산 캐쉬 Distributed Cache (0) | 2021.06.10 |
---|---|
[ Hadoop : 하둡 ] IMDb demo 프로그램 ② - MapReduce 작성 (1) | 2021.05.24 |
[ Hadoop : 하둡 ] IMDb demo 프로그램 ① - MapReduce 작성 (0) | 2021.05.08 |