나는 HDFS 내에서 특정 레이아웃을 필요로하는 Hadoop 프로그램을 작성했으며 이후에 HDFS에서 파일을 가져와야합니다. 그것은 단일 노드 Hadoop 설정에서 작동하며 Elastic MapReduce 내의 노드 중 10 개에서 작동하도록하고 싶습니다. 내가 해왔 무엇Elastic MapReduce HDFS에서 데이터 가져 오기 및 나가기
이 같은 것입니다 :
./elastic-mapreduce --create --alive
JOBID="j-XXX" # output from creation
./elastic-mapreduce -j $JOBID --ssh "hadoop fs -cp s3://bucket-id/XXX /XXX"
./elastic-mapreduce -j $JOBID --jar s3://bucket-id/jars/hdeploy.jar --main-class com.ranjan.HadoopMain --arg /XXX
이 비동기이지만, 작업의 완료 때, 나는 그래서이
./elastic-mapreduce -j $JOBID --ssh "hadoop fs -cp /XXX s3://bucket-id/XXX-output"
./elastic-mapreduce -j $JOBID --terminate
을 할 수있는이 정렬의 동안가 작동하지만, 내가보기 싫은 clunky. 이것을하는 더 깨끗한 방법이 있습니까?
감사합니다.
: 탄성 맵리 듀스 -j $ JOB_ID --jar S3 : //elasticmapreduce/libs/script-runner/script-runner.jar를 - -args "$는 {S3_BUCKET} /scripts/copy_to_hdfs.sh는 ..."이 copy_to_hdfs.sh가하는 떠들썩한 파티 스크립트입니다 : 하둡 FS의 -cp는 [...] 제어 흐름은 여전히 조금 보인다 복잡한 일이지만 무인으로 실행할 수 있습니다. – rongenre