【问题标题】:Upgrading orientdb from 2.1.15 to 2.2.28 in distributed mode分布式模式下将orientdb从2.1.15升级到2.2.28
【发布时间】:2017-11-29 19:28:26
【问题描述】:

我正在尝试在分布式设置中将 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 停止节点1 2.6 配置node1分布式运行,node 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>

default-distributed-db-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$1.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$1.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的正确方法吗?或者这与构建的 2.2.28 相关(如果我使用相同的升级过程从 2.2.28 降级到 2.2.15,它会再次开始工作)。

如果有人能指出我正确的方向,那就太好了。

【问题讨论】:

  • 你能使用来自 node2 的 dns 名称 ping node1 @ 端口 3000 吗?
  • 不,它能够在端口 3000 上 ping 通,虽然它能够在其他端口上 ping node1(我已经在节点和白名单端口 3000 上启动了 orientdb 服务。)

标签: java orientdb hazelcast


【解决方案1】:

所以你需要先解决这个问题。节点应该能够在配置的 IP/DNS、端口等上看到彼此(或相互 ping 通)。如果无法访问 3000,请尝试其他端口。

【讨论】:

  • 显然,OrientDB 也会监听端口 2424 上被阻塞的二进制连接。它在将端口 3000 和 2424 列入白名单后工作。感谢您指出正确的方向。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-04
相关资源
最近更新 更多