一、在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沒有配置對其他機器的映射。
