Question

Je peux me tromper, mais tous (?) Exemples que je l'ai vu avec Apache Hadoop prend en entrée un fichier stocké sur le système de fichiers local (par exemple org.apache.hadoop.examples.Grep)

Y at-il un moyen de charger et enregistrer les données sur le système de fichiers Hadoop (HDFS)? Par exemple, je mets un onglet fichier délimité nommé « stored.xls » sur HDFS à l'aide hadoop-0.19.1/bin/hadoop dfs -put ~/local.xls stored.xls. Comment dois-je configurer le JobConf pour le lire?

Merci.

Était-ce utile?

La solution

JobConf conf = new JobConf(getConf(), ...);
...
FileInputFormat.setInputPaths(conf, new Path("stored.xls"))
...
JobClient.runJob(conf);
...

setInputPaths vont le faire.

Autres conseils

Pierre, la configuration par défaut pour Hadoop est de fonctionner en mode local, plutôt qu'en mode distribué. Vous avez probablement besoin de modifier simplement une configuration dans votre Hadoop-site.xml. Il semble que votre système de fichiers par défaut est toujours localhost, quand il devrait être hdfs: // youraddress: votre_port. Regardez votre réglage pour fs.default.name, et aussi voir l'aide de configuration le blog de Michael Noll pour plus de détails.

FileInputFormat.setInputPaths (conf, nouveau chemin ( "HDFS: // nom d'hôte: port / user / Me / stored.xls"));

fera

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top