2012-10-08 3 views
17

私は、hadoop dfsadmin -D xx=yyでプロパティを設定する方法を見つけるコマンドラインでhadoopプロパティを表示するにはどうすればよいですか?

が、どのように私は、コマンドラインで特定のプロパティxxの値を見つけるのですか?

+1

を任意の答えはあなたの問題を解決した場合はその答えとして、それを受け入れるように大きなチェックボックスをクリックしてください。 –

答えて

4

GenericOptionsParserを使用して、Hadoopの設定を構成タイプのオブジェクトにロードし、そのプロパティを反復することができます。次に、このアプローチをユーティリティクラス(設定済み)を介して示す例を示します。

public class ConfigPrinter extends Configured implements Tool { 
    static { 
     // by default core-site.xml is already added 
     // loading "hdfs-site.xml" from classpath 
     Configuration.addDefaultResource("hdfs-site.xml"); 
     Configuration.addDefaultResource("mapred-site.xml"); 
    } 

    @Override 
    public int run(String[] strings) throws Exception { 
     Configuration config = this.getConf(); 
     for (Map.Entry<String, String> entry : config) { 
      System.out.println(entry.getKey() + " = " + entry.getValue()); 
     } 
     return 0; 
    } 

    public static void main(String[] args) throws Exception { 
     ToolRunner.run(new ConfigPrinter(), args); 
    } 
} 
+0

これを行うには、これをハーフープにコンパイルする必要がありますか? –

+0

はい、それをコンパイルする必要がありますし、クライアント上で "hadoop jar(あなたのパッケージ).ConfigPrinter"を使って設定を探検することができます。 – rystsov

41

あなたは実行することにより、Hadoopのコンフィグをダンプすることができます、

$ hadoop org.apache.hadoop.conf.Configuration 
+1

しかし、そのコマンドはコアサイトだけをダンプするので、hdfs-siteをダンプする方法 –

関連する問題