在CLI中打印hadoop属性

时间:2015-10-16 14:44:52

标签: java hadoop

我正在使用Java编写一个使用Hadoop的实用程序,我需要在set -v中通过Jsch在单个命令中提取所有hadoop属性,如hive

我试过这个hadoop org.apache.hadoop.conf.Configuration,但它只返回核心站点属性。是否有其他命令可用于打印set -v

中的所有属性,例如hive

1 个答案:

答案 0 :(得分:1)

一种可能的解决方案可能是:

package config;

import java.util.Map.Entry;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.util.*;


public class HadoopPropDump extends Configured implements Tool {

  static {

    //Hadoop by default specifies two resources, loaded in-order from the classpath:  
    // 1. core-default.xml
    // 2. core-site.xml

    Configuration.addDefaultResource("hdfs-default.xml");
    Configuration.addDefaultResource("hdfs-site.xml");
    Configuration.addDefaultResource("mapred-default.xml");
    Configuration.addDefaultResource("mapred-site.xml");
    Configuration.addDefaultResource("yarn-default.xml");
    Configuration.addDefaultResource("yarn-site.xml");
  }

  @Override
  public int run(String[] args) throws Exception {
    Configuration conf = getConf();
    for (Entry<String, String> entry: conf) {
      System.out.printf("%s=%s\n", entry.getKey(), entry.getValue());
    }
    return 0;
  }

  public static void main(String[] args) throws Exception {
    int exitCode = ToolRunner.run(new HadoopPropDump(), args);
    System.exit(exitCode);
  }
}

静态阻止确保 HDFS YARN MapReduce 配置除了核心内容之外( Configuration 已经知道了)。“

参考: O&#39; Reilly&#34; Hadoop:The Definitive Guide&#34;汤姆怀特