我正在开发一个 Java 程序来与已经运行的 hadoop 集群交互。该计划有HADOOP_HOME
作为环境变量传递给它。
根据这个值,我需要在开始与 HDFS/MapReduce 交互之前加载所有必要的配置资源。我认为我需要的文件基于阿帕奇文档 http://hadoop.apache.org/common/docs/current/cluster_setup.html#Configuration+Files。我当前的解决方案如下所示:
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);
有没有更干净的方法来做到这一点?希望一种不涉及显式设置每个资源的方法?
你使用运行你的jarhadoop jar <your-jar>
。这会自动设置一切。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)