gpt4 book ai didi

java - 在使用存储在 amazon s3 上的数据运行 Map reduce WordCount 作业时需要帮助

转载 作者:可可西里 更新时间:2023-11-01 14:25:46 31 4
gpt4 key购买 nike

我正在尝试对存储在 Amazon s3 存储桶中的文本文件运行 Map reduce WordCount 作业。我已经为 map reduce 框架设置了与 Amazon 通信所需的所有必需的身份验证,但我继续运行此错误。知道为什么会这样吗?

13/01/20 13:22:15 ERROR security.UserGroupInformation:
PriviledgedActionException as:root
cause:org.apache.hadoop.mapred.InvalidInputException: Input path does
not exist: s3://name-bucket/test.txt
Exception in thread "main"
org.apache.hadoop.mapred.InvalidInputException: Input path does not
exist: s3://name-bucket/test.txt
at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:197)
at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:208)
at org.apache.hadoop.mapred.JobClient.writeOldSplits(JobClient.java:989)
at org.apache.hadoop.mapred.JobClient.writeSplits(JobClient.java:981)
at org.apache.hadoop.mapred.JobClient.access$600(JobClient.java:174)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:897)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:850)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:416)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:850)
at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:824)
at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1261)
at org.myorg.WordCount.main(WordCount.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)

最佳答案

您实际上必须将协议(protocol) s3 替换为 s3n。这是 2 个具有不同属性的不同文件系统:

  • s3n is the s3 Native Filesystem:用于在 S3 上读取和写入常规文件的 native 文件系统。该文件系统的优点是您可以访问 S3 上使用其他工具编写的文件。相反,其他工具可以访问使用 Hadoop 编写的文件。缺点是 S3 对文件大小施加了 5GB 的限制。因此,它不适合作为 HDFS(支持超大文件)的替代品。
  • s3 是 block 文件系统:由 S3 支持的基于 block 的文件系统。文件以 block 的形式存储,就像在 HDFS 中一样。这允许有效地实现重命名。此文件系统要求您为文件系统指定一个存储桶 - 您不应使用包含文件的现有存储桶,或将其他文件写入同一存储桶。此文件系统存储的文件可以大于 5GB,但它们不能与其他 S3 工具互操作。

( source )

在您的情况下,您的存储桶可能正在使用 s3n 文件系统,我相信这是默认设置,我使用的大多数存储桶也是 s3n。所以你应该使用 s3n://name-bucket/test.txt

关于java - 在使用存储在 amazon s3 上的数据运行 Map reduce WordCount 作业时需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14429714/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com