aws emr群集流式处理步骤:错误请求

hts6caw3  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(309)

我试图建立一个平凡的电子病历工作,执行大量的文本文件,存储在内存字计数 s3://__mybucket__/input/ . 我无法正确添加两个必需的流式处理步骤中的第一个(第一个是Map输入到 wordSplitter.py ,用 IdentityReducer 临时储存;第二步是使用 /bin/wc/ ,并用 IdentityReducer 再一次)。
这是第一步的(失败)描述:

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

这是发送到hadoop群集的命令:

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/
quhf5bfb

quhf5bfb1#

我认为这里的解决办法可能很简单。
而不是 s3:// 使用 s3a:// 作为你的工作的一个计划,访问bucket。看这里,那个 s3:// scheme已被弃用,它要求有问题的bucket对hadoop数据是独占的。引用上述文档链接:
此文件系统要求为文件系统指定一个存储桶—不应使用包含文件的现有存储桶,也不应将其他文件写入同一个存储桶。这个文件系统存储的文件可以大于5gb,但它们不能与其他s3工具互操作。

相关问题