【发布时间】:2017-07-07 21:20:32
【问题描述】:
我正在尝试使用 Java 以编程方式在 HDFS 中创建一个目录。 我收到此错误。 线程“主”java.util.ServiceConfigurationError 中的异常:org.apache.hadoop.fs.FileSystem:提供程序 org.apache.hadoop.fs.s3a.S3AFileSystem 无法实例化
原因:java.lang.NoClassDefFoundError: com/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();
}
}
【问题讨论】:
标签: java hadoop amazon-s3 mapreduce