我收到以下错误
noNodeAvailableException [没有配置的节点可用:[{#transport#-1}{buKSP622TFWnQm_2-PxqQg}{xxxxxxxx}{10.240.49.79:2309}]] 在 org.elasticsearch.client.transport。
尝试连接到安全的弹性搜索集群时。
该设置适用于未启用 xpack 的 elasticsearch。如何将风暴爬虫连接到安全的弹性搜索?
我收到以下错误
noNodeAvailableException [没有配置的节点可用:[{#transport#-1}{buKSP622TFWnQm_2-PxqQg}{xxxxxxxx}{10.240.49.79:2309}]] 在 org.elasticsearch.client.transport。
尝试连接到安全的弹性搜索集群时。
该设置适用于未启用 xpack 的 elasticsearch。如何将风暴爬虫连接到安全的弹性搜索?
不确定这是否会起作用,具体取决于版本等...但首先,您需要将屏蔽 jar 添加到类路径中,如java client with shield中所述。这很容易用 Maven 完成
<repositories>
<!-- add the elasticsearch repo -->
<repository>
<id>elasticsearch-releases</id>
<url>https://maven.elasticsearch.org/releases</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
[...]
<dependency>
<groupId>org.elasticsearch.plugin</groupId>
<artifactId>shield</artifactId>
<version>2.2.0</version>
</dependency>
其他一切都可以通过配置完成,对于状态索引
es.status.plugins: org.elasticsearch.shield.ShieldPlugin es.status.settings: cluster.name: "ENTER_CLUSTER_NAME" shield.user": "transport_client_user:changeme"
TransportExample.java可能是一个很好的例子,它列出了所有需要的设置。
请注意,Elastic Cloud 目前在 StormCrawler 的主分支所在的版本 6.1.x 及更高版本中无法与 TransportClient 一起使用。您可以降级到 SC 的 ES 模块的旧版本并参考相应的文档。
另一种选择是移植代码以使用高级别的客户端,请参阅迁移指南,但这是一项艰巨的任务。
更新:请查看分支ESRestAPi。我已经更改了代码,以便它使用 ES REST 客户端。这适用于 Elastic Cloud 6.2,您只需指定
es.status.user: "USERNAME"
es.status.password: "PASSWORD"
到每个索引的配置。这些地址现在采用带有协议、主机名和端口的普通 URL。
如果你让它工作,请告诉我。