EMRでは、yarn
コマンドを使用して設定キーが指定された構成の特定の値を取得する方法はありますか?例えばコマンドラインからヤーン構成を取得する
私はそれは少し非直感的だが、それはHDFSだけでなく、hdfs getconf
コマンドはYARNとMapReduceのための構成プロパティを確認することができ判明この
yarn get-config yarn.scheduler.maximum-allocation-mb
EMRでは、yarn
コマンドを使用して設定キーが指定された構成の特定の値を取得する方法はありますか?例えばコマンドラインからヤーン構成を取得する
私はそれは少し非直感的だが、それはHDFSだけでなく、hdfs getconf
コマンドはYARNとMapReduceのための構成プロパティを確認することができ判明この
yarn get-config yarn.scheduler.maximum-allocation-mb
ような何かをしたいと思います。
> 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で使用されている構成プロパティの最終結果が実際に表示されることです。これは、このようなXMLファイルまたはプロパティの置換での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>
直接XMLファイルを解析しようとする任意のスクリプトのアプローチは、正確にはほとんどありません実装はHadoopの内部で行われるように実装されているので、Hadoop自体に尋ねる方がよいでしょう。
hdfs
コマンドがYARNとMapReduceの設定プロパティを取得できる理由が不思議に思えるかもしれません。素晴らしい質問!リフレクションによって作成されたオブジェクトにMapReduceのJobConf
のインスタンスを挿入する必要がある実装は、やや偶然です。関連するコードは、ここに表示されている:
このコードはhdfs getconf
コマンドを実行の一部として実行されます。 JobConf
への参照をトリガーすることによって、クラスロードと、関連するMapReduceクラスとYARNクラスの静的初期化が強制され、yarn-default.xml、yarn-site.xml、mapred-default.xml、およびmapred-site.xmlが設定ファイルは有効です。
実装の偶然なので、この動作のいくつかは将来のバージョンで変更される可能性がありますが、後方互換性のない変更になる可能性があるため、現在のHadoop 2ではその動作を変更しません。 x線。 Apache Hadoop Compatibilityポリシーは、メジャーバージョンライン内の下位互換性をコミットするため、少なくともバージョン2.xのバージョンラインではこれが動作することを信頼できます。
は、チャームのように機能します。 –
はまだ動作します。共有してくれてありがとう。 –