群集模式下的Apache Storm FileNotFoundException

时间:2016-09-06 10:24:48

标签: java docker apache-storm

我尝试在群集(分布式)模式下部署风暴拓扑。不幸的是,我得到了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]

1 个答案:

答案 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