s3://__mybucket__/input/
에 저장된 방대한 텍스트 파일의 단어 계산을 수행하는 간단한 EMR 작업을 설정하려고합니다. 두 가지 필수 스트리밍 단계 중 첫 번째를 올바르게 추가 할 수 없습니다. 첫 번째 입력은 wordSplitter.py
으로, IdentityReducer
은 임시 저장으로, 두 번째 단계는 /bin/wc/
을 사용하여이 보조 저장 공간의 내용을 매핑하고 IdentityReducer
으로 줄입니다. 다시).AWS EMR 클러스터 스트리밍 단계 : 잘못된 요청
Status:FAILED
Reason:S3 Service Error.
Log File:s3://aws-logs-209733341386-us-east-1/elasticmapreduce/j-2XC5AT2ZP48FJ/steps/s-1SML7U7CXRDT5/stderr.gz
Details:Exception in thread "main" com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: Bad Request (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request; Request ID: 7799087FCAE73457), S3 Extended Request ID: nQYTtW93TXvi1G8U4LLj73V1xyruzre+uSt4KN1zwuIQpwDwa+J8IujOeQMpV5vRHmbuKZLasgs=
JAR location: command-runner.jar
Main class: None
Arguments: hadoop-streaming -files s3://elasticmapreduce/samples/wordcount/wordSplitter.py -mapper wordSplitter.py -reducer org.apache.hadoop.mapred.lib.IdentityReducer -input s3://__mybucket__/input/ -output s3://__mybucket__/output/
Action on failure: Continue
이것은 하둡 클러스터에 전송되는 명령은 다음과 같습니다 :
이
는 첫 번째 단계의 (실패)에 대한 설명입니다JAR location : command-runner.jar
Main class : None
Arguments : hadoop-streaming -mapper s3a://elasticmapreduce/samples/wordcount/wordSplitter.py -reducer aggregate -input s3a://__my_bucket__/input/ -output s3a://__my_bucket__/output/
동일한 오류가 발생했습니다. 잘못된 요청 (서비스 : Amazon S3, 상태 코드 : 400, 오류 코드 : 400 잘못된 요청, 요청 ID : 4C4C5B2DBA095F5C' – Skyler
@Skyler hmm 당신이 distcp를 통해 HDFS에 파일을 복사 할 수 있습니까? –
그게 뭔지 전혀 모르겠습니다 .Hadoop과 직접 인터페이스하지 않습니다. AWS 콘솔을 사용하고 있습니다. – Skyler