不多說,直接上干貨!
說在前面的話
首先,查看下你的操作系統的版本。
root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu 14.04.4 LTS \n \l root@zhouls-virtual-machine:~#
Neo4j 是一個NoSQL的圖形數據庫(Graph Database)。Neo4j使用圖(graph)相關的概念來描述數據模型,把數據保存為圖中的節點以及節點之間的關系。很多應用中數據之間的關系,可以很直接地使用圖中節點和關系的概念來建模。對於這樣的應用,使用 Neo4j 來存儲數據會非常的自然,要優於使用關系數據庫。
官方文檔對Neo4j的介紹如下所示:
Neo4j is the world’s leading graph database. It is built from the ground up to be a graph database, meaning that its architecture is designed for optimizing fast management, storage, and traversal of nodes and relationships. Therefore, relationships are said to be first class citizens in Neo4j. An operation known in the relational database world as a join exhibits performance which degrades exponentially with the number of relationships. The corresponding action in Neo4j is performed as navigation from one node to another; an operation whose performance is linear.
Neo4j分社區版(Community Edition)和企業版(Enterprise Edition),社區版本為免費版本。目前的最新版本為Neo4j 3.2。
官方網址為https://neo4j.com/ Neo4j的相關文檔URL地址如下
https://neo4j.com/docs/developer-manual/3.2/
https://neo4j.com/docs/operations-manual/3.2/
https://neo4j.com/docs/developer-manual/3.2/cypher/
System requirements
Neo4j的安裝對硬件、系統等有一些要求,例如CPU、Memory、Disk、Filesystem、Software等
CPU
關於CPU,最低要求是Itel Core i3 推薦使用Intel Core i7 或 IBM POWER 8
Memory
關於Memory,最低要求是2GB, 推薦是16-32GB 或更多。 越大的內存允許處理越大的圖,但必須正確配置,以免破垃圾收集壞性操作。
Disk
除了Disk的容量,Disk的性能對Neoj4的影響非常大,Neo4j的工作負載傾向於隨機讀。選擇平均尋址時間低的存儲,例如SSD
最低要求 10GB SATA
推薦配置 SSD w/SATA
FileSystem
最低要求 ext4(或類似的)
推薦配置 ext4、ZFS
Software
Java
必須安裝OpenJDK 8 或 Oracle Java 8
Operation Sytem
Linux(Ubuntu, Debian) ,但是我的測試環境為Red Hat Enterprise Linux Server release 6.6,暫時還沒有發現什么問題。
Architectures
X86 或 OpenPower(POWER8)
Ubuntu14.04下Neo4j圖數據庫官網安裝部署步驟
第一步:檢查上面System Requirement,安裝JDK 8,並卸載ubuntu里自帶的openjdk。
root@zhouls-virtual-machine:~# java -version The program 'java' can be found in the following packages: * default-jre * gcj-4.8-jre-headless * openjdk-7-jre-headless * gcj-4.6-jre-headless * openjdk-6-jre-headless Try: apt-get install <selected package> root@zhouls-virtual-machine:~# sudo apt-get remove openjdk* Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting 'openjdk-7-tests' for regex 'openjdk*' Note, selecting 'openjdk-jre' for regex 'openjdk*' Note, selecting 'openjdk-6-jre-lib' for regex 'openjdk*' Note, selecting 'openjdk-7' for regex 'openjdk*' Note, selecting 'openjdk-6-jdk' for regex 'openjdk*' Note, selecting 'openjdk-7-jre-zero' for regex 'openjdk*' Note, selecting 'openjdk-6-source' for regex 'openjdk*' Note, selecting 'openjdk-6-jre-headless' for regex 'openjdk*' Note, selecting 'openjdk-6-dbg' for regex 'openjdk*' Note, selecting 'openjdk-7-jdk' for regex 'openjdk*' Note, selecting 'openjdk-7-jre-headless' for regex 'openjdk*' Note, selecting 'openjdk-6-jre' for regex 'openjdk*' Note, selecting 'openjdk-7-dbg' for regex 'openjdk*' Note, selecting 'openjdk-7-jre-lib' for regex 'openjdk*' Note, selecting 'uwsgi-plugin-jvm-openjdk-6' for regex 'openjdk*' Note, selecting 'uwsgi-plugin-jvm-openjdk-7' for regex 'openjdk*' Note, selecting 'openjdk-6-doc' for regex 'openjdk*' Note, selecting 'openjdk-7-jre' for regex 'openjdk*' Note, selecting 'openjdk-7-source' for regex 'openjdk*' Note, selecting 'openjdk-6-jre-zero' for regex 'openjdk*' Note, selecting 'openjdk-7-demo' for regex 'openjdk*' Note, selecting 'openjdk-7-doc' for regex 'openjdk*' Note, selecting 'openjdk-6-demo' for regex 'openjdk*' Note, selecting 'uwsgi-plugin-jwsgi-openjdk-6' for regex 'openjdk*' Note, selecting 'uwsgi-plugin-jwsgi-openjdk-7' for regex 'openjdk*' Package 'openjdk-7' is not installed, so not removed Package 'openjdk-jre' is not installed, so not removed Package 'uwsgi-plugin-jvm-openjdk-6' is not installed, so not removed Package 'uwsgi-plugin-jvm-openjdk-7' is not installed, so not removed Package 'uwsgi-plugin-jwsgi-openjdk-6' is not installed, so not removed Package 'uwsgi-plugin-jwsgi-openjdk-7' is not installed, so not removed Package 'openjdk-7-dbg' is not installed, so not removed Package 'openjdk-7-demo' is not installed, so not removed Package 'openjdk-7-doc' is not installed, so not removed Package 'openjdk-7-jdk' is not installed, so not removed Package 'openjdk-7-jre' is not installed, so not removed Package 'openjdk-7-jre-headless' is not installed, so not removed Package 'openjdk-7-source' is not installed, so not removed Package 'openjdk-7-tests' is not installed, so not removed Package 'openjdk-6-dbg' is not installed, so not removed Package 'openjdk-6-demo' is not installed, so not removed Package 'openjdk-6-doc' is not installed, so not removed Package 'openjdk-6-jdk' is not installed, so not removed Package 'openjdk-6-jre' is not installed, so not removed Package 'openjdk-6-jre-headless' is not installed, so not removed Package 'openjdk-6-jre-lib' is not installed, so not removed Package 'openjdk-6-jre-zero' is not installed, so not removed Package 'openjdk-6-source' is not installed, so not removed Package 'openjdk-7-jre-lib' is not installed, so not removed Package 'openjdk-7-jre-zero' is not installed, so not removed 0 upgraded, 0 newly installed, 0 to remove and 349 not upgraded. root@zhouls-virtual-machine:~#
下載 Java
Java 8 下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
我暫時,傳到/home/zhouls/Downloads下
我將 java 放在目錄/usr/local/
目錄下,路徑和命令為:
root@zhouls-virtual-machine:/usr/local# ls bin etc games include lib man sbin share src root@zhouls-virtual-machine:/usr/local# mkdir app root@zhouls-virtual-machine:/usr/local# cd app/ root@zhouls-virtual-machine:/usr/local/app# pwd /usr/local/app root@zhouls-virtual-machine:/usr/local/app# ls root@zhouls-virtual-machine:/usr/local/app# cp /home/zhouls/Downloads/jdk-8u60-linux-x64.tar.gz . root@zhouls-virtual-machine:/usr/local/app# ls jdk-8u60-linux-x64.tar.gz root@zhouls-virtual-machine:/usr/local/app#
root@zhouls-virtual-machine:/usr/local/app# ls jdk-8u60-linux-x64.tar.gz root@zhouls-virtual-machine:/usr/local/app# tar -zxvf jdk-8u60-linux-x64.tar.gz
為了,兼容去其余的版本,我這里使用軟連接。
root@zhouls-virtual-machine:/usr/local/app# ls jdk1.8.0_60 jdk-8u60-linux-x64.tar.gz root@zhouls-virtual-machine:/usr/local/app# rm jdk-8u60-linux-x64.tar.gz root@zhouls-virtual-machine:/usr/local/app# ll total 12 drwxr-xr-x 3 root root 4096 6月 2 15:03 ./ drwxr-xr-x 11 root root 4096 6月 2 14:58 ../ drwxr-xr-x 8 uucp 143 4096 8月 5 2015 jdk1.8.0_60/ root@zhouls-virtual-machine:/usr/local/app# ln -s jdk1.8.0_60/ jdk root@zhouls-virtual-machine:/usr/local/app# ll total 12 drwxr-xr-x 3 root root 4096 6月 2 15:04 ./ drwxr-xr-x 11 root root 4096 6月 2 14:58 ../ lrwxrwxrwx 1 root root 12 6月 2 15:04 jdk -> jdk1.8.0_60// drwxr-xr-x 8 uucp 143 4096 8月 5 2015 jdk1.8.0_60/ root@zhouls-virtual-machine:/usr/local/app# chown -R root:root jdk1.8.0_60/ root@zhouls-virtual-machine:/usr/local/app# ll total 12 drwxr-xr-x 3 root root 4096 6月 2 15:04 ./ drwxr-xr-x 11 root root 4096 6月 2 14:58 ../ lrwxrwxrwx 1 root root 12 6月 2 15:04 jdk -> jdk1.8.0_60// drwxr-xr-x 8 root root 4096 8月 5 2015 jdk1.8.0_60/ root@zhouls-virtual-machine:/usr/local/app#
至於為什么這樣來做,請移步
大數據各子項目的環境搭建之建立與刪除軟連接(博主推薦)
編輯/etc/profile文件,添加下面配置信息,然后執行source /etc/profile命令使之生效。
root@zhouls-virtual-machine:/usr/local/app# vim /etc/profile
#java export JAVA_HOME=/usr/local/app/jdk export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin
root@zhouls-virtual-machine:/usr/local/app# vim /etc/profile root@zhouls-virtual-machine:/usr/local/app# source /etc/profile root@zhouls-virtual-machine:/usr/local/app# java -version java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode) root@zhouls-virtual-machine:/usr/local/app#
下載Neo4j 3.1的安裝包
去官方網址注冊下載即可。選擇特定的版本。下載地址 https://neo4j.com/download/
選擇“Download Communit Edtion”社區版
在“Other OS Download”中選擇 Linux 版(因為,我一般喜歡用tar.gz方式來安裝,當然,大家也可以用其他方式來安裝)
它會自動下載到你的本地。
https://neo4j.com/artifact.php?name=neo4j-community-3.2.0-unix.tar.gz
root@zhouls-virtual-machine:/usr/local/app# ls jdk jdk1.8.0_60 root@zhouls-virtual-machine:/usr/local/app# cp /home/zhouls/Downloads/neo4j-community-3.2.0-unix.tar.gz . root@zhouls-virtual-machine:/usr/local/app# ls jdk jdk1.8.0_60 neo4j-community-3.2.0-unix.tar.gz root@zhouls-virtual-machine:/usr/local/app#
root@zhouls-virtual-machine:/usr/local/app# ls jdk jdk1.8.0_60 neo4j-community-3.2.0-unix.tar.gz root@zhouls-virtual-machine:/usr/local/app# tar -zxvf neo4j-community-3.2.0-unix.tar.gz
root@zhouls-virtual-machine:/usr/local/app# ls jdk jdk1.8.0_60 neo4j-community-3.2.0 neo4j-community-3.2.0-unix.tar.gz root@zhouls-virtual-machine:/usr/local/app# rm neo4j-community-3.2.0-unix.tar.gz root@zhouls-virtual-machine:/usr/local/app# ll total 16 drwxr-xr-x 4 root root 4096 Jun 2 15:39 ./ drwxr-xr-x 11 root root 4096 Jun 2 14:53 ../ lrwxrwxrwx 1 root root 12 Jun 2 14:55 jdk -> jdk1.8.0_60// drwxr-xr-x 8 root root 4096 Aug 5 2015 jdk1.8.0_60/ drwxr-xr-x 10 lightdm nogroup 4096 May 9 17:22 neo4j-community-3.2.0/ root@zhouls-virtual-machine:/usr/local/app# chown -R root:root neo4j-community-3.2.0/ root@zhouls-virtual-machine:/usr/local/app# ln -s neo4j-community-3.2.0/ neo4j root@zhouls-virtual-machine:/usr/local/app# ll total 16 drwxr-xr-x 4 root root 4096 Jun 2 15:39 ./ drwxr-xr-x 11 root root 4096 Jun 2 14:53 ../ lrwxrwxrwx 1 root root 12 Jun 2 14:55 jdk -> jdk1.8.0_60// drwxr-xr-x 8 root root 4096 Aug 5 2015 jdk1.8.0_60/ lrwxrwxrwx 1 root root 22 Jun 2 15:39 neo4j -> neo4j-community-3.2.0// drwxr-xr-x 10 root root 4096 May 9 17:22 neo4j-community-3.2.0/ root@zhouls-virtual-machine:/usr/local/app#
配置neo4j的環境變量
root@zhouls-virtual-machine:/usr/local/app# vim /etc/profile
#neo4j export NEO4J_HOME=/usr/local/app/neo4j export PATH=$PATH:$NEO4J_HOME/bin
root@zhouls-virtual-machine:/usr/local/app# vim /etc/profile root@zhouls-virtual-machine:/usr/local/app# source /etc/profile root@zhouls-virtual-machine:/usr/local/app#
neo4j的配置文件(圖文詳解)
修改conf/neo4j.conf配置文件,將dbms.connectors.default_listen_address=0.0.0.0注釋字符去掉
如果不設置Neo4j的配置文件,只能從本機訪問Neo4J的web控制台(http://localhost:7474/) Neo4j的控制文件一般位於<neo4jhome>/conf/neo4j.conf,例如我測試環境為/usr/local/app/neo4j/conf
修改前:#dbms.connectors.default_listen_address=0.0.0.0
修改后: dbms.connectors.default_listen_address=0.0.0.0
啟動 Neo4j
root@zhouls-virtual-machine:/usr/local/app/neo4j/conf# neo4j start Active database: graph.db Directories in use: home: /usr/local/app/neo4j config: /usr/local/app/neo4j/conf logs: /usr/local/app/neo4j/logs plugins: /usr/local/app/neo4j/plugins import: /usr/local/app/neo4j/import data: /usr/local/app/neo4j/data certificates: /usr/local/app/neo4j/certificates run: /usr/local/app/neo4j/run Starting Neo4j. WARNING: Max 1024 open files allowed, minimum of 40000 recommended. See the Neo4j manual. Started neo4j (pid 3302). It is available at http://0.0.0.0:7474/ There may be a short delay until the server is ready. See /usr/local/app/neo4j/logs/neo4j.log for current status. root@zhouls-virtual-machine:/usr/local/app/neo4j/conf# neo4j status Neo4j is running at pid 3302 root@zhouls-virtual-machine:/usr/local/app/neo4j/conf#
此時一切正常。
或者
bin/neo4j console
root@zhouls-virtual-machine:/usr/local/app/neo4j# ls bin conf import LICENSES.txt logs plugins run certificates data lib LICENSE.txt NOTICE.txt README.txt UPGRADE.txt root@zhouls-virtual-machine:/usr/local/app/neo4j# bin/neo4j console Active database: graph.db Directories in use: home: /usr/local/app/neo4j config: /usr/local/app/neo4j/conf logs: /usr/local/app/neo4j/logs plugins: /usr/local/app/neo4j/plugins import: /usr/local/app/neo4j/import data: /usr/local/app/neo4j/data certificates: /usr/local/app/neo4j/certificates run: /usr/local/app/neo4j/run Starting Neo4j. WARNING: Max 1024 open files allowed, minimum of 40000 recommended. See the Neo4j manual. 2017-06-02 08:45:20.269+0000 INFO ======== Neo4j 3.2.0 ======== 2017-06-02 08:45:22.614+0000 INFO Starting... 2017-06-02 08:45:27.000+0000 INFO Bolt enabled on 0.0.0.0:7687. 2017-06-02 08:45:50.131+0000 INFO Started. 2017-06-02 08:45:57.150+0000 INFO Remote interface available at http://localhost:7474/
打開neo4j的 Web 端
根據啟動時的提示,在瀏覽器中打開:http://localhost:7474/
第一次登陸會提示你輸入初始化密碼並提醒你修改密碼。默認的密碼為neo4j. 如果允許遠程訪問,切記修改初始化密碼。安全非常重要。
默認值都是neo4j
更改新密碼為123456。
即我的用戶名是neo4j,密碼是123456。
可以點擊頁面上的“Start Learning”進行初步的學習 Neo4j。
至此,Neo4j 已經在 Ubuntu 上安裝好了。