java—将数据加载到hdfs时会发生一些错误

w80xi6nr  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(258)

我有一个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

看起来有一些配置问题。谁能给我一些建议吗?
谢谢

pgvzfuti

pgvzfuti1#

有东西在说明 org.apache.hadoop.fs.FileSystem 包括s3。一个可能的原因是旧的、过时的meta inf文件;请参阅此spark bug报告。
如果你正在创建一个uberjar,它可能就在那里的某个地方。如果您无法找到并消除导致问题的规范,一个解决方法是包括aws和hadoopjar,spark驱动程序/执行程序可以在其中找到它们;看看这个问题。

相关问题