Все, что я пытаюсь сделать, - это создать каталог в HDFS, используя Java программно. Я получаю эту ошибку. Исключение в потоке "главный" java.util.ServiceConfigurationError: org.apache.hadoop.fs.FileSystem: Поставщик org.apache.hadoop.fs.s3a.S3AFileSystem не может быть созданHadoop 2.7 - Простой код Java для создания каталога в HDFS
Вызванный: java.lang. NoClassDefFoundError: ком/amazonaws/AmazonServiceException Вызванный: java.lang.ClassNotFoundException: com.amazonaws.AmazonServiceException
Не знаете, где пришли сюда все эти Amazon S3. Пожалуйста помоги.
Вот код. Это Hadoop 2.7
package tas.module1;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.BlockLocation;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class JavaClient {
public JavaClient() {
}
public static void main(String[] args) throws IOException {
JavaClient jc = new JavaClient();
Configuration config = new Configuration();
config.addResource(new Path("/usr/local/hadoop-2.7.1/etc/hadoop/core-site.xml"));
config.addResource(new Path("/usr/local/hadoop-2.7.1/etc/hadoop/hdfs-site.xml"));
config.set("fs.hdfs.impl",
org.apache.hadoop.hdfs.DistributedFileSystem.class.getName()
);
config.set("fs.file.impl",
org.apache.hadoop.fs.LocalFileSystem.class.getName()
);
FileSystem dfs = FileSystem.get(config);
String dirName = "TestDirectory";
System.out.println(dfs.getWorkingDirectory() +" this is from /n/n");
Path src = new Path(dfs.getWorkingDirectory()+"/"+dirName);
dfs.mkdirs(src);
System.out.println("created dir");
dfs.close();
}
}
Привет, Спасибо за ваш ответ. Проблема в том, почему я получаю это сообщение об ошибке AWS S3, потому что мой псевдо-кластер hadoop является локальным, и все, что я пытаюсь сделать, - создать папку в HDFS с помощью java-программы. My Hadoop находится в локальной виртуальной машине в Ubuntu 14. – Suri