我正在使用Java编写一个使用Hadoop的实用程序,我需要在set -v
中通过Jsch在单个命令中提取所有hadoop属性,如hive
。
我试过这个hadoop org.apache.hadoop.conf.Configuration
,但它只返回核心站点属性。是否有其他命令可用于打印set -v
hive
答案 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;汤姆怀特