2016-09-06 189 views
1

我试过在集群(分布式)模式下部署风暴拓扑。不幸的是我得到了FileNotFoundException,我找不到任何我犯过的错误。如果你能帮我弄清楚什么是错的,我会很棒的。集群模式下的Apache Storm FileNotFoundException

我使用Storm版本1.0.1。 Zookeeper不在额外的虚拟机上运行。

以下堆栈跟踪发生:

[{:类型了java.lang.RuntimeException:消息产生java.io.IOException:否 这样的文件或目录:在 [org.apache.storm.blobstore .LocalFsBlobStore createBlob LocalFsBlobStore.java 117]} {:类型java.io.IOException的:消息 没有这样的文件或目录:在[java.io.UnixFileSystem createFileExclusively UnixFileSystem.java -2]}]:微量 [[java的.io.UnixFileSystem createFileExclusively UnixFileSystem.java -2] [java.io.File createNewFile File.java 1012]
[org.apache.storm.blobstore.LocalFsBlobStoreFile的getOutputStream LocalFsBlobStoreFile.java 109]
[org.apache.storm.blobstore.BlobStore $ BlobStoreFileOutputStream BlobStore.java 316] [org.apache.storm.blobstore.LocalFsBlobStore createBlob LocalFsBlobStore.java 111]
[org.apache.storm.blobstore.BlobStore createBlob BlobStore.java 217]

回答

0

我解决了这个问题对我的情况下,希望这也是您的一个解决方案。

风暴安装要编写的文件位于storm.local.dir + /blobs(默认情况下,即安装Storm的目录中的storm-local/blobs)位于本地Blob存储中。您应该检查权限是否与您用来运行Storm的用户相匹配。

在我的情况下,事实证明,我的Systemd服务文件中的用户和组信息出现在exec之后,因此它不起作用。如果您还使用Systemd启动nimbus,请使用以下模板:

[Unit] 
Description=start and stop storm nimbus 
After=network.target 

[Service] 
User=storm 
Group=storm 
WorkingDirectory=/home/storm/apache-storm-1.0.2 
ExecStart=/home/storm/apache-storm-1.0.2/bin/storm nimbus 
Restart=on-failure