2013-12-18 7 views
0

mrjob을 사용하여 Amazon EMR 작업을 만들었습니다. 내 맵리 듀스 작업은 내가 쉽게 분석하고있어 아파치 로그, 내가 여러 맵리 듀스 작업 사이에 공유되는 상속 클래스의 내 분석을 위해 공통의 헬퍼 클래스에서 상속, 그래서 이것은 내 파일 구조입니다 :mrjob - 소스 디렉토리의 자동 타르

__init__.py 
count_ip.py (mapreduce job) 
common/apache.py (base class count_ip.py inherits from) 

I 내 로컬 컴퓨터에서 내 전체 src 디렉토리를 자동으로 tar 처리하고 mrjob을 Amazon EMR에 업로드하도록합니다. 현재 공통 디렉토리 인 common.tar.gz가있는 tar 파일이 있습니다. 이 타르는 mrjob.conf의 파이썬 패키지에 추가했습니다. 제대로 작동합니다. common.tar.gz 파일을 자동으로 생성하고 mrjob을 지원합니다. 그렇지 않은 경우, 어떤 옵션이 있습니까?

답변

0

저는 지난 몇 개월 동안 만 해왔 던 슈퍼 mrjobber가 아니지만 파이썬의 표준 tarfile 패키지를 사용하여이 작업을 수행합니다.

def tar_and_gzip(roots, filename): 
    """ 
    Tars all files starting from roots provided and gzips result 
    """ 
    with tarfile.open(filename, 'w:gz') as tarball: 
     for root in roots: 
      tarball.add(root, arcname=basename(root)) 

작업을 실행하기 전에이 작업을 별도로 실행하거나이 작업을 수행하는 스크립트를 작성할 수 있습니다.