【问题标题】:Elasticsearch data path on a Vagrant shared directoryVagrant 共享目录上的 Elasticsearch 数据路径
【发布时间】:2015-11-13 00:08:20
【问题描述】:

我在带有运行 VirtualBox 的 Windows 主机的 Vagrant 机器上安装了 Elasticsearch。当我将它与默认数据路径一起使用时,它运行正常,但如果我尝试将路径切换到同步的 Vagrant 文件夹,它会抛出一个ElasticsearchIllegalStateException

我正在使用命令行运行

elasticsearch  -Des.path.logs=/shared/logs -Des.path.data=/shared/data

/shared 是我在 Vagrant 中同步文件夹的挂载点。

我得到的错误是:

[2015-07-28 14:15:05,005][WARN ][bootstrap                ] Unable to lock JVM memory (ENOMEM). This can result in part of the JVM being swapped out. Increase RLIMIT_MEMLOCK (ulimit).
[2015-07-28 14:15:05,104][INFO ][node                     ] [Caliban] version[1.7.0], pid[1832], build[929b973/2015-07-16T14:31:07Z]
[2015-07-28 14:15:05,105][INFO ][node                     ] [Caliban] initializing ...
[2015-07-28 14:15:05,390][INFO ][plugins                  ] [Caliban] loaded [], sites []
{1.7.0}: Initialization Failed ...
- ElasticsearchIllegalStateException[Failed to created node environment]
    FileSystemException[/shared: Not a directory]

如果我使用常规的非同步目录运行它,那么它可以正常工作,例如

elasticsearch  -Des.path.logs=/home/vagrant -Des.path.data=/home/vagrant

结果:

[2015-07-28 14:20:27,598][WARN ][bootstrap                ] Unable to lock JVM memory (ENOMEM). This can result in part of the JVM being swapped out. Increase RLIMIT_MEMLOCK (ulimit).
[2015-07-28 14:20:27,693][INFO ][node                     ] [Madame MacEvil] version[1.7.0], pid[1989], build[929b973/2015-07-16T14:31:07Z]
[2015-07-28 14:20:27,694][INFO ][node                     ] [Madame MacEvil] initializing ...
[2015-07-28 14:20:27,958][INFO ][plugins                  ] [Madame MacEvil] loaded [], sites []
[2015-07-28 14:20:28,020][INFO ][env                      ] [Madame MacEvil] using [1] data paths, mounts [[/ (/dev/mapper/VolGroup-lv_root)]], net usable_space [33.6gb], net total_space [37.9gb], types [ext4]
[2015-07-28 14:20:31,951][INFO ][node                     ] [Madame MacEvil] initialized
[2015-07-28 14:20:31,951][INFO ][node                     ] [Madame MacEvil] starting ...
[2015-07-28 14:20:32,053][INFO ][transport                ] [Madame MacEvil] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/10.0.2.15:9300]}
[2015-07-28 14:20:32,074][INFO ][discovery                ] [Madame MacEvil] elasticsearch/18ZhO5W8SwWwJve7KBdV5g
[2015-07-28 14:20:35,859][INFO ][cluster.service          ] [Madame MacEvil] new_master [Madame MacEvil][18ZhO5W8SwWwJve7KBdV5g][localhost.localdomain][inet[/10.0.2.15:9300]], reason: zen-disco-join (elected_as_master)
[2015-07-28 14:20:35,890][INFO ][http                     ] [Madame MacEvil] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/10.0.2.15:9200]}
[2015-07-28 14:20:35,894][INFO ][node                     ] [Madame MacEvil] started
[2015-07-28 14:20:35,919][INFO ][gateway                  ] [Madame MacEvil] recovered [0] indices into cluster_state

我提取了初始化失败的日志,它有以下 Java 异常:

org.elasticsearch.ElasticsearchIllegalStateException: Failed to created node environment
    at org.elasticsearch.node.internal.InternalNode.<init>(InternalNode.java:167)
    at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:159)
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:77)
    at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:245)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:32)
Caused by: java.nio.file.FileSystemException: /shared: Not a directory
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileStore.readAttributes(UnixFileStore.java:111)
    at sun.nio.fs.UnixFileStore.getTotalSpace(UnixFileStore.java:118)
    at org.elasticsearch.monitor.fs.JmxFsProbe.getFSInfo(JmxFsProbe.java:61)
    at org.elasticsearch.env.NodeEnvironment.maybeLogPathDetails(NodeEnvironment.java:221)
    at org.elasticsearch.env.NodeEnvironment.<init>(NodeEnvironment.java:176)
    at org.elasticsearch.node.internal.InternalNode.<init>(InternalNode.java:165)
    ... 4 more

这是 VirtualBox + Vagrant 和 Elasticsearch 的已知问题吗?

【问题讨论】:

  • 您的 windows 文件夹拥有所有访问权限?

标签: elasticsearch filesystems vagrant virtualbox


【解决方案1】:

尝试:

sudo chown -R elasticsearch:elasticsearch /var/lib/elasticsearch/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多