108 votes

hadoop Pas de système de fichiers pour le schéma : file

J'essaie d'exécuter un simple NaiveBayesClassifer en utilisant hadoop, j'obtiens cette erreur

Exception in thread "main" java.io.IOException: No FileSystem for scheme: file
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1375)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1390)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:196)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:95)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:180)
    at org.apache.hadoop.fs.Path.getFileSystem(Path.java:175)
    at org.apache.mahout.classifier.naivebayes.NaiveBayesModel.materialize(NaiveBayesModel.java:100)

Code :

    Configuration configuration = new Configuration();
    NaiveBayesModel model = NaiveBayesModel.materialize(new Path(modelPath), configuration);// error in this line..

modelPath pointe vers NaiveBayes.bin et l'objet de configuration est imprimé - Configuration: core-default.xml, core-site.xml

Je pense que c'est à cause des pots, des idées ?

1voto

LuoLeKe Points 35

Cette question est ancienne, mais j'ai rencontré le même problème récemment et l'origine de l'erreur était différente de celle des réponses données ici.

De mon côté, la cause première était due au fait que hdfs essayait d'analyser une autorité lorsqu'il rencontrait // au début d'un chemin :

$ hdfs dfs -ls //dev
ls: No FileSystem for scheme: null

Essayez donc de rechercher un double slash ou une variable vide dans la partie de construction du chemin de votre code.

Billet Hadoop connexe : https://issues.apache.org/jira/browse/HADOOP-8087

1voto

Joren Boulanger Points 55

Si vous utilisez le plugin Gradle Shadow, voici la configuration que vous devez ajouter :

shadowJar {
    mergeServiceFiles()
}

0voto

Harish Pathak Points 956

Utilisez ce plugin

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>

                        <configuration>
                            <filters>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/*.SF</exclude>
                                        <exclude>META-INF/*.DSA</exclude>
                                        <exclude>META-INF/*.RSA</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                            <shadedArtifactAttached>true</shadedArtifactAttached>
                            <shadedClassifierName>allinone</shadedClassifierName>
                            <artifactSet>
                                <includes>
                                    <include>*:*</include>
                                </includes>
                            </artifactSet>
                            <transformers>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>reference.conf</resource>
                                </transformer>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                </transformer>
                                <transformer 
                                implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer">
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

0voto

Peluo Points 11

Si vous utilisez sbt :

//hadoop
lazy val HADOOP_VERSION = "2.8.0"

lazy val dependenceList = Seq(

//hadoop
//The order is important: "hadoop-hdfs" and then "hadoop-common"
"org.apache.hadoop" % "hadoop-hdfs" % HADOOP_VERSION

,"org.apache.hadoop" % "hadoop-common" % HADOOP_VERSION
)

-1voto

Raxit Solanki Points 145

J'ai également rencontré un problème similaire. Ajouté core-site.xml et hdfs-site.xml comme ressources de conf (objet)

Configuration conf = new Configuration(true);    
conf.addResource(new Path("<path to>/core-site.xml"));
conf.addResource(new Path("<path to>/hdfs-site.xml"));

J'ai également modifié les conflits de version dans pom.xml. (par exemple, si la version configurée de hadoop est 2.8.1, mais que dans le fichier pom.xml, la version des dépendances est 2.7.1, changez-la en 2.8.1). Exécutez à nouveau l'installation de Maven.

Cela a résolu l'erreur pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X