gpt4 book ai didi

rest - 尝试启动嵌入式 Elasticsearch 节点时不支持 http.type [netty3]

转载 作者:行者123 更新时间:2023-11-29 02:51:08 25 4
gpt4 key购买 nike

我知道不推荐嵌入式 Elasticsearch。我只是出于测试目的而尝试。

我正在尝试启动一个嵌入式 Elasticsearch 节点,提供来自以下 elasticsearch.yml 的配置

# Name for the cluster
cluster.name: elasticsearch
# Name for the embedded node
node.name: EmbeddedESNode
# Path to log files:
path.logs: logs
discovery.zen.ping.unicast.hosts: []
# Disable dynamic scripting
script.inline: false
script.stored: false
script.file: false
transport.type: local
http.type: netty3

我使用的是 es 5.1.1,我启动嵌入式节点的代码如下。

    try {
Settings elasticsearchSetting = Settings.builder()
// Value for path.home is required for es but will not be used as long as other properties
// path.logs, path.data and path.conf is set.
.put(ES_PROPERTY_PATH_HOME, "nullpath")
.put(ES_PROPERTY_PATH_CONF, confDir)
.build();
Node node = new Node(elasticsearchSetting).start();
logger.info("Embedded Elasticsearch server successfully started ...");

} catch (Exception e) {
throw e;
}

我得到以下跟踪。

java.lang.IllegalStateException: Unsupported http.type [netty3]
at org.elasticsearch.common.network.NetworkModule.getHttpServerTransportSupplier(NetworkModule.java:194) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.node.Node.<init>(Node.java:396) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.node.Node.<init>(Node.java:229) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.node.Node.<init>(Node.java:225) ~[elasticsearch-5.1.1.jar:5.1.1]
... 18 more

我也尝试过使用 http.type: netty4 但到目前为止运气不好。它在 http.enabled:false 设置时有效,但我想使用 http rest api 进行测试。

附言:我一直在使用 this用于实现嵌入式 es 的 elasticsearch hadoop 类,不幸的是我在 http.type 上找不到任何文档。

我现在不能在 ES 5.x 中使用 http 启动嵌入式节点吗?我在这里做错了什么?

非常感谢任何帮助。

最佳答案

正如@Bastian 所提到的,问题是传输模块不在类路径中。解决方案已经是there在es-hadoop中嵌入es实现。

private static class PluginConfigurableNode extends Node {
public PluginConfigurableNode(Settings settings, Collection<Class<? extends Plugin>> classpathPlugins) {
super(InternalSettingsPreparer.prepareEnvironment(settings, null), classpathPlugins);
}
}

我们可以给netty3做一个插件如下。然后一切正常。

Collection<Class<? extends Plugin>> plugins = Arrays.asList(Netty3Plugin.class);
Node node = new PluginConfigurableNode(elasticsearchSetting, plugins).start();

关于rest - 尝试启动嵌入式 Elasticsearch 节点时不支持 http.type [netty3],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41263143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com