Linux下图形数据库Neo4j单机安装

Neo4j数据库简介

 

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.1。官方网址为https://neo4j.com/ Neo4j的相关文档URL地址如下

https://neo4j.com/docs/developer-manual/3.1/

https://neo4j.com/docs/operations-manual/3.1/

https://neo4j.com/docs/developer-manual/3.1/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)

 

Neo4j安装步骤:

 

下面简单介绍Linux下Neo4j 3.1的安装步骤,安装测试环境为Red Hat Enterprise Linux Server release 6.6, Debian下安装具体参考文档,这里不做介绍。

1:下载Neo4j 3.1的安装包,去官方网址注册下载即可。选择特定的版本。下载地址 https://neo4j.com/download/

2:检查上面System Requirement,安装JDK 8

[root@gettestlnx03 ~]# rpm -qa | grep gcj
libgcj-devel-4.4.7-11.el6.x86_64
libgcj-4.4.7-11.el6.x86_64
java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64
[root@gettestlnx03 ~]# rpm -ivh /tmp/jdk-8u121-linux-x64.rpm 
Preparing...                ########################################### [100%]
   1:jdk1.8.0_121           ########################################### [100%]
Unpacking JAR files...
        tools.jar...
        plugin.jar...
        javaws.jar...
        deploy.jar...
        rt.jar...
        jsse.jar...
        charsets.jar...
        localedata.jar...
 
[root@gettestlnx03 ~]# java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
[root@gettestlnx03 ~]# 

编辑/etc/profile文件,添加下面配置信息,然后执行source /etc/profile命令使之生效。

export JAVA_HOME=/usr/java/jdk1.8.0_121/
 
export CLASSPATH=/usr/java/jdk1.8.0_121/lib
 
export PATH=$AVA_HOME/bin:$PATH

 

3:创建一个用户neo4j,用来管理Neo4j 。当然这不是必须的。也可以是其它账号或root账号。

[root@gettestlnx03 ~]# /usr/sbin/groupadd nosql
 
[root@gettestlnx03 ~]# /usr/sbin/useradd -G nosql neo4j

 

4:然后切换到neo4j账户下,解压neo4j-community-3.1.1-unix.tar.gz包

[root@gettestlnx03 ~]# su - neo4j
 
[neo4j@gettestlnx03 ~]$ tar -zxvf /tmp/neo4j-community-3.1.1-unix.tar.gz -C /home/neo4j/

 

配置.bash_profile文件,增加下面一行,并使之生效。

[root@gettestlnx03 neo4j]# su - neo4j
 
[neo4j@gettestlnx03 ~]$ vi .bash_profile 
 
export PATH=/home/neo4j/neo4j-community-3.1.1/bin:$PATH #新增一行
 
[neo4j@gettestlnx03 ~]$ source .bash_profile 

另外,修改配置文件/etc/security/limits.conf ,增加下面配置。

 
neo4j  soft   nofile  40000
neo4j  hard   nofile  40000

The usual default of 1024 is often not enough. This is especially true when many indexes are used or a

server installation sees too many connections. Network sockets count against the limit as well. Users

are therefore encouraged to increase the limit to a healthy value of 40 000 or more, depending on

usage patterns. It is possible to set the limit with the ulimit command, but only for the root user, and

it only affects the current session. To set the value system wide, follow the instructions for your

platform.

编辑/etc/pam.d/su 在配置文件里面增加选项。

session optional pam_xauth.so

 

Neo4j服务关闭启动

 

Neo4j服务的启动、关闭如下所示

[neo4j@gettestlnx03 ~]$ neo4j  start
Starting Neo4j.
Started neo4j (pid 2605). By default, it is available at http://localhost:7474/
There may be a short delay until the server is ready.
See /home/neo4j/neo4j-community-3.1.1/logs/neo4j.log for current status.
[neo4j@gettestlnx03 ~]$ neo4j  status
Neo4j is running at pid 2605
[neo4j@gettestlnx03 ~]$ neo4j  stop
Stopping Neo4j.. stopped
[neo4j@gettestlnx03 ~]$ 

 

