2013-12-17 29 views
0

我击中的一部分的NullPointerException()

我试图执行github.com/stormprocessor/storm-state的示例代码https://github.com/stormprocessor/storm-state/blob/master/src/jvm/storm/state/example/MapExample.java代码。它使用HDFS。

,但它给一个NullPointerException异常如

java.lang.NullPointerException 
    at storm.state.hdfs.HDFSStore.getMeta(HDFSStore.java:37) 
    at storm.state.PartitionedState.getState(PartitionedState.java:11) 
    at storm.state.bolt.StatefulBoltExecutor.prepare(StatefulBoltExecutor.java:36) 
    at backtype.storm.daemon.executor$fn__4052$fn__4061.invoke(executor.clj:610) 
    at backtype.storm.util$async_loop$fn__465.invoke(util.clj:375) 
    at clojure.lang.AFn.run(AFn.java:24) 

在上面的链接的代码,我已经改变

builder.setBolt("counter", new StatefulBoltExecutor(new WordCount(), new HDFSStore("hdfs://ip-10-202-7-99.ec2.internal:8020/tmp/data")), 8) 
      .fieldsGrouping("spout", new Fields("word")); 

builder.setBolt("counter", new StatefulBoltExecutor(new WordCount(), new HDFSStore("hdfs://localhost:9000/home/mohit/hadoop/tmp/dfs/data")), 8) 

这是我的HDFS路径。

代码错误日志中存在的

https://github.com/stormprocessor/storm-state/blob/master/src/jvm/storm/state

对不起,非常少的环节,因为我是一个学生的学习有非常少的声誉, 请帮助,在此先感谢!

回答

0

我认为你得到的错误是因为你的namenode没有监听你在给定的代码中配置的端口9000。尝试在core-site.xml文件中验证此属性的值fs.default.name,并检查您的namenode正在使用哪个端口。我认为它可能是8020.如果这就是说8020,那么你的代码将如下所示。

builder.setBolt( “反”,新StatefulBoltExecutor(新字计数(),新HDFSStore( “HDFS://本地主机: /家庭/莫希特/ Hadoop的/ tmp目录/ DFS /数据”)),8 )

我希望这可以解决您的问题

+0

谢谢您的答复,我的端口是9000核心-site.xml中,读我试着回答这两个变化方案和核心-site.xml中的端口后,到8020,我的名字节点正在工作,并在端口8020听到。我通过在浏览器中访问本地主机:50070来符合此要求。但是在日志文件中也有相同的错误。 –

+0

我认为你应该尝试重新启动集群,即所有的守护进程服务,并检查是否有效 – Binary01