在分布式模式下将 orientdb 从 2.1.15 升级到 2.2.28
Upgrading orientdb from 2.1.15 to 2.2.28 in distributed mode
我正在尝试在分布式设置中将 orientdb 版本从 2.1.15 升级到 2.2.28:node1 (MASTER) 和 node2 (MASTER)。
升级过程:
1.停止node1和node上的orientdb服务
2.升级node1
2.1 将现有数据库复制到 ~/tmp 文件夹中。
2.2 下载Orientdb v2.2.28 复制现有Orientdb 文件夹中的所有文件。
2.3 将现有数据库从 ~/tmp 复制到 orientdb 工作目录。
2.4 运行 node1作为独立服务器(非分布式模式)
2.5 停止node1
2.6 分布式配置node1为运行,分布式配置为运行节点1
3. 按照与 node1 中相同的步骤升级 node2
文件在分布式模式下修改为运行
hazelcast.xml
<network>
<port auto-increment="false">3000</port>
<join>
<multicast enabled="false">
<multicast-group>235.1.1.1</multicast-group>
<multicast-port>2434</multicast-port>
</multicast>
<tcp-ip enabled="true">
<member>node1:3000</member>
<member>node2:3000</member>
</tcp-ip>
</join>
</network>
默认分布式数据库-config.json
{
"autoDeploy": true,
"readQuorum": 1,
"writeQuorum": "majority",
"executionMode": "undefined",
"readYourWrites": true,
"newNodeStrategy": "static",
"servers": {
"*": "master"
},
"clusters": {
"internal": {
},
"*": {
"servers": ["node1","node2"]
}
}
}
但是我收到一个错误 node2 在 node1 之后加入集群
2017-11-29 10:57:10:140 INFO [node2] Servers in cluster: [node1, node2] [OHazelcastPlugin][node2] Error on starting distributed plugin
java.net.NoRouteToHostException: No route to host
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at com.orientechnologies.orient.client.binary.OChannelBinaryClientAbstract.<init>(OChannelBinaryClientAbstract.java:70)
at com.orientechnologies.orient.client.binary.OChannelBinarySynchClient.<init>(OChannelBinarySynchClient.java:32)
at com.orientechnologies.orient.server.distributed.ORemoteServerChannel.connect(ORemoteServerChannel.java:111)
at com.orientechnologies.orient.server.distributed.ORemoteServerChannel.<init>(ORemoteServerChannel.java:75)
at com.orientechnologies.orient.server.distributed.ORemoteServerController.<init>(ORemoteServerController.java:53)
at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.getRemoteServer(OHazelcastPlugin.java:653)
at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.startup(OHazelcastPlugin.java:250)
at com.orientechnologies.orient.server.OServer.registerPlugins(OServer.java:1257)
at com.orientechnologies.orient.server.OServer.activate(OServer.java:406)
at com.orientechnologies.orient.server.OServerMain.run(OServerMain.java:46)
com.orientechnologies.orient.server.distributed.ODistributedStartupException: Error on starting distributed plugin
at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.startup(OHazelcastPlugin.java:311)
at com.orientechnologies.orient.server.OServer.registerPlugins(OServer.java:1257)
at com.orientechnologies.orient.server.OServer.activate(OServer.java:406)
at com.orientechnologies.orient.server.OServerMain.run(OServerMain.java:46)
Caused by: java.net.NoRouteToHostException: No route to host
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at com.orientechnologies.orient.client.binary.OChannelBinaryClientAbstract.<init>(OChannelBinaryClientAbstract.java:70)
at com.orientechnologies.orient.client.binary.OChannelBinarySynchClient.<init>(OChannelBinarySynchClient.java:32)
at com.orientechnologies.orient.server.distributed.ORemoteServerChannel.connect(ORemoteServerChannel.java:111)
at com.orientechnologies.orient.server.distributed.ORemoteServerChannel.<init>(ORemoteServerChannel.java:75)
at com.orientechnologies.orient.server.distributed.ORemoteServerController.<init>(ORemoteServerController.java:53)
at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.getRemoteServer(OHazelcastPlugin.java:653)
at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.startup(OHazelcastPlugin.java:250)
... 3 more
这是在分布式模式下升级 orientdb 运行ning 的正确方法吗?或者这与构建的 2.2.28 相关(因为如果我使用相同的升级过程从 2.2.28 降级到 2.2.15,它又开始工作)。
如果有人能指出我正确的方向,那就太好了。
所以你需要先解决这个问题。节点应该能够在配置的 IPs/DNS、端口等上相互看到(或相互 ping 通)。如果 3000 无法访问,则尝试其他端口。
我正在尝试在分布式设置中将 orientdb 版本从 2.1.15 升级到 2.2.28:node1 (MASTER) 和 node2 (MASTER)。
升级过程: 1.停止node1和node上的orientdb服务 2.升级node1 2.1 将现有数据库复制到 ~/tmp 文件夹中。 2.2 下载Orientdb v2.2.28 复制现有Orientdb 文件夹中的所有文件。 2.3 将现有数据库从 ~/tmp 复制到 orientdb 工作目录。 2.4 运行 node1作为独立服务器(非分布式模式) 2.5 停止node1 2.6 分布式配置node1为运行,分布式配置为运行节点1 3. 按照与 node1 中相同的步骤升级 node2
文件在分布式模式下修改为运行
hazelcast.xml
<network>
<port auto-increment="false">3000</port>
<join>
<multicast enabled="false">
<multicast-group>235.1.1.1</multicast-group>
<multicast-port>2434</multicast-port>
</multicast>
<tcp-ip enabled="true">
<member>node1:3000</member>
<member>node2:3000</member>
</tcp-ip>
</join>
</network>
默认分布式数据库-config.json
{
"autoDeploy": true,
"readQuorum": 1,
"writeQuorum": "majority",
"executionMode": "undefined",
"readYourWrites": true,
"newNodeStrategy": "static",
"servers": {
"*": "master"
},
"clusters": {
"internal": {
},
"*": {
"servers": ["node1","node2"]
}
}
}
但是我收到一个错误 node2 在 node1 之后加入集群
2017-11-29 10:57:10:140 INFO [node2] Servers in cluster: [node1, node2] [OHazelcastPlugin][node2] Error on starting distributed plugin
java.net.NoRouteToHostException: No route to host
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at com.orientechnologies.orient.client.binary.OChannelBinaryClientAbstract.<init>(OChannelBinaryClientAbstract.java:70)
at com.orientechnologies.orient.client.binary.OChannelBinarySynchClient.<init>(OChannelBinarySynchClient.java:32)
at com.orientechnologies.orient.server.distributed.ORemoteServerChannel.connect(ORemoteServerChannel.java:111)
at com.orientechnologies.orient.server.distributed.ORemoteServerChannel.<init>(ORemoteServerChannel.java:75)
at com.orientechnologies.orient.server.distributed.ORemoteServerController.<init>(ORemoteServerController.java:53)
at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.getRemoteServer(OHazelcastPlugin.java:653)
at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.startup(OHazelcastPlugin.java:250)
at com.orientechnologies.orient.server.OServer.registerPlugins(OServer.java:1257)
at com.orientechnologies.orient.server.OServer.activate(OServer.java:406)
at com.orientechnologies.orient.server.OServerMain.run(OServerMain.java:46)
com.orientechnologies.orient.server.distributed.ODistributedStartupException: Error on starting distributed plugin
at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.startup(OHazelcastPlugin.java:311)
at com.orientechnologies.orient.server.OServer.registerPlugins(OServer.java:1257)
at com.orientechnologies.orient.server.OServer.activate(OServer.java:406)
at com.orientechnologies.orient.server.OServerMain.run(OServerMain.java:46)
Caused by: java.net.NoRouteToHostException: No route to host
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at com.orientechnologies.orient.client.binary.OChannelBinaryClientAbstract.<init>(OChannelBinaryClientAbstract.java:70)
at com.orientechnologies.orient.client.binary.OChannelBinarySynchClient.<init>(OChannelBinarySynchClient.java:32)
at com.orientechnologies.orient.server.distributed.ORemoteServerChannel.connect(ORemoteServerChannel.java:111)
at com.orientechnologies.orient.server.distributed.ORemoteServerChannel.<init>(ORemoteServerChannel.java:75)
at com.orientechnologies.orient.server.distributed.ORemoteServerController.<init>(ORemoteServerController.java:53)
at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.getRemoteServer(OHazelcastPlugin.java:653)
at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.startup(OHazelcastPlugin.java:250)
... 3 more
这是在分布式模式下升级 orientdb 运行ning 的正确方法吗?或者这与构建的 2.2.28 相关(因为如果我使用相同的升级过程从 2.2.28 降级到 2.2.15,它又开始工作)。
如果有人能指出我正确的方向,那就太好了。
所以你需要先解决这个问题。节点应该能够在配置的 IPs/DNS、端口等上相互看到(或相互 ping 通)。如果 3000 无法访问,则尝试其他端口。