Почему адаптер Elasticsearch2 выдает «невозможно подключиться ни к одному узлу» при попытке подключения к elasticsearch

Я использую elasticsearch версии 6.1.1. Я загрузил проект каркаса кальцита и построил его на своем компьютере, следуя руководству по адресу (https://calcite.apache.org/docs/tutorial.html) и когда я попытался подключиться к elasticsearch с помощью Elasticsearch2adaptor кальцита, как указано здесь (https://calcite.apache.org/docs/elasticsearch_adapter.html).i получаю следующая ошибка ОШИБКА:

*E:\calcite\elasticsearch2>sqlline
sqlline version 1.3.0
sqlline> !connect jdbc:calcite:model=target/test-classes/mymodel.json admin admin
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Connecting to jdbc:calcite:model=target/test-classes/mymodel.json
java.lang.RuntimeException: Error instantiating JsonCustomSchema(name=elasticsearch)
at org.apache.calcite.model.ModelHandler.visit(ModelHandler.java:275)
at org.apache.calcite.model.JsonCustomSchema.accept(JsonCustomSchema.java:45)
at org.apache.calcite.model.ModelHandler.visit(ModelHandler.java:196)
at org.apache.calcite.model.ModelHandler.<init>(ModelHandler.java:88)
at org.apache.calcite.jdbc.Driver$1.onConnectionInit(Driver.java:104)
at org.apache.calcite.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:139)
at sqlline.DatabaseConnection.connect(DatabaseConnection.java:156)
at sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:204)
at sqlline.Commands.connect(Commands.java:1095)
at sqlline.Commands.connect(Commands.java:1001)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:38)
at sqlline.SqlLine.dispatch(SqlLine.java:791)
at sqlline.SqlLine.begin(SqlLine.java:668)
at sqlline.SqlLine.start(SqlLine.java:373)
at sqlline.SqlLine.main(SqlLine.java:265)
Caused by: java.lang.RuntimeException: ***Cannot connect to any elasticsearch nodes***
at org.apache.calcite.adapter.elasticsearch2.Elasticsearch2Schema.open(Elasticsearch2Schema.java:123)
at org.apache.calcite.adapter.elasticsearch2.Elasticsearch2Schema.<init>(Elasticsearch2Schema.java:73)
at org.apache.calcite.adapter.elasticsearch2.Elasticsearch2SchemaFactory.create(Elasticsearch2SchemaFactory.java:56)
at org.apache.calcite.model.ModelHandler.visit(ModelHandler.java:270)
... 18 more*   

Это файл mymodel.json:

{
    "version":"1.0",
    "defaultSchema":"elasticsearch",
    "schemas": [
    {
        "type" : "custom",
        "name" : "elasticsearch",
        "factory" : "org.apache.calcite.adapter.elasticsearch2.Elasticsearch2SchemaFactory",
        "operand" : {
            "coordinates" : "{'127.0.0.1':9300}",
            "userConfig" : "{'bulk.flush.max.actions':10 , 'bulk.flush.max.size.mb': 1}",
            "index" : "movies"
        }
    }
    ]
}

person D vignesh    schedule 19.01.2018    source источник


Ответы (1)


Упомянутый вами адаптер не совместим с Elasticsearch 6.x.

Цитата с веб-страницы адаптера

Этот адаптер предназначен для Elasticsearch 2.x. Чтобы использовать Calcite с Elasticsearch 5.x+, вы можете использовать фабрику адаптера, предназначенного для Elasticsearch 5.x:

Вы можете понизить версию Elasticsearch до версии 2.x или 5.x, и она должна работать.

person JSas    schedule 19.01.2018
comment
Это единственный вариант? Нет ли адаптера для elasticsearch 6.x? - person D vignesh; 19.01.2018
comment
Я также пробовал это с elasticsearch5adaptor, но получаю ту же ошибку, что и «не подключаться к любому узлу elasticsearch». - person D vignesh; 19.01.2018
comment
Никто не создавал адаптер для elasticsearch 6.x. Если вы используете elasticsearch5adaptor, вам нужно использовать elasticsearch 5.x, а если вы используете elasticsearch2adaptor, вам нужно использовать elasticsearch 2.x. - person JSas; 19.01.2018
comment
Спасибо за ответ @JSas, я понизлю свой elasticsearch и попробую. - person D vignesh; 19.01.2018
comment
да, он работает с более низкой версией. Большое спасибо JSas - person D vignesh; 19.01.2018