You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "bryanbzhou (周彬)" <br...@tencent.com> on 2017/12/26 08:51:08 UTC

need help with Elasticsearch adapter

Hi, all.


I met some problem with Elasticsearch adapter. Is there someone can help me ?


I try to test Elasticsearch adapter following https://calcite.apache.org/docs/elasticsearch_adapter.html.


First . I create a elacticsearch with docker on my macbook with following command:

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:5.6.1


Then. I edit es.json


{

  "version": "1.0",

  "defaultSchema": "elasticsearch",

  "schemas": [

    {

      "type": "custom",

      "name": "elasticsearch",

      "factory": "org.apache.calcite.adapter.elasticsearch5.Elasticsearch5SchemaFactory",

      "operand": {

        "coordinates": "{‘127.0.0.1': 9300}",

        "userConfig": "{ 'bulk.flush.max.size.mb': 10}",

        "index": "usa"

      }

    }

  ]

}


And try to connect to es with sqlline "!connect jdbc:calcite:model=es.json elastic changeme”

But I got an error:


java.lang.NoSuchMethodError: org.elasticsearch.transport.client.PreBuiltTransportClient.addPlugins(Ljava/util/Collection;Ljava/util/Collection;)Ljava/util/Collection;

at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:130)

at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:116)

at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:106)

at org.apache.calcite.adapter.elasticsearch5.Elasticsearch5Schema.open(Elasticsearch5Schema.java:119)

at org.apache.calcite.adapter.elasticsearch5.Elasticsearch5Schema.<init>(Elasticsearch5Schema.java:74)

at org.apache.calcite.adapter.elasticsearch5.Elasticsearch5SchemaFactory.create(Elasticsearch5SchemaFactory.java:56)

at org.apache.calcite.model.ModelHandler.visit(ModelHandler.java:270)

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(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

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)

Re: need help with Elasticsearch adapter

Posted by Christian Beikov <ch...@gmail.com>.
The problem is documented in this issue already: 
https://issues.apache.org/jira/browse/CALCITE-1994

It's not so easy to use the elasticsearch adapter with sqlline 
unfortunately.


Mit freundlichen Grüßen,
------------------------------------------------------------------------
*Christian Beikov*
Am 26.12.2017 um 09:51 schrieb bryanbzhou(周彬):
> Hi, all.
>
>
> I met some problem with Elasticsearch adapter. Is there someone can help me ?
>
>
> I try to test Elasticsearch adapter following https://calcite.apache.org/docs/elasticsearch_adapter.html.
>
>
> First . I create a elacticsearch with docker on my macbook with following command:
>
> docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:5.6.1
>
>
> Then. I edit es.json
>
>
> {
>
>    "version": "1.0",
>
>    "defaultSchema": "elasticsearch",
>
>    "schemas": [
>
>      {
>
>        "type": "custom",
>
>        "name": "elasticsearch",
>
>        "factory": "org.apache.calcite.adapter.elasticsearch5.Elasticsearch5SchemaFactory",
>
>        "operand": {
>
>          "coordinates": "{‘127.0.0.1': 9300}",
>
>          "userConfig": "{ 'bulk.flush.max.size.mb': 10}",
>
>          "index": "usa"
>
>        }
>
>      }
>
>    ]
>
> }
>
>
> And try to connect to es with sqlline "!connect jdbc:calcite:model=es.json elastic changeme”
>
> But I got an error:
>
>
> java.lang.NoSuchMethodError: org.elasticsearch.transport.client.PreBuiltTransportClient.addPlugins(Ljava/util/Collection;Ljava/util/Collection;)Ljava/util/Collection;
>
> at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:130)
>
> at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:116)
>
> at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:106)
>
> at org.apache.calcite.adapter.elasticsearch5.Elasticsearch5Schema.open(Elasticsearch5Schema.java:119)
>
> at org.apache.calcite.adapter.elasticsearch5.Elasticsearch5Schema.<init>(Elasticsearch5Schema.java:74)
>
> at org.apache.calcite.adapter.elasticsearch5.Elasticsearch5SchemaFactory.create(Elasticsearch5SchemaFactory.java:56)
>
> at org.apache.calcite.model.ModelHandler.visit(ModelHandler.java:270)
>
> 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(NativeMethodAccessorImpl.java:62)
>
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>
> at java.lang.reflect.Method.invoke(Method.java:498)
>
> 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)