有没有办法设置/获取全局Hadoop配置对象,如下面的伪代码?当然,我可以使用静态方法创建自己的类,这些方法可以满足我的需求但是如果在Hadoop Java API中找到类似的东西可以更好地使依赖变得更复杂,那么它会更好。到现在为止,我找不到任何可用的东西。有什么建议吗?
在某些应用程序级配置器中。
Configuration conf = new Configuration();
conf.set(...);
<something>.SetGlobalConfig(conf);
在较低层客户端代码中。
Configuration conf = <something>.GetGlobalConfig();
// ... something that needs configuration.
更新1:我了解Hadoop .xml配置文件,实际上它是可能的解决方案之一,但最好是在代码中完成所有配置,而不需要外部文件。
更新2:根据提供的要点,决定使用与工作代码一起打包的“通常”.xml配置。客户端可以通过命令行参数“调整”一些参数,这些参数由于使用相同的工具而保持类似hadoop的语义。为了从Hadoop配置/用户方面隔离其余代码,甚至更多的应用程序代码通过特殊的COnfigurator单一单元请求配置。
虽然我不介意反对有用的想法,但原始问题被认为已经解决了。
答案 0 :(得分:1)
致电时
Configuration conf = new Configuration();
它会查看项目的类路径core-default.xml
和core-site.xml
。
而core-site.xml
正是您想要将“全局”配置放入的位置。