Hadoop: map / reduce de HDFS
-
16-09-2019 - |
Pregunta
Puede que me equivoque, pero todos (?) Ejemplos que he visto con Apache Hadoop toma como entrada un archivo almacenado en el sistema de archivos local (por ejemplo org.apache.hadoop.examples.Grep)
¿Hay una manera de cargar y guardar los datos en el sistema de archivos de Hadoop (HDFS)? Por ejemplo pongo un archivo delimitado por tabuladores llamado 'stored.xls' en HDFS utilizando hadoop-0.19.1/bin/hadoop dfs -put ~/local.xls stored.xls
. ¿Cómo debo configurar el JobConf leerlo?
Gracias.
Solución
JobConf conf = new JobConf(getConf(), ...); ... FileInputFormat.setInputPaths(conf, new Path("stored.xls")) ... JobClient.runJob(conf); ...
setInputPaths lo harán.
Otros consejos
Pierre, la configuración por defecto para Hadoop es ejecutar en modo local, en lugar de en el modo distribuido. Es probable que necesite simplemente modificar alguna configuración en su hadoop-site.xml. Parece que tu sistema de archivos por defecto es localhost aún, cuando debería ser hdfs: // youraddress: suPuerto. Mira el ajuste para la fs.default.name, y también ver la ayuda de configuración de la dirección el blog de Michael Noll para más detalles.
FileInputFormat.setInputPaths (conf, nuevo camino ( "HDFS: // host: puerto / usuario / Me / stored.xls"));
Esto hará