Número de puerto de Hadoop
Está accediendo al sistema de archivos local, no a hdfs, porque la configuración predeterminada es el atributo fs.default.name en core-default.xml y el valor predeterminado es file:///. lo que significa sistema de archivos local. En nuestra nueva configuración(); el archivo core-default.xml se carga de forma predeterminada, por lo que el sistema de archivos local se utiliza en función del valor fs.default.name de ese archivo.
Solución:
Generalmente, el archivo core-site.xml se modificará al instalar hadoop. Los valores de atributo establecidos en este archivo generalmente se usan para sobrescribir el valor predeterminado del núcleo. archivo .xml. En el archivo core-site.xml, se establecerá la dirección y el número de puerto del nodo de nombre de hadoop. El valor es fs.default.name, como hdfs://localhost:9000, lo que significa que el nodo de nombre es local, es decir. , distribuido. Entonces, cuando nos conectamos a hdfs, debemos especificar la dirección de conexión, que es el valor del atributo fs.default.name en core-site.xml en el clúster de hadoop. Entonces hay tres soluciones:
1) En la configuración del código conf = new Configuration(); luego establezca manualmente el valor del atributo fs.default.name para el objeto de configuración, como por ejemplo: conf.set (" fs.default .name "," HDFS:localhost:9000 ");
2) Cree un archivo en la ruta de clase del código, establezca el valor del atributo de fs.default.name en el archivo, y luego use conf.addResource ("Ruta del archivo") Agregue el archivo a la configuración;
3) Agregue directamente el core-site.xml del clúster a la ruta de clase. No es necesario agregarlo manualmente. a la configuración. El archivo se cargará automáticamente en una nueva configuración.