일반적으로 GenericOptionsParser를 직접 사용하지 않고 내부적으로 GenericOptionsParser를 사용하는 Tool 인터페이스를 구현하고 ToolRunner를 사용하는게 편리함.
Generic Options -conf <configuration file> specify a configuration file -D <property=value> use value for given property -fs <local|namenode:port> specify a namenode -jt <local|jobtracker:port> specify a job tracker -files <comma separated list of files> specify comma separated files to be copied to the map reduce cluster -libjars <comma separated list of jars> specify comma separated jar files to include in the classpath. -archives <comma separated list of archives> specify comma separated archives to be unarchived on the compute machines.
3. 유닛 테스트 작성하기
매퍼
리듀서
4. 로컬에서 실행하기
로컬 잡 실행하기
Tool 인터페이스를 이용해서 드라이버를 쉽게 개발
Tool 인터페이스를 지원하기 때문에 GenericOptionsParser가 지원하는 옵션들을 설정할 수 있음.
입출력 파일 경로, 매퍼, 리듀서, 컴바이너 클래스, 출력타입 등등
단일 JVM에서 맵리듀스잡을 싱행할 수 있도록 로컬 잡 실행자(runner)를 제공함.
로컬 잡실행자 테스트를 위해 설계되었고매퍼와 리듀서의 코드를 디버거로 단계적으로 실행할 수 있어서 IDE에서 사용하기에 편리함.
MiniDFSCluster, MiniMRCluster의 한쌍의 테스트 클래스를 이용해서 인프로세스 클러스터들을 생성함.
로컬잡 실행자와는 다르게 전체 HDFS와 맵리듀스 장치를 테스트 할 수 있음.
미니-클러스터의 태스크트래커는 태스크를 실행하기 위하여 별도의 JVM을 제공하는데 디버깅하기 힘들수 있음.
자동화 테스트 클래스에서 사용에서 광범위하게 사용됨.
ClusterMapReduceTestCase 추상 클래스 유용한 테스트 기반 제공.
5. 클러스터에서 실행하기
패키징
클러스터 배포를 위해 프로그램을 수정할 필요 없으나 jar로 패키징 필요
manifest에 main클래스를 지정하지 않으면, 명령행에서 지정해야 함.
잡 배포하기
-conf(-fs,-jt) 옵션을 사용하여 특정 클러스터를 지정함으로써 해당 드라이버 실행 필요 있음
맵리듀스 웹 UI
-conf(-fs,-jt) 옵션을 사용하여 특정 클러스터를 지정함으로써 해당 드라이버 실행 필요 있음
6. 잡 튜닝하기
7. 맵리듀스 작업 흐름
데이터 처리가 복잡해지면 일반적으로 더욱 복잡한 맵과 리듀스 함수를을 만들기보다는, 더 많이 맵릳휴스 잡을 수행하여 복잡성을 해결하는 것이 좋음