2

我正在尝试在运行 Ubuntu的 Virtualbox 中运行 Neo4j 服务器。服务器文件和数据库位于我的 Windows 主机中,并通过共享文件夹(vboxsf) 访问。不幸的是,我无法轻松地将数据传输到虚拟机并直接在那里运行(由于虚拟磁盘上的可用空间不足。我试图放大它但没有成功。)

该数据库是由我的队友设置和使用的。现在我想访问我系统上准备好的数据。(顺便说一句,我是 neo4j 的新手)我的整体设置(VM 而不是本机系统)有点不同,我们无法弄清楚实际问题是什么。

当我尝试通过控制台启动服务器时,我得到了这个:

don@VirtualHAL:~/Data/SharedFolder/DBs/neo4j-community-1.9$ bin/neo4j start
WARNING! You are using an unsupported Java runtime. Please use Oracle(R) Java(TM) Runtime Environment 7.
Starting Neo4j Server...WARNING: not changing user
process [7248]... waiting for server to be ready.............. Failed to start within 120 seconds.
Neo4j Server may have failed to start, please check the logs.

关于 java 版本的警告可能是由于我安装了 Java OpenJDK 7 造成的。(我的队友使用相同的,没有任何进一步的问题)。

直到出现“未能在 120 秒内启动”消息实际上不需要 2 分钟。

当然,我检查了日志:

8/21/13 8:37:12 PM org.neo4j.server.modules.RESTApiModule INFO: Mounted REST API at [/db/data/]
8/21/13 8:37:12 PM org.neo4j.server.modules.ManagementApiModule INFO: Mounted management API at [/db/manage/]
8/21/d13 8:37:12 PM org.neo4j.server.rrd.RrdFactory SEVERE: Unable to open rrd store, attempting to recreate it**
8/21/13 8:37:12 PM org.neo4j.server.rrd.RrdFactory SEVERE: current RRDB is invalid, renamed it to /home/don/Data/SharedFolder/DBs/neo4j-community-1.9/data/rrd-invalid-1377110232712
8/21/13 8:37:12 PM org.neo4j.server.rrd.RrdFactory SEVERE: Unable to create new rrd store
8/21/13 8:37:12 PM org.neo4j.server.CommunityBootstrapper SEVERE: 
java.lang.RuntimeException: java.io.IOException: Invalid argument
    at org.neo4j.server.rrd.RrdFactory.createRrdb(RrdFactory.java:176)
    at org.neo4j.server.rrd.RrdFactory.recreateArchive(RrdFactory.java:204)
    at org.neo4j.server.rrd.RrdFactory.createRrdb(RrdFactory.java:159)

这是日志的(看似)相关部分。 Unable to create new rrd store- 这可能是什么原因?到目前为止,搜索错误消息的任何部分都没有给我任何新信息。

4

2 回答 2

2

在写下问题时,我想出了一个相当简单的解决方案:

没有足够的空间将数据库(几 GB)放入虚拟机,但足以运行 neo4j 服务器本身并且只能通过共享文件夹访问数据。

所以,现在当我在 Ubuntu 中运行它时,服务器会按预期启动:

dustin@VirtualHAL:~/Software/neo4j-community-1.9$ bin/neo4j start
WARNING! You are using an unsupported Java runtime. Please use Oracle(R) Java(TM) Runtime Environment 7.
Starting Neo4j Server...WARNING: not changing user
process [7676]... waiting for server to be ready............. OK.
Go to http://localhost:7474/webadmin/ for administration interface.

然而,这可能不是上述问题的明确答案。当服务器本身放置在共享文件夹中时,有人可以添加有关为什么服务器无法正确启动(或无法设置 rrd 存储)的信息吗?

于 2013-08-22T09:17:45.457 回答
1

也遇到了这个。Neo4j 为 RRD 使用外部库 - rrd4j。如果您查看它的源代码,您会发现它使用了内存映射文件。

https://github.com/fusesource/rrd4j/blob/rrd4j-2.0.7/src/main/java/org/rrd4j/core/RrdNioBackend.java

我在网上找不到任何东西,但我猜测用于挂载共享文件夹的 Virtualbox 的来宾添加不支持内存映射。我不认为这是操作系统的事情,而是内核实现的事情。我很想知道是不是这样。我的C-fu不强,但如果可能的话,我真的很想支持这个。

[编辑]

是的,这是访客添加。这张票:https ://www.virtualbox.org/ticket/819 - 7 岁。从 2 周前开始有针对 OSX 的活动。

于 2014-11-29T16:39:19.823 回答