2016-01-07 18 views

cevap

14

böyle bir şey yapmak istiyorum ama hdfs getconf komut İPLİK ve MapReduce, sadece HDF'ler için yapılandırma özelliklerini kontrol etme yeteneğine sahiptir çıkıyor.

> hdfs getconf -confKey fs.defaultFS 
hdfs://localhost:19000 

> hdfs getconf -confKey dfs.namenode.name.dir 
file:///Users/chris/hadoop-deploy-trunk/data/dfs/name 

> hdfs getconf -confKey yarn.resourcemanager.address 
0.0.0.0:8032 

> hdfs getconf -confKey mapreduce.framework.name 
yarn 

bu kullanmanın bir yararı aslında Hadoop'un tarafından kullanılan olarak herhangi bir yapılandırma özelliklerinin gerçek, kesin sonuçları göreceksiniz olmasıdır. Bu böyle, böyle XML dosyaları veya mülkiyet ornatımlarında XInclude kullanımı gibi daha gelişmiş yapılandırma modelleri, bazıları için hesap olacaktır:

<property> 
    <description>The address of the applications manager interface in the RM.</description> 
    <name>yarn.resourcemanager.address</name> 
    <value>${yarn.resourcemanager.hostname}:8032</value> 
    </property> 

doğrudan XML dosyalarını ayrıştırmak için çalışır Herhangi betik yaklaşımı doğru olası değildir Uygulamayı Hadoop içinde yaptığı gibi eşleştirin, bu yüzden Hadoop'un kendisine sormak daha iyidir.

Bir hdfs komutunun neden YARN ve MapReduce için yapılandırma özelliklerini aldığını merak ediyor olabilirsiniz. Harika soru! MapReduce'un JobConf örneğini yansıtma yoluyla oluşturulan bazı nesnelerin içine enjekte etmek için uygulanması gereken bir rastlantı. İlgili kod burada görülebilir:

https://github.com/apache/hadoop/blob/release-2.7.1/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ReflectionUtils.java#L82-L114

Bu kod hdfs getconf komutunu çalıştırarak bir parçası olarak yürütülür. JobConf referansını tetikleyerek, set-default.xml, yarn-site.xml, mapred-default.xml ve mapred-site.xml değerlerini ekleyen ilgili MapReduce ve YARN sınıflarının sınıf yüklemesini ve statik başlatılmasını zorlar. yapılandırma dosyaları geçerli.

Uygulamanın bir tesadüf olması nedeniyle, bu davranışların bir kısmının gelecekteki sürümlerde değişmesi mümkündür, ancak geriye dönük uyumsuz bir değişiklik olur, dolayısıyla bu davranışı Hadoop 2 içinde kesinlikle değiştirmeyiz. x satır. Apache Hadoop Compatibility politikası, büyük bir sürüm satırı içinde geriye dönük uyumluluğa izin verir, böylece bunun en azından 2.x sürüm çizgisinde çalışmaya devam edeceğine güvenebilirsiniz.

+0

Bir çekicilik gibi çalışır :) –

+0

hala çalışıyor. paylaşım için teşekkürler. –

İlgili konular