集群模式下的Apache Storm FileNotFoundException

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

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

以下堆栈跟踪发生:

[{:type java.lang.RuntimeException:message java.io.IOException:No such file or directory:at [org.apache.storm.blobstore.LocalFsBlobStore createBlob LocalFsBlobStore.java 117]} {:type java.io.IOException:消息没有这样的文件或目录:at [java.io.UnixFileSystem createFileExclusively UnixFileSystem.java -2]}]:trace [[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]

我解决了我的情况,希望这也是你的一个解决scheme。

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

在我的情况下,事实certificate,我的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