当前位置: 首页 > 面试题库 >

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

许承悦
2023-03-14
问题内容

我知道不建议使用嵌入式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进行测试。

PS:在实现嵌入式es时,我一直在使用这个
elasticsearch hadoop类作为参考,很遗憾,我在上找不到任何文档http.type

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

非常感谢您的帮助。


问题答案:

如@Bastian所述,问题是传输模块不在类路径中。该解决方案已经存在于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();


 类似资料:
  • 问题内容: 我正在尝试用Elasticsearch替换Solr设置。这是一个新的设置,尚未投入生产,因此我有很大的空间来摆弄各种东西并使它们运转良好。 我有非常大量的数据。我正在索引一些实时数据并将其保留7天(通过使用_ttl字段)。我不在索引中存储任何数据(并禁用了_source字段)。我预计我的指数将稳定在 200亿 行左右。我将把这些数据放入2-3个命名索引中。到目前为止,多达数十亿行的搜索

  • 案例 Basic css 我们绑定 styled-jsx 来生成独立作用域的 CSS. 目标是支持 "shadow CSS",但是 不支持独立模块作用域的 JS. export default () => <div> Hello world <p>scoped!</p> <style jsx>{` p { color: blue;

  • 我正在尝试用ElasticSearch替换Solr设置。这是一个新的设置,还没有看到生产,所以我有很多的空间来摆弄东西,使他们工作良好。 我有非常非常大量的数据。我正在索引一些实时数据并将其保存7天(通过使用_ttl字段)。我没有在索引中存储任何数据(并且禁用了_source字段)。我预计我的指数稳定在200亿行左右。我将把这些数据放入2-3个命名索引中。到目前为止,多达几十亿行的搜索性能是完全可

  • 我想使用REST API的HAL格式来包含嵌入式资源。我在API中使用Spring HATEOAS,Spring HATEOAS似乎支持嵌入式资源;但是,没有关于如何使用此功能的文档或示例。 有人能提供一个如何使用Spring HATEOAS包含嵌入式资源的例子吗?

  • 根据本主题: Kafka Spring Integration:Headers not for Kafka consumer-这不是对Kafka的Headers支持 但文件上说: 我无法使用Spring-Cloud-Stream-Binder-Kafka:1.2.0版本 正在发送日志: 接收日志: 正在发送消息:

  • 我的源提供商向我发送。gz文件(zip文件)通过POST请求发送到我的服务器。 我试图实现。NET代码将拦截POST请求并解压缩文件以打开里面的文件。 我只是想截取POST请求并解压缩内容,这样做: 它返回415 Unsupport tedMediaType。 如何截获POST请求,这是一个ZIP文件,以及如何解压缩它以返回其中的文件? 谢谢你。 编辑: