2013-05-23 35 views
5

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.

Ama şu kodu çalıştırırsanız:

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?

+0

İşinizi nasıl çalıştırıyorsunuz/başlatıyorsunuz? Daha fazla kod gönderebilir misin? –

+0

@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

+1

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. –

cevap

4

Eclipse ortamı, ilk olarak yüklemek için Eclipse sınıf yoluna bu dosyalar eklenmedikçe, core-default.xml ve core-site.xml öğelerini bulmak için Hadoop yükleme dizini altındaki gizli dizinin yerini bilmez.

Bunlar eclipse sınıf yoluna eklenmediğinden, varsayılan core-site.xml jar dosyası hadoop - * - core.jar dosyasından yüklenir (örneğin: hadoop-0.20.2-core.jar for version Yerel sistem varsayılan dosya sistemi olan 0.20) ve dolayısıyla DistributedFileSystem yerine LocalFileSystem nesnesini görüyorsunuz.

Yani, proje özelliklerini goto, proje sınıfyolunu gölgede <HADOOP_INSTALL>/conf dizin eklemek için (proje -> özellikleri) -> Java inşa yolu -> Kütüphaneler sekmesi -> harici sınıf klasörü ekleme -><HADOOP_INSTALL>

gelen conf dizinini seçin

Yukarıdaki "/core-site.xml" ifadenizi tutulması için sınıf sınıfınıza eklemeniz gerekir ve tüm ayarlarınız varsayılan olanları geçersiz kılar.