我收到以下错误
noNodeAvailableException [没有配置的节点可用:[{#transport#-1} {buKSP622TFWnQm_2-PxqQg} {xxxxxxxx} {10.240.49.79:2309}]] org.elasticsearch.client.transport。
尝试连接到安全的elasticsearch集群时。
该设置适用于非xpack启用的elasticsearch。如何将Storm crawler连接到安全的elasticsearch?
答案 0 :(得分:0)
不确定这是否会起作用,具体取决于版本等......但首先,您需要按照java client with shield中的说明将盾牌jar添加到类路径中。这可以通过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:&#34; ENTER_CLUSTER_NAME&#34; shield.user&#34;:&#34; transport_client_user:changeme&#34;
TransportExample.java可能是一个很好的例子,并列出了所需的所有设置。
请注意,Elastic Cloud目前不支持版本6.1.x及更高版本的TransportClient,这是StormCrawler的主分支所在。您可以降级到SC的旧版ES模块,并参考相应的文档。
另一种选择是移植代码以使用高级休息客户端,请参阅migration guide,但这是一项非常重要的任务。
更新:请查看分支ESRestAPi。我已经更改了代码,因此它使用了ES REST客户端。这适用于Elastic Cloud 6.2,您需要做的就是指定
es.status.user: "USERNAME"
es.status.password: "PASSWORD"
到每个索引的配置。现在,地址使用带有协议,主机名和端口的普通URL。
如果你让它发挥作用,请告诉我。