Как распечатать свойства hadoop в командной строке?

Я только нахожу способ установить свойство hadoop dfsadmin -D xx=yy,

но как найти значение определенного свойства xx в командной строке?

Ответ 1

Вы можете сбросить конфигурацию Hadoop, запустив:

$ hadoop org.apache.hadoop.conf.Configuration

Ответ 2

Вы можете использовать GenericOptionsParser для загрузки настроек Hadoop на объект с типизированной конфигурацией и повторить его свойства. Вот пример, демонстрирующий этот подход через класс утилиты (Configured).

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);
    }
}