Hadoop 1.0.3'ü Pseudo-Distributed modunda kullanıyorum. aşağıdaki gibi Ve benim conf/çekirdek-site.xml dosyasını ayarlanır: Hadoop: core-site.xml içinde varsayılan FileSystem'i HDFS olarak ayarlayamıyor
<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>
Yani benim varsayılan dosya sistemi HDF'ler olarak ayarlanır inanıyordu. Aşağıdaki kodu çalıştırdığınızda Ancak:
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
Ben fs bir DistributedFileSystem
örneği olması gerektiğini düşündük. Ancak, LocalFileSystem
örneğidir.
Configuration conf = new Configuration();
conf.set("fs.default.name", "hdfs://localhost:9000");
FileSystem fs = FileSystem.get(conf);
Sonra bir DistributedFileSystem
fs alabilirsiniz.
Varsayılan FileSystem'im core-site.xml dosyasında HDFS olarak ayarlanmış değil mi? Yoksa, bunu nasıl ayarlamalıyım?
İşinizi nasıl çalıştırıyorsunuz/başlatıyorsunuz? Daha fazla kod gönderebilir misin? –
@ChrisWhite Bu, işimi nasıl yürüttüğümden etkileniyor mu? Core-site.xml düzgün bir şekilde yüklendikten sonra varsayılan FileSystem hdfs olarak ayarlanmamalı mı? – Denzel
Evet, ancak uygulamanızı "java myjar.jar ..." ile başlatıyorsanız "hadoop jar myjar.jar ..." yerine, core-site.xml, classpath üzerinde olmayabilir ve bu nedenle kazanılmış olabilir. Yüklenmelidir. Conf nesnesini oluşturduktan sonra kodunuzda 'fs.default.name' değerini deneyin ve çıktı alın. –