无法从不同的节点启动 geode 服务器

Not able to start a geode server from a different node

我在 node1 上有一个定位器 运行 以及一个服务器。我想启动另一个服务器表单 node2。我可以从 node1 连接到定位器,但是当我尝试创建另一个服务器时出现一些错误。

节点 1(172.20.22.52):

gfsh>list members
 Name   | Id
------- | ------------------------------------------------
locator | 172.20.22.52(locator:10094:locator)<ec><v0>:1024
server1 | 172.20.22.52(server1:10220)<v1>:1025

节点 2(172.20.22.121)

gfsh>connect --locator=172.20.22.52[10334]
Already connected to: auto-crawler-tikv-1.cs1cloud.internal[1099]

现在,我尝试在 node2 上启动另一个服务器 "server2"。

gfsh>start server --name=server2
Starting a Geode Server in /home/admin/apache-geode-1.2.1/bin/server2...
The Cache Server process terminated unexpectedly with exit status 1. Please refer to the log file in /home/admin/apache-geode-1.2.1/bin/server2 for full details.

Exception in thread "main" org.apache.geode.GemFireConfigException
    at org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger.init(JGroupsMessenger.java:254)
    at org.apache.geode.distributed.internal.membership.gms.Services.init(Services.java:134)
    at org.apache.geode.distributed.internal.membership.gms.GMSMemberFactory.newMembershipManager(GMSMemberFactory.java:101)
    at org.apache.geode.distributed.internal.membership.MemberFactory.newMembershipManager(MemberFactory.java:89)
    at org.apache.geode.distributed.internal.DistributionManager.<init>(DistributionManager.java:1153)
    at org.apache.geode.distributed.internal.DistributionManager.<init>(DistributionManager.java:1201)
    at org.apache.geode.distributed.internal.DistributionManager.create(DistributionManager.java:572)
    at org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:697)
    at org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:305)
    at org.apache.geode.distributed.DistributedSystem.connect(DistributedSystem.java:205)
    at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:210)
    at org.apache.geode.distributed.internal.DefaultServerLauncherCacheProvider.createCache(DefaultServerLauncherCacheProvider.java:52)
    at org.apache.geode.distributed.ServerLauncher.createCache(ServerLauncher.java:860)
    at org.apache.geode.distributed.ServerLauncher.start(ServerLauncher.java:772)
    at org.apache.geode.distributed.ServerLauncher.run(ServerLauncher.java:699)
    at org.apache.geode.distributed.ServerLauncher.main(ServerLauncher.java:231)
Caused by: java.net.UnknownHostException
    at org.apache.geode.internal.net.SocketCreator.getLocalHost(SocketCreator.java:280)
    at org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger.init(JGroupsMessenger.java:252)
    ... 15 more

我可以从一台服务器 ping 到另一台服务器。我

错误是:

Caused by: java.net.UnknownHostException at org.apache.geode.internal.net.SocketCreator.getLocalHost(SocketCreator.java:280)

是网络。你说你 "can ping from one server to another" 但你能通过主机名而不是 IP ping 吗?它正在尝试解析主机名以获取 IP,但它不知道要连接到哪个 IP。

auto-crawler-tikv-1.cs1cloud.internal有没有/etc/hosts解析localhost为172.20.22.121?你的 node2 /etc/hosts 知道 auto-crawler-tikv-1.cs1cloud.internal 解析到 172.20.22.121 吗?

另一个考虑是在服务器和定位器上设置--bind-address。参见 https://gemfire.docs.pivotal.io/gemfire/tools_modules/gfsh/command-pages/start.html