Neo4J 2.x与Rexster

时间:2014-02-26 18:59:38

标签: neo4j rexster

我想知道是否有人成功配置Rexster-server以使用Neo4j-2.0.1-HA?我读了一些关于可比性的线索,但从未找到一个好的解决方案。

我从master中取出了最新的rexster源(2.5.0-SNAPSHOT)并构建了它。在配置Neo4j2.0.1和rexster后,我尝试启动rexster时出现以下错误。

线程“main”中的异常java.lang.NoSuchMethodError:org.neo4j.kernel.GraphDatabaseAPI.getNodeManager()Lorg / neo4j / kernel / impl / core / NodeManager;

Rexster配置如下。

<graph>
            <graph-enabled>true</graph-enabled>
            <graph-name>KooboodleGraph</graph-name>
            <graph-type>neo4jgraph</graph-type>
            <graph-location>/mnt/neo4j/data/graph.db</graph-location>
            <!-- <graph-location>http://x.x.x.x:7474/db/data</graph-location> -->
        <graph-high-availability>true</graph-high-availability>
            <extensions>
                <allows>
                    <allow>tp:gremlin</allow>
                    <allow>zeus-v1:*</allow>
                </allows>
            </extensions>
        <properties>
            <neostore.nodestore.db.mapped_memory>285M</neostore.nodestore.db.mapped_memory>
                <neostore.relationshipstore.db.mapped_memory>285M</neostore.relationshipstore.db.mapped_memory>
                <neostore.propertystore.db.mapped_memory>100M</neostore.propertystore.db.mapped_memory>
                <neostore.propertystore.db.strings.mapped_memory>100M</neostore.propertystore.db.strings.mapped_memory>
                <neostore.propertystore.db.arrays.mapped_memory>10M</neostore.propertystore.db.arrays.mapped_memory>
                <neostore.propertystore.db.index.mapped_memory>10M</neostore.propertystore.db.index.mapped_memory>
                <neostore.propertystore.db.index.keys.mapped_memory>10M</neostore.propertystore.db.index.keys.mapped_memory>
            <ha.machine_id>1</ha.machine_id>
                <ha.server>x.x.x.x:6001</ha.server>
            <ha.cluster_server>x.x.x.x:5001-5099</ha.cluster_server>
                <ha.initial_hosts>x.x.x.x:5001,x.x.x.x:5001</ha.initial_hosts>
        </properties>
            <dependency>
                <groupId>org.neo4j</groupId>
                <artifactId>neo4j-ha</artifactId>
                <version>2.0</version>
                </dependency>
                <dependency>
                    <groupId>org.neo4j</groupId>
                <artifactId>neo4j-management</artifactId>
                <version>2.0</version>
            </dependency>   
        </graph>

任何帮助或想法都会受到很大的影响。

谢谢!

3 个答案:

答案 0 :(得分:1)

看起来Rexter依赖于Neo4j的非公共API。由于Neo4j的许多内部已经从1.x变为&gt; 2.x我的猜测是Rexter没有跟进这些变化。例如。 GraphDatabaseAPI是非公开API的一部分。

Neo4j的公共API记录在http://api.neo4j.org/

要解决此问题,需要对Rexter的代码库进行适当修补。

答案 1 :(得分:1)

请查看Rexster专用于Neo4j2的新分支:

https://github.com/tinkerpop/rexster/tree/neo4j2

Rexster不会以任何方式直接引用Neo4j API(它仅在Blueprints上运行),但是在主分支中设置事物的方式存在许多命名冲突和事件。我不完全确定TinkerPop将如何最终释放Rexster对Neo4j2的支持...有些人认为需要它,但至少在此之前可以构建该分支以开始游戏。

答案 2 :(得分:0)

Rexster配置是ha.machine_id但是Neo4j HA配置是ha.server_id,然后是Rexster + Neo4j2,然后rexster.xml包含它们。