2013-01-17 2 views
0

Hadoop 설명서에는 -file option을 사용하여 파일을 로컬에서 사용할 수 있다고 나와 있습니다.Elastic MapReduce에서 로컬로 파일을 만들 수 있습니다.

Elastic MapReduce Ruby CLI을 사용하면 어떻게 할 수 있습니까?

+0

는 당신이 더 구체적 일 수 있습니다 당신이 뭘 하려는지? 로컬로 파일을 사용할 수있게하려면 무엇이 필요합니까? –

+0

@CharlesMenguy :지도/축소 작업을 로컬로 수행합니다. Hadoop을 사용하면 Hadoop을 호출 한 위치에서 해당 파일을 가져 와서지도/축소 작업에 자동으로 사용할 수 있습니다. –

답변

0

EMR을 사용하여 DistributedCache을 사용할 수 있습니다. 이것은 다음과 같은 옵션을 사용하여 수행 할 수 있습니다 루비 클라이언트와

:

`--cache <path_to_file_being_cached#name_in_current_working_dir>` 

그것은 DistributedCache에서 하나의 파일을 저장합니다. 이 파일을 사용하면 파일의 위치 (s3n 또는 hdfs)와 그 응용 프로그램의 현재 작업 디렉토리에서 참조 된 이름을 지정할 수 있으며 mapred.local.dir으로 식별되는 디렉토리의 작업 노드에 파일을 로컬로 배치합니다 (필자 생각).

그러면 Mapper/Reducer 작업의 파일에 쉽게 액세스 할 수 있습니다. 정상적인 파일처럼 직접 액세스 할 수 있다고 생각하지만 setup 작업에서 DistributedCache.getLocalCacheFiles(job);과 같은 작업을 수행해야 할 수 있습니다.

아마존의 포럼에서 가져온 루비 클라이언트에서이 작업을 수행하는 예

:

./elastic-mapreduce --create --stream --input s3n://your_bucket/wordcount/input --output s3n://your_bucket/wordcount/output --mapper s3n://your_bucket/wordcount/wordSplitter.py --reducer aggregate --cache s3n://your_bucket/wordcount/stop-word-list#stop-word-list 
관련 문제