知识库

在因果集群环境中使用 neo4j-import 的步骤示例

以下步骤描述了如何在因果集群环境中使用 neo4j-import,这些步骤是在单个 Linux 主机上运行的,其中安装了 3 个 Neo4j 3.1.2 副本,路径如下

~/HA/ha1/neo4j-enterprise-3.1.2
~/HA/ha2/neo4j-enterprise-3.1.2
~/HA/ha3/neo4j-enterprise-3.1.2

这类似于 设置本地因果集群 的说明

  • 验证了因果集群能够形成(在配置 $NEO4J_HOME/cond/neo4j.conf 后)并运行了

~/HA/ha1/neo4j-enterprise-3.1.2/bin/neo4j start; ~/HA/ha2/neo4j-enterprise-3.1.2/bin/neo4j start;
~/HA/ha3/neo4j-enterprise-3.1.2/bin/neo4j start

这假设默认数据库为 graph.db

由于启动因果集群需要进行大量配置,我想确保它至少能够启动,并且数据库是空的。

  • 通过运行以下命令停止了因果集群

~/HA/ha1/neo4j-enterprise-3.1.2/bin/neo4j stop; ~/HA/ha2/neo4j-enterprise-3.1.2/bin/neo4j stop;
~/HA/ha3/neo4j-enterprise-3.1.2/bin/neo4j stop

其产生了以下输出

Stopping Neo4j..................................... stopped
Stopping Neo4j.................................... stopped
Stopping Neo4j..................................... stopped
  • 解除绑定了 3 个因果集群数据库的每一个。(如果您跳过第 1 步和第 2 步,则不需要这样做,但如果您在后续集群形成时遇到故障,则需要弄清楚是集群配置问题还是数据库导入的问题)。进一步的解绑细节可在此处找到

$ ~/HA/ha2/neo4j-enterprise-3.1.2/bin/neo4j-admin unbind --database=graph.db
$ ~/HA/ha1/neo4j-enterprise-3.1.2/bin/neo4j-admin unbind --database=graph.db
$ ~/HA/ha3/neo4j-enterprise-3.1.2/bin/neo4j-admin unbind --database=graph.db
  • 创建了 ~/HA/ha1/neo4j-enterprise-3.1.2/importer 目录,并添加了 3 个文件,即 actors.csv、movies.csv、roles.csv,它们的内容详细定义在此处

  • 运行 neo4j-import 并将数据加载到 ~/HA/ha1/neo4j-enterprise-3.1.2/data/databases/graph.db.importer 中

~/HA/ha1/neo4j-enterprise-3.1.2/bin/neo4j-import --into ~/HA/ha1/neo4j-enterprise-3.1.2/data/databases/graph.db.importer --nodes ~/HA/ha1/neo4j-enterprise-3.1.2/importer/movies.csv --nodes ~/HA/ha1/neo4j-enterprise-3.1.2/importer/actors.csv --relationships ~/HA/ha1/neo4j-enterprise-3.1.2/importer/roles.csv

这产生了以下输出

WARNING: neo4j-import is deprecated and support for it will be removed in a future
version of Neo4j; please use neo4j-admin import instead.

Neo4j version: 3.1.2
Importing the contents of these files into /home/neo4j/HA/ha1/neo4j-enterprise-3.1.2/data/databases/graph.db.importer:
Nodes:
  /home/neo4j/HA/ha1/neo4j-enterprise-3.1.2/importer/movies.csv

  /home/neo4j/HA/ha1/neo4j-enterprise-3.1.2/importer/actors.csv
Relationships:
  /home/neo4j/HA/ha1/neo4j-enterprise-3.1.2/importer/roles.csv

Available resources:
  Free machine memory: 5.01 GB
  Max heap memory : 1.47 GB
  Processors: 1

Nodes

Done in 100ms
Prepare node index

Done in 26ms
Calculate dense nodes

Done in 43ms
Node --> Relationship Sparse

Done in 10ms
Relationship --> Relationship Sparse

Done in 11ms
Minority relationships

Done in 32ms
Count groups

Done in 10ms
Gather

Done in 11ms
Write

Done in 10ms
Node --> Group

Done in 11ms
Node counts

Done in 53ms
Relationship counts

Done in 11ms

IMPORT DONE in 1s 881ms.
Imported:
  6 nodes
  0 relationships
  15 properties
Peak memory usage: 7.63 MB
  • 更新了 3 个 $NEO4J_HOME/conf/neo4j.conf 文件中的每一个,并定义了

# The name of the database to mount
dbms.active_database=graph.db.importer

因为这代表了从 neo4j-import 准备的数据库的名称。

  • 通过以下方式将 graph.db.importer 从实例 1 复制到实例 2 和 3

cp -R ~/HA/ha1/neo4j-enterprise-3.1.2/data/databases/graph.db.importer ~/HA/ha2/neo4j-enterprise-3.1.2/data/databases/graph.db.importer
cp -R ~/HA/ha1/neo4j-enterprise-3.1.2/data/databases/graph.db.importer ~/HA/ha3/neo4j-enterprise-3.1.2/data/databases/graph.db.importer
  • 按如下方式启动所有 3 个实例

~/HA/ha1/neo4j-enterprise-3.1.2/bin/neo4j start;  ~/HA/ha2/neo4j-enterprise-3.1.2/bin/neo4j start;
~/HA/ha3/neo4j-enterprise-3.1.2/bin/neo4j start

这产生了以下输出

Starting Neo4j.
Started neo4j (pid 3976). It is available at http://0.0.0.0:7414/
There may be a short delay until the server is ready.
See /home/neo4j/HA/ha1/neo4j-enterprise-3.1.2/logs/neo4j.log for current status.
Starting Neo4j.
Started neo4j (pid 4040). It is available at http://0.0.0.0:7424/
There may be a short delay until the server is ready.
See /home/neo4j/HA/ha2/neo4j-enterprise-3.1.2/logs/neo4j.log for current status.
Starting Neo4j.
Started neo4j (pid 4104). It is available at http://0.0.0.0:7434/
There may be a short delay until the server is ready.
See /home/neo4j/HA/ha3/neo4j-enterprise-3.1.2/logs/neo4j.log for current status.

在 3 个实例中的每一个上运行了 match (n) return n limit 10,并且所有实例都报告总共有 6 个节点,这与 neo4j-import 的输出相符,该输出报告

Imported:
  6 nodes
  0 relationships
  15 properties
  • 我从主节点运行了

create (n:Tester {id:105});

并验证了它在主节点和副本节点上均已创建。

© . All rights reserved.