我按照以下步骤创建了一个 2 节点 OrientDB 集群。但是在分发它时,只有一个节点中存在的数据是可访问的。请你帮我调试这个问题。OrientDB 版本为 2.2.6
涉及的步骤:
在 ETL 工具中利用 plocal 模式,将部分数据存储在节点 1 中,另一部分存储在节点 2 中。存储的数据实际上只属于一类顶点。(从控制台检查数据时,数据已正确注入)。
然后以分布式模式执行两个节点,只能访问来自一台机器的数据。
default-distributed-db-config.json 文件指定如下:
{
"autoDeploy": true,
"readQuorum": 1,
"writeQuorum": 1,
"executionMode": "undefined",
"readYourWrites": true,
"servers": {
"*": "master"
},
"clusters": {
"internal": {
},
"address": {
"servers" : [ "orientmaster" ]
},
"address_1": {
"servers" : [ "orientslave1" ]
},
"*": {
"servers": ["<NEW_NODE>"]
}
}
}
为名为 address 的顶点创建了两个簇,即 address 和 address_1。机器orientslave1中的数据使用ETL工具存储到集群地址_1中,同样机器orientmaster中的数据存储到集群地址中。(我已确保这两个集群 ID 在创建时都不同)
但是当这两台机器以分布式方式连接在一起时,集群地址_1中的数据只可见
ETL json 附在下面:
{
"source": { "file": { "path": "/home/ubuntu/labvolume1/DataStorage/geo1_5lacs.csv" } },
"extractor": { "csv": {"columnsOnFirstLine": false, "columns":["place:string"] } },
"transformers": [
{ "vertex": { "class": "ADDRESS", "skipDuplicates":true } }
],
"loader": {
"orientdb": {
"dbURL": "plocal:/home/ubuntu/labvolume1/orientdb/databases/ETL_Test1",
"dbType": "graph",
"dbUser": "admin",
"dbPassword": "admin",
"dbAutoCreate": true,
"wal": false,
"tx":false,
"classes": [
{"name": "ADDRESS", "extends": "V", "clusters":1}
], "indexes": [
{"class":"ADDRESS", "fields":["place:string"], "type":"UNIQUE" }
]
}
}
}
请让我知道,如果我做错了什么