Neo4j 2.0 生产环境集群搭建
一、在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 manual的写法,windows和linux生产环境集群,搭建后的验证方法相同。
注:某些情况下,集群未成功启动,但还是可以进入上面的页面,但是available=false,haRole=UNKNOWN。这种情况应该进入/data/graph.db/message.log查看出错原因。
二、在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、将防火墙设置为非自启动。
4、手动配置网络。
修改 /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虚拟机上的配置为:
192.168.110.132虚拟机上的配置为:
192.168.110.133虚拟机上的配置为:
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
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,并回车。
集群搭建成功的验证方法同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没有配置对其他机器的映射。