Neo4j 2.0 生产环境集群搭建

时间:2022-06-28 18:04:00

一、在windows上搭建Neo4j ha cluster的配置方法:

例如:建立集群的三台机器的ip分别为:10.230.9.91,10.230.9.92,10.230.9.93。

 

10.230.9.91机器上的配置如下:

     1、关闭防火墙

     2、ping 10.230.9.92和10.230.9.93,看是否能ping通

     3、解压Neo4j 安装文件到某一目录下(例如F:\)

     4、修改Neo4j配置文件(F:\neo4j-enterprise-2.0.0-M04-windows\neo4j-enterprise-2.0.0-M04\conf\neo4j.properties)

        ha.server_id=1

        ha.initial_hosts=10.230.9.91:5001,10.230.9.92:5001,10.230.9.93:5001

    5、修改Neo4j配置文件(F:\neo4j-enterprise-2.0.0-M04-windows\neo4j-enterprise-2.0.0-M04\conf\neo4j-server.properties)

        org.neo4j.server.webserver.address=0.0.0.0

        org.neo4j.server.database.mode=HA

    6、以管理员权限启动cmd控制台, 进入F:\neo4j-enterprise-2.0.0-M04-windows\neo4j-enterprise-2.0.0-M04\bin

 

10.230.9.92机器上的配置如下:

1、关闭防火墙

2、ping 10.230.9.91和10.230.9.93,看是否能ping通

3、解压Neo4j 安装文件到某一目录下(例如F:\)

4、修改Neo4j配置文件(F:\neo4j-enterprise-2.0.0-M04-windows\neo4j-enterprise-2.0.0-M04\conf\neo4j.properties)

        ha.server_id=2

        ha.initial_hosts=10.230.9.91:5001,10.230.9.92:5001,10.230.9.93:5001

5、修改Neo4j配置文件(F:\neo4j-enterprise-2.0.0-M04-windows\neo4j-enterprise-2.0.0-M04\conf\neo4j-server.properties)

        org.neo4j.server.webserver.address=0.0.0.0

        org.neo4j.server.database.mode=HA

6、以管理员权限启动cmd控制台, 进入F:\neo4j-enterprise-2.0.0-M04-windows\neo4j-enterprise-2.0.0-M04\bin

 

10.230.9.93机器上的配置如下:

1、关闭防火墙

2、ping 10.230.9.91和10.230.9.92,看是否能ping通

3、解压Neo4j 安装文件到某一目录下(例如F:\)

4、修改Neo4j配置文件(F:\neo4j-enterprise-2.0.0-M04-windows\neo4j-enterprise-2.0.0-M04\conf\neo4j.properties)

        ha.server_id=3

        ha.initial_hosts=10.230.9.91:5001,10.230.9.92:5001,10.230.9.93:5001

5、修改Neo4j配置文件(F:\neo4j-enterprise-2.0.0-M04-windows\neo4j-enterprise-2.0.0-M04\conf\neo4j-server.properties)

        org.neo4j.server.webserver.address=0.0.0.0

        org.neo4j.server.database.mode=HA

6、以管理员权限启动cmd控制台, 进入F:\neo4j-enterprise-2.0.0-M04-windows\neo4j-enterprise-2.0.0-M04\bin

 

启动集群:

在三个控制台分别输入Neo4j start,并回车。

 

 

集群启动成功验证:

在三台机器的浏览器分别输入:http://localhost:7474 回车,进入server info,点击左侧导航栏“High Availability”,显示如下即为成功启动cluster:

 Neo4j 2.0 生产环境集群搭建Neo4j 2.0 生产环境集群搭建Neo4j 2.0 生产环境集群搭建Neo4j 2.0 生产环境集群搭建

注:按照neo4j manual的写法,windows和linux生产环境集群,搭建后的验证方法相同。

注:某些情况下,集群未成功启动,但还是可以进入上面的页面,但是available=false,haRole=UNKNOWN。这种情况应该进入/data/graph.db/message.log查看出错原因。

 Neo4j 2.0 生产环境集群搭建

 

二、在RedHat6.0上搭建Neo4j ha cluster的配置方法:

例如:建立集群的三个虚拟机的ip分别为:192.168.110.131,192.168.110.132,192.168.110.133。

 

三台虚拟机上相同的配置:

    1、进入root,创建neo4j用户。

    2、关闭防火墙,$service iptables stop。

    3、将防火墙设置为非自启动。

 Neo4j 2.0 生产环境集群搭建

4、手动配置网络。

 Neo4j 2.0 生产环境集群搭建Neo4j 2.0 生产环境集群搭建Neo4j 2.0 生产环境集群搭建

    修改 /etc/sysconfig/network 主机名,相应的主机名如下:

        192.168.110.131虚拟机上的主机配置为NETWORKING=yes HOSTNAME=neo4j-01

        192.168.110.132虚拟机上的主机配置为NETWORKING=yes HOSTNAME=neo4j-02

        192.168.110.133虚拟机上的主机配置为NETWORKING=yes HOSTNAME=neo4j-03

    修改/etc/hosts,相应的配置如下:

        192.168.110.131虚拟机上的配置为:

 Neo4j 2.0 生产环境集群搭建

192.168.110.132虚拟机上的配置为:

 Neo4j 2.0 生产环境集群搭建

