2016-04-07 13 views
1

Ich habe ein Java-Programm versucht, Daten zu HDFS zu laden:Einige Fehler passieren, wenn Daten in HDFS Laden

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()); 
    } 
} 
} 

Wenn ich das Programm laufen, ist es mir ein Fehler gibt:

java.util.ServiceConfigurationError: org.apache.hadoop.fs.FileSystem: Provider org.apache.hadoop.fs.s3.S3FileSystem not found 

Es sieht aus wie einige Konfigurationsprobleme. Kann mir jemand Vorschläge machen?

Dank

+0

Ich denke, Sie sollten "hdfs: ///" anstelle von "hdfs: //" verwenden –

Antwort

0

Etwas angeben, dass org.apache.hadoop.fs.FileSystem S3 enthält. Eine mögliche Ursache ist eine alte, veraltete META-INF-Datei; siehe hierzu Spark bug report.

Wenn Sie ein Uber-Glas erstellen, könnte es irgendwo da drin sein. Wenn Sie die Spezifikation, die das Problem verursacht, nicht finden und beseitigen können, müssen AWS & Hadoop-Jars, bei denen der/die Spark-Treiber/Executors sie finden können, umgangen werden. siehe this Stackoverflow question.

Verwandte Themen