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.
Bir çekicilik gibi çalışır :) –
hala çalışıyor. paylaşım için teşekkürler. –