Neo4j在linux环境下的安装

一、Neo4j简介
  Neo4j是一个高性能的、NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下,而不是严格、静态的表中,但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。Neo4j是基于Java的图形数据库,运行Neo4j需要启动JVM进程,因此必须安装JDK1.8及以上版本。

  Neo4j分为Neo4j分社区版(Community Edition)和企业版(Enterprise Edition),社区版为免费版本。Neo4j社区版和企业版在功能上没有本质区别,主要区别在如下几点:
  1)容量:社区版最多支持 320 亿个节点、320 亿个关系和 640 亿个属性,而企业版没有这个限制。
  2)并发:社区版只能部署成单实例,不能做集群。而企业版可以部署成高可用集群或因果集群,从而可以解决高并发量的问题。
  3)容灾:由于企业版支持集群,部分实例出故障不会影响整个系统正常运行。
  4)热备:社区版只支持冷备份,即需要停止服务后才能进行备份,而企业版支持热备,第一次是全量备份,后续是增量备份。
  5)性能:社区版最多用到 4 个内核,而企业能用到全部内核,且对性能做了精心的优化。企业版的性能大概是社区版的2~4倍。
  6)支持:企业版客户能得到 5X10 电话支持(Neo4j 美国电话、邮件,微云数聚电话、微信、邮件)。


二、Neo4j优缺点
1、优点
1)更快的数据库操作。当然,有一个前提条件,那就是数据量较大,在MySql中存储的话需要许多表,并且表之间联系较多(即有不少的操作需要join表)。
2)数据更直观,相应的SQL语句也更好写(Neo4j使用Cypher语言,与传统SQL有很大不同)。
3)更灵活。不管有什么新的数据需要存储,都是一律的节点和边,只需要考虑节点属性和边属性。而MySql中即意味着新的表,还要考虑和其他表的关系。
4)数据库操作的速度并不会随着数据库的增大有明显的降低。这得益于Neo4j特殊的数据存储结构和专门优化的图算法。

2、缺点
1)插入速度比较慢。可能是因为创建节点和边的时候需要保存一些额外信息(为了查询服务)。
2)超大节点处理效率低。当有一个节点的边非常多时(常见于大V),有关这个节点的操作的速度将大大下降。
3)无法增加分配内存的方法,提高数据库速度。

3、适用场景
鉴于其明显的优缺点,Neo4j适合存储”修改较少,查询较多,没有超大节点“的图数据。

4、图数据库选择Neo4j的理由
1)作为较早的一批图形数据库之一,文档和各种技术博客较多。
2)flockdb虽说操作可能简单,也轻量级,但是安装过程复杂,依赖太多。
3)orientdb和arangodb从易用性来说都差不多,速度上arangodb相对最快,因为其使用了混合索引,但是从稳定性来说,neo4j是最好的。


三、安装环境
  Neo4j的安装对硬件、系统等有一些要求,例如CPU、Memory、Disk、Filesystem、Software等。
1)CPU
关于CPU,最低要求是Itel Core i3 推荐使用Intel Core i7 或 IBM POWER 8。
2)Memory
关于Memory,最低要求是2GB, 推荐是16-32GB 或更多。 越大的内存允许处理越大的图,但必须正确配置,以免破垃圾收集坏性操作。
3)Disk
除了Disk的容量,Disk的性能对Neoj4的影响非常大,Neo4j的工作负载倾向于随机读。选择平均寻址时间低的存储,例如SSD,最低要求 10GB SATA,推荐配置 SSD w/SATA。
4)FileSystem
最低要求 ext4(或类似的),推荐配置 ext4、ZFS。
5)Software
必须安装OpenJDK 8 或 Oracle Java 8及以上版本。
6)Operation Sytem
Linux(Ubuntu, Debian等) 。我的测试环境为CentorOS 6.6,暂时还没有发现什么问题。


