基于Linux系统的Neo4j 4.1社区版本的 介绍与安装(一)

※ 简介
  Neo4j是一个用Java实现的、高性能的、NoSQL图形数据库。Neo4j 使用图(graph)相关的概念来描述数据模型,通过图中的节点和节点的关系来建模。Neo4j完全兼容ACID的事务性。Neo4j以“节点空间”来表达领域数据,相对于传统的关系型数据库的表、行和列来说,节点空间可以更好地存储由节点关系和属性构成的网络,如社交网络,朋友圈等。
  Neo4j分为Neo4j分社区版(Community Edition)和企业版(Enterprise Edition),社区版为免费版本。Neo4j社区版和企业版在功能上没有本质区别,主要区别在如下几点:
  1、容量:社区版最多支持 320 亿个节点、320 亿个关系和 640 亿个属性,而企业版没有这个限制;
  2、并发:社区版只能部署成单实例,不能做集群。而企业版可以部署成高可用集群或因果集群,从而可以解决高并发量的问题;
  3、容灾:由于企业版支持集群,部分实例出故障不会影响整个系统正常运行;
  4、热备:社区版只支持冷备份,即需要停止服务后才能进行备份,而企业版支持热备,第一次是全量备份,后续是增量备份;
  5、性能:社区版最多用到 4 个内核,而企业能用到全部内核,且对性能做了精心的优化;
  6、支持:企业版客户能得到 5X10 电话支持(Neo4j 美国电话、邮件,微云数聚电话、微信、邮件);
  7、插件:还有企业版可以使用Bloom、ETL这些工具,社区版不支持

※ Neo4j优势
Neo4j的特点

  • SQL就像简单的查询语言Neo4j CQL

  • 它遵循属性图数据模型

  • 它通过使用Apache Lucence支持索引

  • 它支持UNIQUE约束

  • 它包含一个用于执行CQL命令的UI:Neo4j数据浏览器

  • 它支持完整的ACID(原子性,一致性,隔离性和持久性)规则

  • 它采用原生图形库与本地GPE(图形处理引擎)

  • 它支持查询的数据导出到JSON和XLS格式

  • 它提供了REST API,可以被任何编程语言(如Java,Spring,Scala等)访问

  • 它提供了可以通过任何UI MVC框架(如Node JS)访问的Java脚本

  • 它支持两种Java API:Cypher API和Native Java API来开发Java应用程序

Neo4j的优点

  • 它很容易表示连接的数据

  • 检索/遍历/导航更多的连接数据是非常容易和快速的

  • 它非常容易地表示半结构化数据

  • Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习

  • 使用简单而强大的数据模型

  • 它不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引

Neo4j的缺点或限制

  • AS的Neo4j 2.1.3最新版本,它具有支持节点数,关系和属性的限制。

  • 它不支持Sharding。

  以下两个图片主要是从关系型数据库和非关系型数据库,对用户表的数据进行多层查询所需时间对比,可以看出,Neo4j在数据层级方面明显优于关系型数据库
基于Linux系统的Neo4j 4.1社区版本的 介绍与安装(一)_第1张图片基于Linux系统的Neo4j 4.1社区版本的 介绍与安装(一)_第2张图片

※ Linux安装
[root@node129 BigData]# tar -zvxf neo4j-community-4.1.1-unix.tar.gz
[root@node129 BigData]# cd neo4j-community-4.1.1/
[root@node129 neo4j-community-4.1.1]# cd conf/
[root@node129 conf]# vim neo4j.conf
  为了使其他电脑可以访问Neo4j服务,需要将以下内容的#号去掉
  dbms.default_listen_address=0.0.0.0
[root@node129 conf]# cd …
[root@node129 neo4j-community-4.1.1]# cd bin
[root@node129 bin]# ./neo4j start
ERROR! Neo4j cannot be started using java version 1.8.0_161.

  • Please use Oracle® Java™ 11, OpenJDK™ 11 to run Neo4j.
  • Please see https://neo4j.com/docs/ for Neo4j installation instructions.

结论 启动neo4j报错,原因是:必须安装jdk 11以上版本

[root@node129 BigData]# tar -zvxf openjdk-11.0.1_linux-x64_bin.tar.gz
[root@node129 BigData]# cd jdk-11.0.1/
[root@node129 jdk-11.0.1]# pwd
/BigData/jdk-11.0.1
[root@node129 jdk-11.0.1]# vim /etc/profile
在文件结尾添加以下内容:

JAVA_HOME=/BigData/jdk-11.0.1
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

[root@node129 jdk-11.0.1]# source /etc/profile
[root@node129 jdk-11.0.1]# java -version
openjdk version “11.0.1” 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)
结论 jdk11 安装成功

[root@node129 jdk-11.0.1]# cd …
[root@node129 BigData]# cd neo4j-community-4.1.1/
[root@node129 neo4j-community-4.1.1]# cd bin/
[root@node129 bin]# ./neo4j start

Directories in use:
  home:         /BigData/neo4j-community-4.1.1
  config:       /BigData/neo4j-community-4.1.1/conf
  logs:         /BigData/neo4j-community-4.1.1/logs
  plugins:      /BigData/neo4j-community-4.1.1/plugins
  import:       /BigData/neo4j-community-4.1.1/import
  data:         /BigData/neo4j-community-4.1.1/data
  certificates: /BigData/neo4j-community-4.1.1/certificates
  run:          /BigData/neo4j-community-4.1.1/run
Starting Neo4j.
Started neo4j (pid 2928). It is available at http://localhost:7474/
There may be a short delay until the server is ready.
See /BigData/neo4j-community-4.1.1/logs/neo4j.log for current status.

结论 :启动neo4j已成功 。
后台启动:./neo4j start
前台启动:./neo4j console
查看状态:./neo4j status
停止:./neo4j stop
重启:./neo4j restart
网址:http://192.168.220.129:7474/browser/ 默认:账号neo4j,密码neo4j

基于Linux系统的Neo4j 4.1社区版本的 介绍与安装(一)_第3张图片
基于Linux系统的Neo4j 4.1社区版本的 介绍与安装(一)_第4张图片

※ neo4j.conf 常用配置

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

    #dbms.directories.import=import

  2. 修改35行和36行,设置JVM初始堆内存和JVM最大堆内存生产环境给的JVM最大堆内存越大越好,但是要小于机器的物理内存

    dbms.memory.heap.initial_size=5g
    dbms.memory.heap.max_size=10g

  3. 修改46行,可以认为这个是缓存,如果机器配置高,这个越大越好

    dbms.memory.pagecache.size=10g

  4. 修改54行,去掉改行的#,可以远程通过ip访问neo4j数据库

    dbms.connectors.default_listen_address=0.0.0.0

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

    #dbms.connector.bolt.listen_address=:7687

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

    dbms.connector.http.listen_address=:7474

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

    dbms.connector.https.listen_address=:7473

  8. 修改227行,去掉#,允许从远程url来load csv

    dbms.security.allow_csv_import_from_file_urls=true

  9. 修改246行,允许使用neo4j-shell,类似于mysql 命令行之类的

    dbms.shell.enabled=true

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

    dbms.shell.host=127.0.0.1

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

    dbms.shell.port=1337

  12. 修改254行,设置neo4j可读可写

    dbms.read_only=false

你可能感兴趣的:(Neo4j,neo4j,.net,linux,大数据)