Neo4j 安裝配置
- 安裝java 環境
Neo4j是基於Java的圖形數據庫,運行Neo4j需要啓動JVM進程,因此必須安裝JDK1.8及以上版本。
預先檢查jdk安裝版本,沒有jdk或者jdk 不達標,請安裝或者升級
- 修改系統打開文件數量限制
linux 默認打開文件數linux 默認打開文件數爲1024個,通過ulimit -a 可以查看open files
修改
Vim /etc/security/limits.conf
增加如下信息:
* soft nofile 65536
* hard nofile 65536
保存後,重啓生效
3、安裝 配置neo4j
3.1、下載neo4j
官方下載:https://neo4j.com/download-center/#community
(只能下載最新的,歷史版本沒找到)
或者在服務器上直接下載:
curl -O http://dist.neo4j.org/neo4j-community-3.5.5-unix.tar.gz
如果要下載其他版本,修改版本號即可
下載好之後解壓即可:
tar -zxvf neo4j-community-3.5.5-unix.tar.gz
3.2 、配置參數
修改解壓目錄下conf 目錄下的配置文件
(1)修改第22行load csv時的路徑,在前面加個#,可從任意路徑讀取文件。默認只能從import 路徑下讀取
#dbms.directories.import=import
(2)修改35行和36行,設置JVM初始堆內存和JVM最大堆內存(默認是512M),修改46行(默認是10g)
memory=64G推薦設置
dbms.memory.heap.initial_size=24g
dbms.memory.heap.max_size=24g
dbms.memory.pagecache.size=28g
(3)修改54行,去掉改行的#,可以遠程通過ip訪問neo4j數據庫
dbms.connectors.default_listen_address=0.0.0.0
(4) 默認 bolt端口是7687,http端口是7474,https關口是7473,不修改下面3項也可以
# 修改71行,75行,79行,去掉#,設置,端口可以自定義,只要不和其他衝突就行dbms.connector.bolt.listen_address=:7687
dbms.connector.http.listen_address=:7474
dbms.connector.https.listen_address=:7473
(5)修改245行,去掉#,允許從遠程url來load csv
dbms.security.allow_csv_import_from_file_urls=true
(5)修改265行,設置neo4j可讀可寫
dbms.read_only=false
3.3 、啓動
進入bin 目錄下
啓動:./neo4j start
停止:./neo4j stop
查看狀態:./neo4j status
配置環境變量
vim /etc/profile
在最後邊添加
NEO4J_HOME=/opt/neo4j/neo4j-community-3.5.5
PATH=$PATH:$NEO4J_HOME/bin
export NEO4J_HOME PATH
然後 source /etc/profile
這樣就可以全局使用neo4j
3.4、訪問
啓動成功後
訪問瀏覽器:http://10.10.20.176:7474/
這裏會跳到一個登錄頁面
第一次訪問賬號neo4j,密碼neo4j,會提示修改初始密碼
修改完密碼即可
3.5 、添加算法庫
執行 CALL algo.list()可以發現 neo4j沒有algo 相關算法庫,這就需要裝插件
到 https://github.com/neo4j-contrib/neo4j-graph-algorithms/releases
下載對應版本的jar。這裏是3.5.5
發現沒有找到,我們就下載最新的3.5.4.0
下載完放到 解壓目錄plugins下
修改配置文件在最後邊添加配置
dbms.security.procedures.unrestricted=algo.*
重啓:
可以發現有算法了
3.6 日誌保留策略
Neo4j 在進行大量增刪操作後,會在/data/databases/graph.db 目錄下
產生大量事務日誌,佔據磁盤空間
在配置文件裏添加如下配置(根據需要修改值)
- 每多少秒做一次checkpoint
- 每多少次事務做一次checkpoint
- 只保留最近的一次
- 事務日誌最大多少M
dbms.checkpoint.interval.time=30s
dbms.checkpoint.interval.tx=1
dbms.tx_log.rotation.retention_policy=false
dbms.tx_log.rotation.size=1M
- 配置開機自啓
在/etc/systemd/system 下 vim neo4j.service
加入如下內容:
[Unit]
Description=Neo4j Graph Database
After=network.target
[Service]
Type=forking
User=root
Group=root
ExecStart=/opt/neo4j/neo4j-community-3.5.5/bin/neo4j start
ExecStop=/opt/neo4j/neo4j-community-3.5.5/bin/neo4j stop
ExecReload=/opt/neo4j/neo4j-community-3.5.5/bin/neo4j restart
RemainAfterExit=no
Restart=on-failure
PIDFile = /opt/neo4j/neo4j-community-3.5.5/run/neo4j.pid
Environment="NEO4J_CONF=/opt/neo4j/neo4j-community-3.5.5/conf" "NEO4J_HOME=/opt/neo4j/neo4j-community-3.5.5" "JAVA_HOME=/opt/jdk/jdk1.8.0_211"
LimitNOFILE=60000
TimeoutSec=600
[Install]
WantedBy=multi-user.target
注意路徑換成自己的neo4j 路徑和java 路徑
保存後退出·
啓動:systemctl start neo4j
關閉:systemctl stop neo4j
查看狀態:systemctl status neo4j
加入開機自啓: systemctl enable neo4j
取消開機自自啓:systemctl disable neo4j