首页 > 代码库 > 【Nutch2.2.1源码分析之一】Nutch加载配置文件的方法
【Nutch2.2.1源码分析之一】Nutch加载配置文件的方法
1、NutchConfiguration.java用于加载及获取Nutch的相关参数。
Utility to create Hadoop Configurations that include Nutch-specific resources.
即它会加载hadoop及nutch中的参数文件。
关键是2个create()方法,它加载了参数文件的同时,又返回了Configuration对象。
2、不带参数的create方法
public static Configuration create() { Configuration conf = new Configuration(); setUUID(conf); addNutchResources(conf); return conf; }
首先,new Configuration()时,默认会加载core-default.xml与core-site.xml。
然后增加UUID这个参数。
最后增加nutch相关的参数:
private static Configuration addNutchResources(Configuration conf) { conf.addResource("nutch-default.xml"); conf.addResource("nutch-site.xml"); return conf; }
关于Configuraion,请参见:http://blog.csdn.net/jediael_lu/article/details/38751885
关于UUID,请参见:http://blog.csdn.net/jediael_lu/article/details/38758337
3、带参数的create方法
/** Create a {@link Configuration} from supplied properties. * @param addNutchResources if true, then first <code>nutch-default.xml</code>, * and then <code>nutch-site.xml</code> will be loaded prior to applying the * properties. Otherwise these resources won't be used. * @param nutchProperties a set of properties to define (or override) */ public static Configuration create(boolean addNutchResources, Properties nutchProperties) { Configuration conf = new Configuration(); setUUID(conf); if (addNutchResources) { addNutchResources(conf); } for (Entry<Object, Object> e : nutchProperties.entrySet()) { conf.set(e.getKey().toString(), e.getValue().toString()); } return conf; }
此方法根据传入参数决定是否加载core-default.xml与core-site.xml,然后再加载properties中的属性。
4、NutchConfiguration使用了单例模式,
private NutchConfiguration() {} // singleton
通过上述的create方法得到一个Configuration对象。
事实上,这不是一个典型的单例模式,因为create返回的不是NutchConfiguration对象,而是Configuration对象,,并且是通过静态方法来得到这个对象。
关于单例械,可参考:【设计模式:单例模式】使用单例模式加载properties文件
5、这个类可以参考用作基于hadoop的应用程序的加载配置文件的典型方法。
6、Nutch中调用NutchConfiguration的方法:
public static void main(String[] args) throws Exception { final int res = ToolRunner.run(NutchConfiguration.create(), new SolrIndexerJob(), args); System.exit(res); }
关于ToolRunner,请参见:http://blog.csdn.net/jediael_lu/article/details/38751885
【Nutch2.2.1源码分析之一】Nutch加载配置文件的方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。