192.168.110.133虚拟机上的配置为:

 Neo4j 2.0 生产环境集群搭建

5、配置java环境

 将jdk安装包解压至/usr/java

 在/etc/profile 文件中添加:

export JAVA_HOME=/usr/java/jdk1.7.0_25

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 Neo4j 2.0 生产环境集群搭建

6、配置ssh

各个虚拟机上 /etc/ssh/sshd_config文件放开如下属性:

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile  .ssh/authorized_keys

UseDNS  yes

 

7、(三个虚拟机都配)分别进入neo4j账户,配置ssh无密码登陆:

$ssh-keygen –t rsa

   一路回车,/home/neo4j/.ssh/中出现两个文件:id_rsa(私钥)和id_rsa.pub(公钥)。

    $cd /home/neo4j/.ssh

$cat id_rsa.pub >> authorized_keys

   /home/neo4j/.ssh/中出现authorized_keys文件。

$sudo root

$输入root账户的密码

Root]$chmod 700 /home/neo4j/.ssh

Root]$chmod 600 /home/neo4j/.ssh/*

切换至neo4j账户:

Neo4j]$ssh localhost

会让输入(yes/no),输入yes回车

第一次可能会让输入密码,以后就不会输入密码了。如果出现总让输入密码的状况,说明ssh配置不成功。

 

8、配置相互间ssh无密码登陆:

将neo4j-01上的/home/neo4j/.ssh/authorized_keys的内容追加到neo4j-02和neo4j-03上的此文件中。结果是保证每个虚拟机上的公钥(id_rsa.pub)的内容,在各个虚拟机的authorized_keys文件中都有。

验证ssh:

        Neo4j-01]$ssh localhost

Neo4j-01]$ssh 192.168.110.132

Neo4j-01]$ssh neo4j-02

以上如果都不需要密码登陆,则配置成功。

    9、配置neo4j:

192.168.110.131机器上的配置如下:

     1、解压Neo4j 安装文件到某一目录下(例如/home/neo4j/Documents)

     2、修改Neo4j配置文件(/home/neo4j/Documents/neo4j-enterprise-2.0.0-M06/conf/neo4j.properties)

ha.server_id=1

ha.initial_hosts=192.168.110.131:5001,192.168.110.132:5001,192.168.110.133:5001

    5、修改Neo4j配置文件(/home/neo4j/Documents/neo4j-enterprise-2.0.0-M06/conf/neo4j-server.properties)

        org.neo4j.server.webserver.address=0.0.0.0

        org.neo4j.server.database.mode=HA

    6、进入控制台

        $cd /home/neo4j/Document/neo4j-enterprise-2.0.0-M06/bin

        $./neo4j start

 

192.168.110.132机器上的配置如下:

     1、解压Neo4j 安装文件到某一目录下(例如/home/neo4j/Documents)

     2、修改Neo4j配置文件(/home/neo4j/Documents/neo4j-enterprise-2.0.0-M06/conf/neo4j.properties)

ha.server_id=2

ha.initial_hosts=192.168.110.131:5001,192.168.110.132:5001,192.168.110.133:5001

    5、修改Neo4j配置文件(/home/neo4j/Documents/neo4j-enterprise-2.0.0-M06/conf/neo4j-server.properties)

        org.neo4j.server.webserver.address=0.0.0.0

        org.neo4j.server.database.mode=HA

    6、进入控制台

        $cd /home/neo4j/Document/neo4j-enterprise-2.0.0-M06/bin

        $./neo4j start

 

192.168.110.133机器上的配置如下:

     1、解压Neo4j 安装文件到某一目录下(例如/home/neo4j/Documents)

     2、修改Neo4j配置文件(/home/neo4j/Documents/neo4j-enterprise-2.0.0-M06/conf/neo4j.properties)

ha.server_id=3

ha.initial_hosts=192.168.110.131:5001,192.168.110.132:5001,192.168.110.133:5001

    5、修改Neo4j配置文件(/home/neo4j/Documents/neo4j-enterprise-2.0.0-M06/conf/neo4j-server.properties)

        org.neo4j.server.webserver.address=0.0.0.0

        org.neo4j.server.database.mode=HA

    6、进入控制台

        $cd /home/neo4j/Document/neo4j-enterprise-2.0.0-M06/bin

        $./neo4j start

 

启动集群:

在三个控制台分别输入Neo4j start,并回车。

 

 Neo4j 2.0 生产环境集群搭建

   集群搭建成功的验证方法同windows。

 

 

搭建过程中,message.log可能出现的错误:

1、ERROR [o.n.c.c.NetworkSender]: Receive exception:

java.net.NoRouteToHostException: No route to host

                   可能没有关闭防火墙

2、WARN [o.n.c.c.NetworkSender]: Could not connect to:cluster://192.168.1.129:5001
org.neo4j.cluster.com.ChannelOpenFailedException: Client could not connect to /192.168.1.129:5001
ERROR [o.n.c.c.NetworkSender]: Channel [id: 0xfc016066] had no URI associated with it.

                   Ssh没有配置成功,或者因为使用root账户创建ssh。

3、WARN [o.n.k.h.c.HighAvailabilityModeSwitcher]: Consistency checker failed
org.neo4j.com.ComException: MasterClient18 could not connect to neo4j-01:6001

                   /etc/hosts没有配置对其他机器的映射。