如果不设置Neo4j的配置文件,只能从本机访问Neo4J的web控制台(http://localhost:7474/) Neo4j的控制文件一般位于<neo4jhome>/conf/neo4j.conf,例如我测试环境为/home/neo4j/neo4j-community-3.1.1/conf

Neo4j的配置文件将单独再做详细介绍。如果我们需要远程访问Neo4j的Web控制台,我们需要修改neo4j.conf配置文件的参数,如下截图所示:

当然,还需要配置iptables,开放7474端口号,否则你还是无法远程访问Web控制台。

-A INPUT -p tcp -m state --state NEW -m tcp --dport 7474 -j ACCEPT

然后你就可以从远程http://xxx.xxx.xxx.xxx:7474 访问Neo4j的Web控制台了, 第一次登陆会提示你输入初始化密码并提醒你修改密码。默认的密码为neo4j. 如果允许远程访问,切记修改初始化密码。安全非常重要。

 

简单的测试案例

我们先创建一个简单的父子关系图。用来简单演示一下图形数据库的使用。如下所示。

[neo4j@gettestlnx03 bin]$ ./cypher-shell 
username: neo4j
password: **********
Connected to Neo4j 3.1.1 at bolt://localhost:7687 as user neo4j.
Type :help for a list of available commands or :exit to exit the shell.
Note that Cypher queries must end with a semicolon.
neo4j> CREATE (A {id:1,name:'张飞'}), (B {id:2,name:'张小二'}), (C {id:3,name:'张三'}), (D {id:4,name:'张凯'}),(E {id:5,name:'张雨'}),(A)-[:Son]->(B),(A)-[:Son]->(C),(B)-[:Son]->(D),(C)-[:Son]->(E); 
Added 5 nodes, Created 4 relationships, Set 10 properties
neo4j> START n=node(*) RETURN n;
n
({name: "张飞", id: 1})
({name: "张小二", id: 2})
({name: "张三", id: 3})
({name: "张凯", id: 4})
({name: "张雨", id: 5})
neo4j> 



 

如果你在Web控制台执行命令,就能得到如下一个图形关系。如下所示。

 

 

参考资料:

https://neo4j.com/docs/developer-manual/3.1/

时间: 2024-09-25 22:41:32

Linux下图形数据库Neo4j单机安装的相关文章

Linux下Android ADB驱动安装详解

Linux下Android ADB驱动安装详解 概述 最近由于内置的合作商比较多,本人使用的Ubuntu系统好多厂商的Android手机都无法正确的识别,经过一番折腾,和查阅SDK,现把Linux下ADB驱动配置的方法和当中会遇到的相关问题的解决方法整理出来贡献给大家. Linux下使用手机USB调试模式连接ADB进行Android程序的调试,配置驱动没有Windows来的直观. 具体步骤 首先确认手机连接上电脑,lsusb查看下设备记录. matthew@matthew-1230-laptop

Linux下源码编译安装配置SVN服务器的步骤分享_Linux

说明: SVN(subversion)的运行方式有两种: 一种是基于Apache的http.https网页访问形式: 还有一种是基于svnserve的独立服务器模式. SVN的数据存储方式也有两种:一种是在Berkeley DB数据库中存储数据:另一种是使用普通的文件FSFS存储数据. 由于Berkeley DB方式在使用中有可能锁住数据,一般建议使用FSFS方式更安全. 实现目的: 以svnserve的独立服务器模式,使用FSFS数据存储方式源码编译安装配置SVN服务器. 具体操作: 操作系统

Linux下Memcache服务器端的安装

linux下memcache服务器端的安装 服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 . 下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz 另外,memcache用到了libevent这个库用于socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3.(如果你的系统已经安装了libevent,可以不用安装) 官网:http:

Linux下实现SNMP一键安装的Shell脚本_linux shell

Net-SNMP是一个免费的.开放源码的SNMP实现,以前称为UCD-SNMP.SNMP 很多都用其安装之后,作为监控宝和阿里云的系统信息监控使用.下面就来分享linux下实现SNMP一键安装的shell脚本: #!/usr/bin/env bash export LC_ALL=C if [ "$(id -u)" != "0" ] then echo "This script. must be run as root" 1>&2 e

linux下面的j2sdk的安装和配置过程

linux下面的j2sdk的安装和配置过程!   1.下载一个Linux Platform的JDK,建议下载RPM自解压格式的(RPM in self-extracting file,j2sdk-1_4_2_06-linux-i586-rpm.bin): 2.上载到Linux服务器上,在shell下执行命令:[root@LinuxServer rpm]# chmod 755 j2sdk-1_4_2_06-linux-i586-rpm.bin[root@LinuxServer rpm]# ./j2

Ubuntu 下 Neo4j单机安装和集群环境安装

1. Neo4j简介 Neo4j是一个用Java实现的.高性能的.NoSQL图形数据库.Neo4j 使用图(graph)相关的概念来描述数据模型,通过图中的节点和节点的关系来建模.Neo4j完全兼容ACID的事务性.Neo4j以"节点空间"来表 达领域数据,相对于传统的关系型数据库的表.行和列来说,节点空间可以更好地存储由节点关系和属性构成的网络,如社交网络,朋友圈等. 2 neo4j版本介绍 neo4j版本种类比较多,有开源的社区版本,也有企业版本.其中社区版本包括了很多neo4j的

linux下软件的基本安装和卸载

Linux软件的安装和卸载一直是困扰许多新用户的难题.在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的"添加/删除程序"来实现.与其相类似,在Linux下有一个功能强大的软件安装卸载工具,名为RPM.它可以用来建立.安装.查询.更新.卸载软件.该工具是在命令行下使用的.在Shell的提示符后输入rpm,就可获得该命令的帮助信息. 软件的安装 Linux下软件的安装主要有两种不同的形式.第一种安装文件名为xxx.tar.gz:另一种安装文件名为xxx.i386.rp

Linux 下MySQL源码安装完整版

    在Linux中安装MySQL,通常为RPM与源码方式安装.对于生产环境而言,由于需要自定义诸如安装路径.数据文件位置.字符集以及支持的存储引擎等多以源码方式来进行安装.之前有写过一篇关于源码安装的文章,Linux下基于源码方式安装MySQL 5.6,但不是很完整,因此该文可以作为其补充.以下为具体安装步骤,供大家参考.   1.安装前的有关描述必备的包和工具  gcc/g++ :MySQL 5.6开始,需要使用g++进行编译.  cmake  :MySQL 5.5开始,使用cmake进行

Linux下mysql源码安装笔记_Mysql

1.假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源文件 (1)先安装cmake(mysql5.5以后是通过cmake来编译的) [root@ rhel5 local]#tar -zxv -f cmake-2.8.4.tar.gz [root@ rhel5 local]#cd cmake-2.8.4 [root@ rhel5 cmake-2.8.4]#./configure [root@ rhel5 cmake-2.8.4]#make [root@