四、安装步骤
  Neo4j是基于Java的图形数据库,运行Neo4j需要启动JVM进程,因此必须安装JDK1.8及以上版本。

1、下载安装包
Neo4j下载地址:
https://neo4j.com/download/other-releases/#releases
或者直接在服务器上使用命令下载
curl -O http://dist.neo4j.org/neo4j-community-3.4.5-unix.tar.gz

2、解压安装
tar -axvf neo4j-community-3.4.5-unix.tar.gz

3、修改配置
在安装目录下找到conf目录下的neo4j.conf文件,修改相应配置如下:

# 修改第22行load csv时l路径,在前面加个#,可从任意路径读取文件
#dbms.directories.import=import

# 修改35行和36行,设置JVM初始堆内存和JVM最大堆内存
# 生产环境给的JVM最大堆内存越大越好,但是要小于机器的物理内存
dbms.memory.heap.initial_size=5g
dbms.memory.heap.max_size=10g

# 修改46行,可以认为这个是缓存,如果机器配置高,这个越大越好
dbms.memory.pagecache.size=10g

# 修改54行,去掉改行的#,可以远程通过ip访问neo4j数据库
dbms.connectors.default_listen_address=0.0.0.0

# 默认 bolt端口是7687,http端口是7474,https关口是7473,不修改下面3项也可以
# 修改71行,去掉#,设置http端口为7687,端口可以自定义,只要不和其他端口冲突就行
dbms.connector.bolt.listen_address=:7687

# 修改75行,去掉#,设置http端口为7474,端口可以自定义,只要不和其他端口冲突就行
dbms.connector.http.listen_address=:7474

# 修改79行,去掉#,设置http端口为7473,端口可以自定义,只要不和其他端口冲突就行
dbms.connector.https.listen_address=:7473

# 修改227行,去掉#,允许从远程url来load csv
dbms.security.allow_csv_import_from_file_urls=true

# 修改246行,允许使用neo4j-shell,类似于mysql 命令行之类的
dbms.shell.enabled=true

# 修改248行,去掉#,设置连接neo4j-shell的端口,一般都是localhost或者127.0.0.1,这样安全,其他地址的话,一般使用https就行
dbms.shell.host=127.0.0.1

# 修改250行,去掉#,设置neo4j-shell端口,端口可以自定义,只要不和其他端口冲突就行
dbms.shell.port=1337

# 修改254行,设置neo4j可读可写
dbms.read_only=false

# 设置JDK,若系统默认是jdk1.8及以上可以不需要设置
JAVA_HOME=/usr/java/jdk1.8.0_144
JRE_HOME=/usr/java/jdk1.8.0_144/jre

4、启动及其他命令
进入bin目录执行执行如下命令

后台启动:./neo4j start
前台启动:./neo4j console
查看状态:./neo4j status
停止:./neo4j stop
重启:./neo4j restart

5、客户端访问
http://服务器ip地址:7474/browser/
1
在浏览器上第一次访问图数据库所在的机器上的7474端口时,账号neo4j,密码neo4j,会提示修改初始密码。若出现404错误,可能被防火墙阻止了7474端口的访问,需要在防火墙中设置。

 

五、其他配置
1、开机启动
vi /etc/rc.d/rc.local
在文件最后添加如下命令行:
/usr/share/neo4j/bin/neo4j start
其中/usr/share/neo4j/bin/是安装Neo4j的路径,然后保存。

2、修改环境变量
vi /etc/profile
export NEO4J_HOME=/opt/moudles/neo4j/neo4j-community-3.2.10
export PATH=$PATH:$NEO4J_HOME/bin

3、修改可操作文件数量
vi /etc/security/limits.conf
neo4j soft nofile 40000
neo4j hard nofile 40000
————————————————
版权声明:本文为CSDN博主「hdd2803」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hdd2803/article/details/84432007

原文地址:https://www.cnblogs.com/sea520/p/11843729.html