- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在我的虚拟机上运行 Elasticsearch 节点。我在主机上编写了一个模拟器,尝试连接到我的 VM ES 节点。
客户端代码连接如下:
Node node = nodeBuilder().clusterName("AnalyticsCluster")
.client(true).node();
mClient = node.client();
我确保在 VM 节点上配置了正确的集群名称。我不想使用其他方法(使用 TransportClient)连接到 ES 节点,因为根据 ES 文档,这将导致每次搜索经过 2 跳。
失败如下:
org.elasticsearch.discovery.MasterNotDiscoveredException: waited for [1m]
at org.elasticsearch.action.support.master.TransportMasterNodeOperationAction$3.onTimeout(TransportMasterNodeOperationAction.java:180)
at org.elasticsearch.cluster.service.InternalClusterService$NotifyTimeout.run(InternalClusterService.java:491)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
我想我理解根本原因(尽管不是 100%)是客户端和节点使用不同的网络来发布多播。我这么说是基于以下几点:
ES节点控制台
[2014-02-26 18:19:13,725][INFO ][transport ] [Baron Samedi] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/192.168.79.128:9300]}
客户端节点控制台
INFO: [Lacuna] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/192.168.1.105:9200]}
换句话说,节点在 192.168.79.* 网络(即 VM 网络)上发布,客户端在 192.168.1.* 网络(即我的 wifi 网络)上发布。
看来我可以通过在客户端设置 network.publish_host 来解决这个问题。问题是在客户端上我没有 elasticsearch.yml 。我也没有找到以编程方式设置它的方法。
我有两个问题(按优先顺序排列):
network.publish_host 可以通过编程方式设置吗?如何设置?
如何在客户端设置 API 将用于其设置的 elasticsearch.yml?
提前致谢
P.S:虚拟机上的防火墙已停止。
最佳答案
我通过做两件事解决了这个问题。
A)我在客户端添加了 src/main/resources/elasticsearch.yml,如下所示:
network.host: 10.231.150.165
这并没有完全解决问题。客户端在位于虚拟机上的服务器端正确发送多播。但虚拟机无法连接回客户端
B) 我将主机和虚拟机之间的网络配置为桥接网络,而不是像 VMWare 上默认的 NAT 网络。设置如下:
这完全解决了问题,因为现在我的主机和虚拟机位于同一个 LAN 上。
关于java - 使用 Elasticsearch JAVA API 将 network.publish_host 设置为客户端节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22052531/
我已经查看了这里的其他一些问题,但不知何故我无法解决我的问题。我在专用网络中有一个 Elasticsearch 集群(实际上它是一个 Docker 网络)。在同一个网络中,有一个与 ES 对话的应用程
来自这份文件network settings ,我知道 publish_host 是集群中其他节点将与之通信的主机。但是我不明白bind_host的功能,也就是说: The network.bind_
我正在我的虚拟机上运行 Elasticsearch 节点。我在主机上编写了一个模拟器,尝试连接到我的 VM ES 节点。 客户端代码连接如下: Node node = nodeBuilder(
我是一名优秀的程序员,十分优秀!