빅데이터

빅데이터 - 3. 맵리듀스 응용 구축

IT의 큰손 2022. 8. 30. 15:57
728x90

1. 데이터 다운로드

  •  wget을 이용하여 사이트에 있는 receipts.txt 파일을 다운로드 한다.
  • 정상적으로 다운로드를 완료한다.

 

2. RECEIPTS

  • ReceiptsMapper
    • 패키지 Receipts를 받아, import를 한다.
    • Mapper 클래스 인수 : 입력키,입력값,출력키,출력값 타입을 구분
    • Map() 메서드 인수 : 입력키, 입력값,실행되는 작업의 컨텍스트
    • 필드 구분을 위하여 StringTokenizer을 사용.
    • 키(“Summary”)와 합성값(year_delta) 출력
  •  

ReceiptsMapper

  • ReceiptReducer
    • Reducer 클래스 인수 : 입력키,입력값,출력키,출력값
    • Reduce() 메서드 인수 : 입력키,입력값,실행되는 작업의 컨텍스트
    • 합성 값들에서 년도와 delta를 분리하고 delta 값을 Long으로 형 변환하여 최소값을 결정한다.
    • Text 타입의 min(year), FloatWritable 타입의 delta로 출력한다.
  •  

ReceiptsReducer

  • ReceiptsDriver
    • 명령행 인수 개수 확인: 입력 파일, 출력 디렉토리 
    • Job 객체 생성
    • 드라이버, 매퍼, 리듀서 클래스 설정
    • 작업의 출력 키와 값의 타입을 Text와 FloatWritable로 정의 하고, 매퍼와 리듀서가 같은 출력 값의 타입을 사용하지 않으므로 매퍼의 출력 타입 기술
  •  

ReceiptsDriver

  • build.sh
    • HADOOP_HOME 경로설정
    • CLASSPATH 설정
    • Javac 컴파일
    • Jar 컴파일
  •  

build.sh

  • sh build.sh
    • Sudo sh build.sh를 사용
    • 암호 입력
    • Mainfest를 성공적으로 추가
    • 이후 ls를 통한 확인
  •  

sh build.sh

  • 입력파일 복사
    • Hadoop fs –mkdir /Receipts 사용하여 디렉터리를 생성, but 위와같이 오류가 떴다. 그 이유는 safemode가 되있기 때문에 hdfs dfsadmin –safemode leave 명령어를 통해 save mode를 종료 하였다.
    • Input파일까지 생성하고 정상적으로 –ls를 이용하여 확인하였다.
  •  

입력파일 복사

  • Receipts.jar 하둡실행
    • hadoop jar Receipts.jar Receipts.ReceiptsDriver/Receipts/input/receipts.txt /Receipts/output 명령어를 사용하여 이와 같이 정상적으로 실행한다.
  •  

하둡 실행

3. WORD COUNT

  • WordCountMapper
    • HDFS에서 데이터를 읽고 처리
    • InputFormat, InputSplit, RecordReader, InputKey, InputValue 객체 들을 사용
  •  

WordCountMapper

  • WordCountReducer
    • 리듀스 처리 후에 결과를 HDFS에 저장
    • OutputFormat, RecordWriter, OutputKey, OutputValue, OutputCommitter 객체들을 사용
  •  

WordCountReducer

  • WordCountJob
    • Job 과 Configuration 객체를 생성
    • set() 메서드를 사용하여 Configuration 객체의 각 요소들을 정의
    • Try catch문 사용.
  •  

WordCountJob

  • Build.sh
    • HADOOP_HOME 환경변수 설정
    • CLASSPATH 환경변수 설정
    • Javac 컴파일
    • Jar 컴파일
  •  

Build.sh

  • 빌드
    • sh build.sh하여 빌드
  •  

sh build.sh

  • 데이터 복사 및 실행결과
    • Hadoop fs –mkdir을 이용하여 디렉터리를 정상적으로 생성
    • 실행 및 실행결과 확인
  •  

hadoop fs -mkdir
실행결과 1
실행결과 2

 

728x90