2015-06-19 3 views
0

Я пытаюсь загрузить файлы с локального на s3 с помощью Hadoop фс и Jets3t, но я получаю следующую ошибку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); 

ответ

0

Хорошо, Я отвечаю на это для потомков. Проблема была на самом деле maven.

Кажется, что я использовал несовместимую версию двух фреймворков. Конечно, maven, будучи maven, не может это обнаружить.

+0

Не могли бы вы указать, какие версии сработали для вас? – Sohaib

Смежные вопросы