2011-10-17 8 views
0

Je suis un novice de Hadoop. Je suis confronté à des problèmes d'accès aux fichiers de mon système HDFS à partir de mon code java dans eclipse. Bien que mon fs.default.name soit défini sur hdfs: // localhost: portno dans core-site.xml il me donne l'URI en tant que fichier: // au lieu de hdfs: // J'ai essayé quelques autres choses comme définir mon chemin d'entrée comme ci-dessous: FileInputFormat.setInputPaths (conf, nouveau chemin ("hdfs: // localhost: 9021/utilisateur/formation/shakespeare/poems"));Accès aux fichiers HDFS à partir d'Eclipse

mais il renvoie l'erreur de délai d'attente: 11/10/17 15:31:31 INFO ipc.Client: nouvelle tentative de connexion au serveur: localhost/127.0.0.1: 9021. Déjà essayé 0 fois.

S'il vous plaît guidez-moi comment résoudre ce problème, je suis vraiment coincé à cause de cela. Toute aide serait vraiment appréciée.

Merci

+0

Avez-vous essayé de vous connecter à partir de la ligne de commande? C'est à dire. Quelque chose comme ceci: Telnet 127.0.0.1: 9021 Si vous obtenez toujours une confection refusée alors le problème se trouve probablement avec un pare-feu local. –

Répondre

3

Vous devez vous assurer que {$HADOOP_HOME}/conf dossier contenant core-site.xml, hdfs-site.xml et mapred-site.xml est dans Java CLASSPATH pendant que vous exécutez le programme d'Eclipse.

Pour ajouter ce dossier à CLASSPATH, cliquez avec le bouton droit sur le dossier-> properties-> Java Build Path-> Ajouter un dossier de classe externe.

1

Si vous ne souhaitez pas spécifier les fichiers * -site.xml, vous pouvez simplement configurer le client Hadoop directement dans le code:

Configuration conf = new Configuration(); 
conf.set("fs.defaultFS","hdfs://namenode:8020"); 
FileSystem fs = FileSystem.get(conf); 

Si vous utilisez Maven dans votre projet, vous pouvez ajouter la Le client hadoop dans votre pom.xml de la manière suivante (en supposant que vous choisissez la distribution cloudera):

<repositories> 
    <repository> 
     <id>cloudera</id> 
     <url>https://repository.cloudera.com/content/repositories/releases/</url> 
    </repository> 
</repositories> 

<dependencies> 
    <dependency> 
     <groupId>org.apache.hadoop</groupId> 
     <artifactId>hadoop-client</artifactId> 
     <version>2.6.0-cdh5.5.0</version> 
    </dependency> 
</dependencies>