2
我有一個運行在Tomcat上的Spring MVC應用程序,它提交MapReduce作業並分析結果。我的Spring Batch tasklet能夠成功調用MR驅動程序類並運行作業。驅動程序類擴展Configured
並實現Tool
,並且很容易操作HDFS文件。包含驅動程序類和MR代碼的maven模塊作爲依賴項添加到webapp模塊中。Hadoop配置getConf()返回null
爲了分析,我在webapp模塊中創建了一個新的類,它擴展了Configured
。這個類應該讀取一個HDFS文件並對其進行分析。但是,當我嘗試創建FileSystem
對象時,我收到空指針異常。
public class ReportAnalyzer extends Configured{
public void analyze(String path) throws Exception{
FileSystem hdfs=FileSystem.get(getConf()); <-- NPE
//create Path, etc.
}
}
爲了得到FileSystem
對象,還有什麼需要做的嗎? hadoop依賴關係通過mapreduce模塊添加到webapp。
這兩種方法都要求我有配置對象,我試圖從類路徑中自動填充配置對象,就像我們在驅動程序類中使用它時那樣。 – 2014-10-25 07:24:51
如果只有在類路徑中有適當的hadoop配置xmls,那麼使用'Configuration'構造函數'new Configuration()'就足夠了。 – user3122114 2014-10-25 21:30:43