zoukankan      html  css  js  c++  java
  • Linux下安装neo4j

    1、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

  • 相关阅读:
    P2813 母舰
    P5367 【模板】康托展开
    P1816 忠诚
    P3865 【模板】ST表
    P1913 L国的战斗之伞兵
    P4939 Agent2
    P1894 [USACO4.2]完美的牛栏The Perfect Stall
    P5017 摆渡车
    P1330 封锁阳光大学
    P5018 对称二叉树
  • 原文地址:https://www.cnblogs.com/liviniu/p/14822073.html
Copyright © 2011-2022 走看看