2017년 10월 27일 금요일

AWS EMR에서 custom MR Job 돌리기

참고 사이트
http://www.thecloudavenue.com/2013/12/CustomMRExecutionWithAmazonEMR.html

Master 노드에 SSH로 접속하기

http://modoleesi.blogspot.kr/2017/10/aws-emrelastic-mapreduce.html
참고해서 먼저 SSH에 접속할 수 있는 환경을 만든다.
그리고 아래 명령어로 master 노드에 접속한다. (계정명은 hadoop)

ssh -i ~/<your_access_key>.pem hadoop@ec2-000-000-000-000.region.compute.amazonaws.com

필요한 파일들 복사하기

로컬PC에서 컴파일한 jar와 input 파일들을 옮겨야 한다.
scp -i ~/<your_access_key>.pem <복사를 원하는 원본 파일의 경로> hadoop@ec2-000-000-000-000.region.compute.amazonaws.com:/home/hadoop/<복사 목적지 경로>

HDFS를 저장소로 이용해서 Shell에서 실행

로컬에서 실행하는 것도 동일하게 실행하면 된다.
hadoop jar wordcount-demo-1.0-SNAPSHOT.jar WordCountJob input output 

S3에 파일 업로드

Shell에서 업로드

S3를 HDFS 처럼 사용할 수 있다.
hadoop fs -put input s3://mybucket/directory

AWS 콘솔에서 업로드

S3 콘솔에 접속해서 그냥 파일 첨부 형식으로 업로드 하면 된다.

S3를 저장소로 이용해서 실행

Shell에서 실행

hadoop jar wordcount-demo-1.0-SNAPSHOT.jar WordCountJob s3://mybucket/directory/input s3://mybucket/directory/output 

AWS 콘솔에서 실행

클러스터 정보에 들어가서 단계(Step) 탭에 들어가면 단계 추가(Add Step)이 있다.
그걸 누르면 위 처럼 입력할 수 있는 창이 뜨는데 여기에 맞춰서 넣어주면 된다.
단계 유형(Step type) : Custom JAR
이름 (Name) : 원하는 이름으로
JAR 위치 (JAR S3 location) : S3에 올려놓은 jar 파일 위치
인수(Arguments) : MainClass명 인수들... (입력 출력 위치 등등...)
실패 시 작업(Action on failure) : '계속'으로 되어 있는데, 그냥 job 실패하면 '취소 및 대기' 하는게 더 나아 보인다.

다 채운 후 추가(Add)를 누르면 Job이 추가되고 상태가 나온다.

댓글 없음:

댓글 쓰기