Hadoop配置getConf()返回null

时间:2014-10-22 07:31:10

标签: java spring maven tomcat hadoop

我有一个在tomcat上运行的Spring MVC应用程序,它提交MapReduce作业并分析结果。 My Spring Batch tasklet能够成功调用MR驱动程序类并运行该作业。驱动程序类扩展Configured并实现Tool,并且可以轻松地操作HDFS文件。包含驱动程序类和MR代码的maven模块作为依赖项添加到webapp模块。

为了进行分析,我在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。

1 个答案:

答案 0 :(得分:1)

您必须实施Configured(Configuration conf)构造函数

public ReportAnalyzer(Configuration conf){
    super(conf);
}

或在致电setConf()之前使用analyze()