`
m635674608
  • 浏览: 5044286 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

面向图的数据库Neo4J部署与使用

 
阅读更多

Neo4J介绍 

 

图数据库的需求

 

能以明显直观的方式存放图数据,而不是扭曲变化为别的替代方式

 

能简单地进行图操作,例如寻路,遍历等

 

 

 

图数据库的基本思想

 

图(Graph)由节点(node,顶点)和关系(relationship,边)组成

 

图在节点上记录数据(节点的属性,property)

 

节点由关系组织成图,关系也具有属性

 

寻路(Traversal,另一意思是遍历)在图上定位由节点组成的路径

 

索引(index)将属性映射到节点或关系

 

图数据库管理系统 管理 图 及其上的 索引

 

Neo4J是当前主流的图数据库产品

 

 

 

Neo4J

 

由Neo Technology开发的开源图数据库,该公司从2000年起就开始研发图数据库,目前neo4j已经成为领先的图数据库产品,思科,惠普,德意志电信等跨国企业均成为客户

 

特点:

 

直观的图模型存储

 

完全支持ACID事务

 

基于磁盘的持久存储

 

支持海量数据,比如数十亿节点/关系/属性级别的数据

 

高可用的分布式集群

 

高度优化,迅速的图查询(Cypher图查询语言)

 

可以嵌入(只需几个小jar文件),支持REST API

 

 

 

Neo4J的安装

 

 

Neo4j的部署模式

 

独立模式:独立的服务器,可以通过REST API、或基于语言的驱动等访问

 

嵌入模式:提供若干库,嵌入到Java程序运行

 

 

 

##安装linux版本

 

http://dist.neo4j.org/neo4j-community-1.9.4-unix.tar.gz

 

下载后解包 (这里下载的是社区版)

 

切换root,运行./bin/neo4j install

 

##安装neo4j需要首先安装JDK

 

# tar zxf neo4j-community-1.9.4-unix.tar.gz

 

# mv neo4j-community-1.9.4 neo4j

 

# cd neo4j/bin

 

[root@linux bin]# ./neo4j install

 

Graph-like power should be handled carefully. What user should run Neo4j? [oracle] root

 

 

 

##修改配置文件

 

./conf/neo4j-server.properties

 

org.neo4j.server.webserver.address=0.0.0.0

 

 

 

##启动

 

[root@linux bin]# ./neo4j status

 

Neo4j Server is not running

 

[root@linux bin]# ./neo4j start

 

WARNING: Max 1024 open files allowed, minimum of 40 000 recommended. See the Neo4j manual.

 

Using additional JVM arguments: -server -XX:+DisableExplicitGC -Dorg.neo4j.server.properties=conf/neo4j-server.properties -Djava.util.logging.config.file=conf/logging.properties -Dlog4j.configuration=file:conf/log4j.properties -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled

 

Starting Neo4j Server...process [1128]... waiting for server to be ready....... OK.

 

Go to http://localhost:7474/webadmin/ for administration interface.

 

[root@linux bin]# ./neo4j status

 

Neo4j Server is running at pid 1128

 

 

 

##远程web UI

 

http://10.10.10.8:7474/webadmin/#

 

##Web UI: Console

 

http://10.10.10.8:7474/webadmin/#/console/

 

##用简单的语句测试

 

  • neo4j-sh (0)$ CREATE (ee { name: "Emil", from: "Sweden" }) RETURN ee.name;
  • ==> +---------+
  • ==> | ee.name |
  • ==> +---------+
  • ==> | "Emil"  |
  • ==> +---------+
  • ==> 1 row
  • ==> Nodes created: 1
  • ==> Properties set: 2
  • ==> 
  • ==> 1100 ms
  • neo4j-sh (0)$ START ee=node(*) WHERE ee.name! = "Emil" RETURN ee;
  • ==> +------------------------------------+
  • ==> | ee                                 |
  • ==> +------------------------------------+
  • ==> | Node[1]{name:"Emil",from:"Sweden"} |
  • ==> +------------------------------------+
  • ==> 1 row
  • ==> 
  • ==> 502 ms
  • neo4j-sh (0)$

 

 

 

##Shell命令参考

 

 

 

 

Neo4J集群

 

模拟测试Neo4j高可用

 

下载Neo4j企业版

 

解压为多个不同目录

 

分别修改配置文件,使监听不同的端口

 

启动多个Neo4j服务器进程

 

Neo4j手册第26.6节

 

类似Mysql的高可用集群,可以实现读写分离,写数据被引导到Master节点,再从多个slave读数据

 

 

 

##下载企业版并解压缩到三个目录

 

 

# tar zxf neo4j-enterprise-1.9.4-unix.tar

 

# mv neo4j-enterprise-1.9.4 neo4j01

 

[root@linux neo4j]# cp -R neo4j01 neo4j02

 

[root@linux neo4j]# cp -R neo4j01 neo4j03

 

 

 

##1号节点的配置文件 neo4j.properties
online_backup_server=127.0.0.1:6362
ha.server_id=1
ha.initial_hosts=127.0.0.1:5001,127.0.0.1:5002,127.0.0.1:5003
ha.server=127.0.0.1:6001
ha.cluster_server=127.0.0.1:5001
 
##1号节点的配置文件 Neo4j-server.properties
org.neo4j.server.webserver.address=0.0.0.0
org.neo4j.server.manage.console_engines=gremlin, shell
org.neo4j.server.database.mode=HA
org.neo4j.server.webserver.port=7474
org.neo4j.server.webserver.https.port=7473

 

 

 

##2号节点的配置文件 neo4j.properties
online_backup_server=127.0.0.1:6363
ha.server_id=2
ha.initial_hosts=127.0.0.1:5001,127.0.0.1:5002,127.0.0.1:5003
ha.server=127.0.0.1:6002
ha.cluster_server=127.0.0.1:5002
 
##2号节点的配置文件 Neo4j-server.properties
org.neo4j.server.webserver.address=0.0.0.0
org.neo4j.server.manage.console_engines=gremlin, shell
org.neo4j.server.database.mode=HA
org.neo4j.server.webserver.port=7484
org.neo4j.server.webserver.https.port=7483

 

 

 

##3号节点的配置文件 neo4j.properties
online_backup_server=127.0.0.1:6364
ha.server_id=3
ha.initial_hosts=127.0.0.1:5001,127.0.0.1:5002,127.0.0.1:5003
ha.server=127.0.0.1:6003
ha.cluster_server=127.0.0.1:5003
 
##3号节点的配置文件 Neo4j-server.properties
org.neo4j.server.webserver.address=0.0.0.0
org.neo4j.server.manage.console_engines=gremlin, shell
org.neo4j.server.database.mode=HA
org.neo4j.server.webserver.port=7494
org.neo4j.server.webserver.https.port=7493

 

 

 

##启动三个neo4j实例

 

[root@linux bin]# ./neo4j start

 

WARNING: Max 1024 open files allowed, minimum of 40 000 recommended. See the Neo4j manual.

 

Using additional JVM arguments: -server -XX:+DisableExplicitGC -Dorg.neo4j.server.properties=conf/neo4j-server.properties -Djava.util.logging.config.file=conf/logging.properties -Dlog4j.configuration=file:conf/log4j.properties -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled

 

Starting Neo4j Server...HA instance started in process [2244]. Will be operational once connected to peers. See /nosql/neo4j/neo4j01/data/log/console.log for current status.

 

[root@linux bin]#

 

[root@linux bin]# cd /nosql/neo4j/neo4j02/bin/

 

[root@linux bin]# ./neo4j start

 

WARNING: Max 1024 open files allowed, minimum of 40 000 recommended. See the Neo4j manual.

 

Using additional JVM arguments: -server -XX:+DisableExplicitGC -Dorg.neo4j.server.properties=conf/neo4j-server.properties -Djava.util.logging.config.file=conf/logging.properties -Dlog4j.configuration=file:conf/log4j.properties -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled

 

Starting Neo4j Server...HA instance started in process [2417]. Will be operational once connected to peers. See /nosql/neo4j/neo4j02/data/log/console.log for current status.

 

[root@linux bin]#

 

[root@linux bin]# cd /nosql/neo4j/neo4j03/bin/

 

[root@linux bin]# ./neo4j start

 

WARNING: Max 1024 open files allowed, minimum of 40 000 recommended. See the Neo4j manual.

 

Using additional JVM arguments: -server -XX:+DisableExplicitGC -Dorg.neo4j.server.properties=conf/neo4j-server.properties -Djava.util.logging.config.file=conf/logging.properties -Dlog4j.configuration=file:conf/log4j.properties -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled

 

Starting Neo4j Server...HA instance started in process [2690]. Will be operational once connected to peers. See /nosql/neo4j/neo4j03/data/log/console.log for current status.

 

[root@linux bin]#

 

[root@linux bin]# jps

 

2417 Bootstrapper

 

2796 Jps

 

2244 Bootstrapper

 

2690 Bootstrapper

 

[root@linux bin]# 

 

 

 

##Web UI上观看高可用集群状态

 

http://10.10.10.8:7474/webadmin/#/info/org.neo4j/High%20Availability/

 

 

http://blog.csdn.net/zq9017197/article/details/17717815

 

分享到:
评论
1 楼 天天学 2017-11-08  
图形数据库Neo4j教程
网盘地址:https://pan.baidu.com/s/1nuXYJEh 密码: i15w

相关推荐

    neo4j-community-3.5.14-unix.tar.gz

    总的来说,`neo4j-community-3.5.14-unix.tar.gz`是一个在Linux服务器上部署的图形数据库解决方案,涉及的技术点包括Neo4j的安装、配置、启动、数据管理以及Cypher查询语言的使用。正确安装并配置后,你可以利用其...

    neo4j-enterprise-3.2.6-unix.tar.gz-back

    标签“neo4j”表明这个压缩包是关于 Neo4j 的,这可能意味着用户正寻求了解或部署这个数据库系统。此外,还有一个名为“新建文本文档.txt”的文件,这可能是用户的笔记、安装指南或者一些临时的文本信息,但具体用途...

    neo4j-enterprise-4.0.4-unix.tar.gz

    标题 "neo4j-enterprise-4.0.4-unix.tar.gz" 提供的信息表明,这是一个Neo4j企业版数据库的安装包,版本为4.0.4,面向Unix类操作系统,如Linux。该文件使用了tar.gz压缩格式,这是一种在Unix和Linux系统中常用的文件...

    Spring与非关系数据库搭配使用

    对于图数据库,如Neo4j,Spring Data Neo4j提供了图模型转换和事务管理功能。你可以定义实体类来表示节点和关系,并使用`@NodeEntity`和`@RelationshipEntity`注解进行标记。Spring Data Neo4j的Repository接口则...

    Building Web Applications with Python and Neo4j.pdf

    在《构建基于Python与Neo4j的Web应用》一书中,作者Sumit Gupta详细介绍了如何利用Python这一强大的编程语言以及Neo4j这个领先的图数据库来开发高效、可扩展的Web应用程序。本书不仅覆盖了理论知识,还提供了丰富的...

    图形数据库,仍在开发中。_C++_Java_下载.zip

    2. **查询语言**:如Cypher(Neo4j使用)或Gremlin(Apache TinkerPop框架)。这些语言用于查询和操作图数据,具有强大的图形遍历和操作能力。 3. **图算法**:图形数据库支持执行复杂的图算法,如最短路径、社区...

    neo4j:所有人的图表

    7. **NoSQLJava** - Neo4j提供了Java API,允许开发人员使用Java进行编程,与NoSQL数据库进行交互。 【详细说明】 Neo4j是一个高性能的图数据库,支持实时分析和高并发访问。它的核心特性包括: 1. **ACID事务** ...

    关系型数据库和非关系型数据库.pdf

    NoSQL数据库的种类繁多,包括键值对存储(如Redis)、列族数据库(如HBase)、文档数据库(如MongoDB)和图形数据库(如Neo4j)等。它们通常具有以下特点: 1. 结构灵活:NoSQL数据库允许动态模式或模式自由,数据...

    毕设项目:基于springboot+neo4j的医疗系统知识图谱问答.zip

    该项目是一个毕业设计,主要采用了SpringBoot框架和Neo4j数据库来...开发者需要掌握Java编程、SpringBoot框架、Neo4j图数据库以及自然语言处理等相关技术,同时,了解软件工程的最佳实践,以确保项目的质量和可维护性。

    Matrix:Jive API + Neo4j +Spring启动

    "Matrix: Jive API + Neo4j + Spring启动"项目就是这样一个示例,它巧妙地结合了Jive API、图数据库Neo4j以及Spring框架,构建了一个具有强大功能的应用。本文将深入探讨这三个关键技术的融合及其在项目中的应用。 ...

    ostelco-core:GCP K8中托管的云原生Telco BSS,具有独立的Diameter到gRPC网关。 使用Neo4j图的规则引擎。 通过PubSub发送到GCP BigData(Dataflow + BigQuery)的Google Analytics(分析)事件。 这很棒!

    3. **Neo4j图数据库**:Neo4j是一种图形数据库,用于存储和查询复杂关系数据。在ostelco-core中,它可能用于表示用户、账户、服务之间的关系,并利用其强大的图查询能力进行规则引擎处理。 4. **规则引擎**:规则...

    MongoDB面试专题.pdf

    - 图数据库:如Neo4j NoSQL数据库的优点包括但不限于: - 高性能:在处理大量数据时,NoSQL可以提供更高的性能。 - 高可用性:很多NoSQL数据库支持分布式部署,容错能力强。 - 易扩展性:NoSQL数据库通常设计为易于...

    GraphAdventures:Spring, Spring-Websocket, Tomcat8, Neo4J 创建textimage冒险游戏的实验

    通过这个实验项目,开发者不仅可以学习到如何使用Spring框架构建Web应用,还能掌握WebSocket的实时通信机制,同时对图形数据库 Neo4J 有更深入的理解。对于想要提升Java后端开发技能,尤其是对实时交互和图形数据...

    深入学习MongoDB

    * 图结构数据库,例如 Neo4J, InfoGrid, Infinite Graph。 MongoDB 的特点包括: * 高性能。 * 易部署。 * 易使用。 * 存储数据非常方便。 * 面向集合存储。 * 模式自由。 * 支持动态查询。 * 支持完全索引。 * ...

    ArangoDB vs. OrientDB Comparison.pdf

    ArangoDB在多模型数据库方面的灵活性和搜索引擎方面表现出色,而OrientDB作为一个多模型数据库,以其面向文档存储的特性以及图数据库的灵活性而著称。两个系统都在DB-Engines的排名中处于领先位置,但它们在性能、...

    niobe:Neo4j 和 OrientDB 的 Scala 驱动程序

    - **版本兼容性**:检查 Niobe 版本是否与使用的 Neo4j 和 OrientDB 版本兼容,避免因版本不匹配导致的问题。 - **性能调优**:根据实际应用场景调整连接池大小、超时设置等参数,以优化性能。 - **测试**:在生产...

    neo4jsocialcloudteam:Neo4j 社交云团队

    【标题】"Neo4j 社交云团队"是一个项目,专注于使用图数据库技术Neo4j构建社交网络应用。此项目可能由一个专门的开发团队维护,致力于在云端提供高效、可扩展的社交服务。 【描述】"Neo4j 社交云 ...

    database-journal:数据库:概念,命令,代码,面试问题等等。

    本文将深入探讨数据库的概念、常用命令、编程接口、面试问题以及与不同技术的结合,如MySQL、AWS、Elasticsearch、Kafka、MongoDB、Neo4j、DynamoDB、PostgreSQL、Kinesis、Ledger、ActiveMQ、图数据库、文档数据库...

Global site tag (gtag.js) - Google Analytics