Sto utilizzando Hadoop 1.0.3 in modalità Pseudo-Distributed. E la mia conf/core-site.xml è impostato come segue:Hadoop: impossibile impostare FileSystem predefinito come HDFS in core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>mapred.child.tmp</name>
<value>/home/administrator/hadoop/temp</value>
</property>
</configuration>
Così ho creduto che il mio filesystem di default è impostato su HDFS. Tuttavia, quando si esegue il seguente codice:
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
ho pensato che fs dovrebbe essere un esempio DistributedFileSystem
. Tuttavia, risulta essere l'istanza LocalFileSystem
.
Ma, se corro il seguente codice:
Configuration conf = new Configuration();
conf.set("fs.default.name", "hdfs://localhost:9000");
FileSystem fs = FileSystem.get(conf);
Poi posso ottenere un DistributedFileSystem
fs.
Il file system predefinito non è impostato su HDFS in core-site.xml? In caso contrario, come dovrei impostarlo?
Come stai correndo/avviando il tuo lavoro? Puoi pubblicare più codice? –
@ChrisWhite Questo è influenzato da come gestisco il mio lavoro? Il file system predefinito non dovrebbe essere impostato su hdf dopo che il mio core-site.xml è stato caricato correttamente? – Denzel
Sì, ma se si avvia l'app con 'java myjar.jar ...' piuttosto che 'hadoop jar myjar.jar ...' il core-site.xml potrebbe non essere sul classpath, e quindi ha vinto ' essere caricato Prova e mostra il valore di 'fs.default.name' nel tuo codice dopo aver creato l'oggetto conf. –