我有一个java程序试图将数据加载到hdfs:
public class CopyFileToHDFS {
public static void main(String[] args) {
try{
Configuration configuration = new Configuration();
String msg = "message1";
String file = "hdfs://localhost:8020/user/user1/input.txt";
FileSystem hdfs = FileSystem.get(new URI(file), configuration);
FSDataOutputStream outputStream = hdfs.create(new Path(file), true);
outputStream.write(msg.getBytes());
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
}
当我运行程序时,它会给我一个错误:
java.util.ServiceConfigurationError: org.apache.hadoop.fs.FileSystem: Provider org.apache.hadoop.fs.s3.S3FileSystem not found
看起来有一些配置问题。谁能给我一些建议吗?
谢谢
1条答案
按热度按时间pgvzfuti1#
有东西在说明
org.apache.hadoop.fs.FileSystem
包括s3。一个可能的原因是旧的、过时的meta inf文件;请参阅此spark bug报告。如果你正在创建一个uberjar,它可能就在那里的某个地方。如果您无法找到并消除导致问题的规范,一个解决方法是包括aws和hadoopjar,spark驱动程序/执行程序可以在其中找到它们;看看这个问题。