以下の手順に従って、2 ノードの OrientDB クラスターを作成しました。ただし、配布中は、ノードの 1 つにのみ存在するデータにアクセスできます。この問題のデバッグを手伝ってください。OrientDB のバージョンは 2.2.6 です
必要な手順:
ETL ツールで plocal モードを利用し、データの一部をノード 1 に保存し、残りの部分をノード 2 に保存しました。格納されたデータは、実際には頂点の 1 つのクラスのみに属します。(コンソールからのデータを確認すると、データは正しく注入されています)。
次に、両方のノードを分散モードで実行すると、1 台のマシンからのデータのみにアクセスできます。
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 という 2 つのクラスターが作成されます。マシン orientslave1 のデータは、ETL ツールを使用してクラスター address_1 に格納されます。同様に、マシン orientmaster のデータはクラスター アドレスに格納されます。(これらのクラスター ID の両方が作成時に異なることを確認しました)
ただし、これら 2 台のマシンが分散モードで接続されている場合、クラスター address_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" }
]
}
}
}
私が間違っていることがあれば教えてください