知识库

因果集群环境中的 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
  • 更新了每个实例的 $NEO4J_HOME/conf/neo4j.conf(共 3 份),并定义了

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

因为这代表了由 neo4j-import 生成的数据库名称。

  • 将实例 1 中的 graph.db.importer 复制到实例 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.

在每个实例上运行 match (n) return n limit 10,全部实例报告共计 6 个节点,这与 neo4j-import 的输出相符,后者报告

Imported:
  6 nodes
  0 relationships
  15 properties
  • 在 Leader 上运行

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

并验证该数据库已在 Leader 以及所有 Followers 上创建。

© . This site is unofficial and not affiliated with Neo4j, Inc.