私が試みているのは、プログラムでJavaを使用してHDFSにディレクトリを作成することです。 このエラーが発生しています。スレッド内 例外は、 "メイン" java.util.ServiceConfigurationError:org.apache.hadoop.fs.FileSystem:java.langで:プロバイダorg.apache.hadoop.fs.s3a.S3AFileSystemはによって引き起こさHadoop 2.7 - HDFSでディレクトリを作成するための簡単なJavaコード
をインスタンス化することができませんでした。 NoClassDefFoundErrorが:にjava.lang.ClassNotFoundException:COM/amazonaws/AmazonServiceException はによって引き起こされるこれらすべてのアマゾンS3がここに来たところcom.amazonaws.AmazonServiceException
はわかりません。助けてください。
ここにコードがあります。これはHadoopです。
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();
}
}
Hiにアップグレードし、ご返信用 感謝します。 なぜこのAWS S3関連のエラーメッセージが表示されるのですか?私のhadoop疑似クラスタはローカルであり、私が試みているのは、Javaプログラムを使用してHDFSにフォルダを作成することです。 私のHadoopはUbuntu 14のローカルVMにあります。 – Suri