2016-01-07 34 views
7

से यार्न कॉन्फ़िगरेशन प्राप्त करें, yarn कमांड का उपयोग कर कॉन्फ़िगरेशन कुंजी दिए गए कॉन्फ़िगरेशन का विशिष्ट मान प्राप्त करने का कोई तरीका है?ईएमआर में कमांडलाइन

उदाहरण के लिए मैं इस

yarn get-config yarn.scheduler.maximum-allocation-mb 

उत्तर

14

यह थोड़ा गैर सहज है की तरह कुछ करना चाहते हैं, लेकिन यह पता चला hdfs getconf आदेश यार्न और MapReduce, न केवल HDFS के लिए विन्यास गुण की जाँच करने में सक्षम है।

> 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 

इस का उपयोग करने का एक लाभ यह है कि आप किसी भी विन्यास संपत्तियों की वास्तविक, अंतिम परिणाम देखेंगे के रूप में वे वास्तव में Hadoop द्वारा उपयोग किया जाता है। इस तरह के एक्सएमएल फाइल या संपत्ति प्रतिस्थापन में XInclude के उपयोग के रूप में और अधिक उन्नत विन्यास पैटर्न में से कुछ के लिए खाते हैं, इस तरह:

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

किसी भी पटकथा दृष्टिकोण सीधे एक्सएमएल फाइल को पार्स करने की कोशिश करता है कि सही रूप में की संभावना नहीं है हडोप के अंदर किए गए कार्यान्वयन से मेल खाते हैं, इसलिए हैडोप से खुद से पूछना बेहतर है।

आप सोच रहे होंगे कि hdfs कमांड YARN और MapReduce के लिए कॉन्फ़िगरेशन गुण क्यों प्राप्त कर सकता है। महान सवाल! यह कुछ हद तक प्रतिबिंब के माध्यम से बनाई गई कुछ वस्तुओं में MapReduce के JobConf के उदाहरण को इंजेक्ट करने की आवश्यकता के कार्यान्वयन का एक संयोग है। प्रासंगिक कोड यहाँ दिख रहा है:

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

इस कोड hdfs getconf आदेश चलाकर के हिस्से के रूप में मार डाला गया है। JobConf के संदर्भ को ट्रिगर करके, यह क्लास लोडिंग और प्रासंगिक MapReduce और YARN कक्षाओं के स्थैतिक प्रारंभ को बल देता है जो yarn-default.xml, yarn-site.xml, mapred-default.xml और mapred-site.xml को सेट के सेट में जोड़ता है प्रभाव में विन्यास फाइलें।

चूंकि यह कार्यान्वयन का संयोग है, इसलिए यह संभव है कि इनमें से कुछ व्यवहार भविष्य के संस्करणों में बदल जाएंगे, लेकिन यह एक पिछड़ा-असंगत परिवर्तन होगा, इसलिए हम निश्चित रूप से वर्तमान हडोप 2 के अंदर उस व्यवहार को नहीं बदलेंगे। एक्स लाइन। Apache Hadoop Compatibility नीति एक प्रमुख संस्करण रेखा के भीतर पिछड़ा-संगतता के लिए प्रतिबद्ध है, इसलिए आप भरोसा कर सकते हैं कि यह कम से कम 2.x संस्करण रेखा के भीतर काम करना जारी रखेगा।

+0

एक आकर्षण की तरह काम करता है :) –

+0

अभी भी काम करता है। साझा करने के लिए धन्यवाद। –