我尝试在群集(分布式)模式下部署风暴拓扑。不幸的是,我得到了FileNotFoundException
,我找不到任何错误。如果你能帮助我找出问题所在,我会很棒。
我正在使用Storm版本1.0.1。 Zookeeper正在额外的VM上运行。
发生以下堆栈跟踪:
[{:type java.lang.RuntimeException:message java.io.IOException:No 这样的文件或目录:at [org.apache.storm.blobstore.LocalFsBlobStore createBlob LocalFsBlobStore.java 117]} {:type java.io.IOException:message 没有这样的文件或目录:在[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]
答案 0 :(得分:0)
我为我的情况解决了这个问题,希望这也是你的解决方案。
风暴安装要写的文件位于storm.local.dir
+ /blobs
内的本地blob商店(默认情况下,您所在目录中的storm-local/blobs
安装风暴)。您应该检查权限是否与用于运行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