0
有沒有什麼方法可以設置/獲取全局Hadoop配置對象,如下面的僞代碼?當然,我可以使用靜態方法創建我自己的類,這些方法可以完成我所需要的功能,但如果在Hadoop Java API中可以找到類似的東西,則不會使依賴關係更加複雜。現在我沒有發現任何可用的東西。有什麼建議?全局Hadoop配置存儲
在某些應用程序級別配置程序中。
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 singletone請求配置。
原來的問題被認爲是解決的,雖然我不介意有用的想法。
說實話,代碼中的配置是不好的風格,因爲你需要重新編譯你的項目以便進行配置更改。如果你堅持在代碼中這樣做,你必須自己寫,因爲Hadoop不提供這種代碼中的設施。 – 2013-04-25 08:06:52
好的說法。也許我會採取這個解決方案,但讓我有一些時間來找到有用的包裝方案。 – 2013-04-25 08:11:31
請記住,您可以使用'-Dfoo = bar'選項在命令行中設置這些配置設置,這是另一個不會在代碼中覆蓋它們的原因。 – Quetzalcoatl 2013-04-25 08:31:15