基于HADOOP_HOME自动加载HDFS配置?

时间:2012-02-08 20:18:59

标签: java hadoop hdfs

我正在开发一个Java程序来与已经运行的hadoop集群进行交互。该程序已将HADOOP_HOME作为环境变量传递给它。

基于此值,我需要在开始与HDFS / MapReduce交互之前加载所有必需的配置资源。我认为我需要的文件基于apache documentation。我目前的解决方案如下:

final String HADOOP_HOME = System.getEnv("HADOOP_HOME");
Configuration conf = new Configuration();

conf.addResource(new Path(HADOOP_HOME, "src/core/core-default.xml"));
conf.addResource(new Path(HADOOP_HOME, "src/hdfs/hdfs-default.xml"));
conf.addResource(new Path(HADOOP_HOME, "src/mapred/mapred-default.xml"));
conf.addResource(new Path(HADOOP_HOME, "conf/core-site.xml"));
conf.addResource(new Path(HADOOP_HOME, "conf/hdfs-site.xml"));
conf.addResource(new Path(HADOOP_HOME, "conf/mapred-site.xml"));

FileSystem hdfs = new FileSystem(conf);

有更清洁的方法吗?希望这种方式不涉及明确设置每个资源吗?

1 个答案:

答案 0 :(得分:3)

使用hadoop jar <your-jar>运行jar。这会自动设置所有内容。