【问题标题】:jets3t cannot upload file to s3jets3t 无法将文件上传到 s3
【发布时间】:2015-06-19 00:00:09
【问题描述】:

我正在尝试使用 hadoop fs 和 jets3t 将文件从本地上传到 s3,但出现以下错误

Caused by: java.util.concurrent.ExecutionException: org.apache.hadoop.fs.s3.S3Exception: org.jets3t.service.S3ServiceException: Request Error. HEAD '/project%2Ftest%2Fsome_event%2Fdt%3D2015-06-17%2FsomeFile' on Host 'host.s3.amazonaws.com' @ 'Thu, 18 Jun 2015 23:33:01 GMT' -- ResponseCode: 404, ResponseStatus: Not Found, RequestId: AVDFJKLDFJ3242, HostId: D+sdfjlakdsadf\asdfkpagjafdjsafdj

我对为什么 jets3t 需要执行 HEAD 请求进行上传感到困惑。由于我上传的文件在s3上还不存在,当然应该找不到。

我假设因为我有 404 错误,所以它不可能是权限问题。

调用此错误的代码是:

import org.apache.hadoop.conf.Configuration;
  import org.apache.hadoop.fs.FileStatus;
  import org.apache.hadoop.fs.FileSystem;
  import org.apache.hadoop.fs.Path;

...

  String path = "s3n://mybucket/path/to/event/partition/file"
  Configuration conf = new Configuration();
  conf.set("fs.s3n.awsAccessKeyId", "MYACCESSKEY");
  conf.set("fs.s3n.awsSecretAccessKey", "MYSECRETKEY");
  FileSystem fileSystem = FileSystem.get(URI.create(path), conf);
  fileSystem.moveFromLocalFile("my/source/path/to/file", path);

【问题讨论】:

    标签: hadoop amazon-s3 jets3t


    【解决方案1】:

    好的,我为后代回答这个问题。这个问题实际上是 maven。

    看来我使用的是两个框架的不兼容版本。当然 maven 是 maven,无法检测到这一点。

    【讨论】:

    • @pl0u 我也面临同样的问题。让我知道哪个版本有效。
    • @Knight71 很抱歉,已经 4 年了,我无法追踪我为解决此问题而更改的版本。
    猜你喜欢
    • 1970-01-01
    • 2018-08-20
    • 2021-05-21
    • 1970-01-01
    • 2021-07-15
    • 2018-03-25
    • 1970-01-01
    • 2013-02-02
    • 2014-12-16
    相关资源
    最近更新 更多