Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

An exception occurred while connecting to elasticsearch 7.6.1 #14304

Open
wang4428 opened this issue Mar 28, 2020 · 4 comments
Open

An exception occurred while connecting to elasticsearch 7.6.1 #14304

wang4428 opened this issue Mar 28, 2020 · 4 comments
Labels

Comments

@wang4428
Copy link

wang4428 commented Mar 28, 2020

using presto server 0.233.1

only try to connect to elasticsearch 7.6.1, table config info:

[root@es prestodb-server]# cat etc/elasticsearch/demo.json
{
    "tableName": "demo",
    "schemaName": "default",
    "host": "127.0.0.1",
    "port": 9300,
    "clusterName": "elasticsearch",
    "index": "demo",
    "type": "_doc",
    "columns": [
        {
            "name": "id",
            "type": "varchar",
            "jsonPath": "_id",
            "jsonType": "varchar"
        }
    ]
}

an exception occurred:

2020-03-28T21:20:18.228+0800    ERROR   main    com.facebook.presto.server.PrestoServer com.google.inject.CreationException: Unable to create injector, see the following errors:

1) Error in custom provider, java.lang.NoClassDefFoundError: io/netty/buffer/ByteBuf
  at com.facebook.presto.elasticsearch.ElasticsearchConnectorModule.createElasticsearchClient(ElasticsearchConnectorModule.java:62)
  while locating com.facebook.presto.elasticsearch.ElasticsearchClient
Caused by: java.lang.NoClassDefFoundError: io/netty/buffer/ByteBuf
        at org.elasticsearch.transport.Netty4Plugin.<clinit>(Netty4Plugin.java:47)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at org.elasticsearch.plugins.PluginsService.loadPlugin(PluginsService.java:447)
        at org.elasticsearch.plugins.PluginsService.<init>(PluginsService.java:105)
        at org.elasticsearch.client.transport.TransportClient.newPluginService(TransportClient.java:100)
        at org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:125)
        at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:259)
        at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:125)
        at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:111)
        at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:101)
        at com.facebook.presto.elasticsearch.ElasticsearchClient.createTransportClient(ElasticsearchClient.java:509)
        at com.facebook.presto.elasticsearch.ElasticsearchClient.<init>(ElasticsearchClient.java:116)
        at com.facebook.presto.elasticsearch.ElasticsearchConnectorModule.createElasticsearchClient(ElasticsearchConnectorModule.java:62)
        at com.facebook.presto.elasticsearch.ElasticsearchConnectorModule$$FastClassByGuice$$a9f8eed5.invoke(<generated>)
        at com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:264)
        at com.google.inject.internal.ProviderMethod.doProvision(ProviderMethod.java:173)
        at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185)
        at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.access$300(InternalProviderInstanceBindingImpl.java:139)
        at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory$1.call(InternalProviderInstanceBindingImpl.java:169)
        at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:112)
        at com.facebook.airlift.bootstrap.LifeCycleModule.provision(LifeCycleModule.java:54)
        at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:120)
        at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:66)
        at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:164)
        at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
        at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168)
        at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
        at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:211)
        at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:182)
        at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109)
        at com.google.inject.Guice.createInjector(Guice.java:87)
        at com.facebook.airlift.bootstrap.Bootstrap.initialize(Bootstrap.java:245)
        at com.facebook.presto.elasticsearch.ElasticsearchConnectorFactory.create(ElasticsearchConnectorFactory.java:67)
        at com.facebook.presto.connector.ConnectorManager.createConnector(ConnectorManager.java:364)
        at com.facebook.presto.connector.ConnectorManager.addCatalogConnector(ConnectorManager.java:222)
        at com.facebook.presto.connector.ConnectorManager.createConnection(ConnectorManager.java:214)
        at com.facebook.presto.connector.ConnectorManager.createConnection(ConnectorManager.java:200)
        at com.facebook.presto.metadata.StaticCatalogStore.loadCatalog(StaticCatalogStore.java:123)
        at com.facebook.presto.metadata.StaticCatalogStore.loadCatalog(StaticCatalogStore.java:98)
        at com.facebook.presto.metadata.StaticCatalogStore.loadCatalogs(StaticCatalogStore.java:80)
        at com.facebook.presto.metadata.StaticCatalogStore.loadCatalogs(StaticCatalogStore.java:68)
        at com.facebook.presto.server.PrestoServer.run(PrestoServer.java:135)
        at com.facebook.presto.server.PrestoServer.main(PrestoServer.java:77)
Caused by: java.lang.ClassNotFoundException: io.netty.buffer.ByteBuf
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at com.facebook.presto.server.PluginClassLoader.loadClass(PluginClassLoader.java:80)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 46 more

2) Error in custom provider, java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.transport.Netty4Plugin
  at com.facebook.presto.elasticsearch.ElasticsearchConnectorModule.createElasticsearchClient(ElasticsearchConnectorModule.java:62)
  while locating com.facebook.presto.elasticsearch.ElasticsearchClient
    for the 1st parameter of com.facebook.presto.elasticsearch.ElasticsearchMetadata.<init>(ElasticsearchMetadata.java:48)
  at com.facebook.presto.elasticsearch.ElasticsearchConnectorModule.configure(ElasticsearchConnectorModule.java:45)
  while locating com.facebook.presto.elasticsearch.ElasticsearchMetadata
    for the 2nd parameter of com.facebook.presto.elasticsearch.ElasticsearchConnector.<init>(ElasticsearchConnector.java:47)
  at com.facebook.presto.elasticsearch.ElasticsearchConnectorModule.configure(ElasticsearchConnectorModule.java:44)
  while locating com.facebook.presto.elasticsearch.ElasticsearchConnector
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.transport.Netty4Plugin
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at org.elasticsearch.plugins.PluginsService.loadPlugin(PluginsService.java:447)
        at org.elasticsearch.plugins.PluginsService.<init>(PluginsService.java:105)
        at org.elasticsearch.client.transport.TransportClient.newPluginService(TransportClient.java:100)
        at org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:125)
        at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:259)
        at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:125)
        at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:111)
        at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:101)
        at com.facebook.presto.elasticsearch.ElasticsearchClient.createTransportClient(ElasticsearchClient.java:509)
        at com.facebook.presto.elasticsearch.ElasticsearchClient.<init>(ElasticsearchClient.java:116)
        at com.facebook.presto.elasticsearch.ElasticsearchConnectorModule.createElasticsearchClient(ElasticsearchConnectorModule.java:62)
        at com.facebook.presto.elasticsearch.ElasticsearchConnectorModule$$FastClassByGuice$$a9f8eed5.invoke(<generated>)
        at com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:264)
        at com.google.inject.internal.ProviderMethod.doProvision(ProviderMethod.java:173)
        at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185)
        at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.access$300(InternalProviderInstanceBindingImpl.java:139)
        at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory$1.call(InternalProviderInstanceBindingImpl.java:169)
        at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:112)
        at com.facebook.airlift.bootstrap.LifeCycleModule.provision(LifeCycleModule.java:54)
        at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:120)
        at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:66)
        at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:164)
        at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
        at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168)
        at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
        at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
        at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
        at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
        at com.google.inject.internal.ConstructorInjector.access$000(ConstructorInjector.java:32)
        at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:98)
        at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:112)
        at com.facebook.airlift.bootstrap.LifeCycleModule.provision(LifeCycleModule.java:54)
        at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:120)
        at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:66)
        at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:93)
        at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306)
        at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
        at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168)
        at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
        at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
        at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
        at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
        at com.google.inject.internal.ConstructorInjector.access$000(ConstructorInjector.java:32)
        at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:98)
        at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:112)
        at com.facebook.airlift.bootstrap.LifeCycleModule.provision(LifeCycleModule.java:54)
        at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:120)
        at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:66)
        at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:93)
        at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306)
        at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
        at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168)
        at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
        at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:211)
        at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:182)
        at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109)
        at com.google.inject.Guice.createInjector(Guice.java:87)
        at com.facebook.airlift.bootstrap.Bootstrap.initialize(Bootstrap.java:245)
        at com.facebook.presto.elasticsearch.ElasticsearchConnectorFactory.create(ElasticsearchConnectorFactory.java:67)
        at com.facebook.presto.connector.ConnectorManager.createConnector(ConnectorManager.java:364)
        at com.facebook.presto.connector.ConnectorManager.addCatalogConnector(ConnectorManager.java:222)
        at com.facebook.presto.connector.ConnectorManager.createConnection(ConnectorManager.java:214)
        at com.facebook.presto.connector.ConnectorManager.createConnection(ConnectorManager.java:200)
        at com.facebook.presto.metadata.StaticCatalogStore.loadCatalog(StaticCatalogStore.java:123)
        at com.facebook.presto.metadata.StaticCatalogStore.loadCatalog(StaticCatalogStore.java:98)
        at com.facebook.presto.metadata.StaticCatalogStore.loadCatalogs(StaticCatalogStore.java:80)
        at com.facebook.presto.metadata.StaticCatalogStore.loadCatalogs(StaticCatalogStore.java:68)
        at com.facebook.presto.server.PrestoServer.run(PrestoServer.java:135)
        at com.facebook.presto.server.PrestoServer.main(PrestoServer.java:77)
@wang4428
Copy link
Author

wang4428 commented Mar 28, 2020

I guess it's because of the version conflict of netty, but how can I fix it

@wang4428
Copy link
Author

wang4428 commented Mar 29, 2020

The netty libraries missing 4.1.13 in the 0.233.1 package, so I just need to add the appropriate class libraries to the presto-elasticsearch folder

[root@es presto-elasticsearch]# ll |grep netty-
-rw-r--r--. 1 root root  270012 3月  29 14:43 netty-buffer-4.1.13.Final.jar
-rw-r--r--. 1 root root  311688 3月  29 14:46 netty-codec-4.1.13.Final.jar
-rw-r--r--. 1 root root  548816 3月  29 14:46 netty-codec-http-4.1.13.Final.jar
-rw-r--r--. 1 root root  533933 3月  29 14:46 netty-common-4.1.13.Final.jar
-rw-r--r--. 1 root root  355751 3月  29 14:47 netty-handler-4.1.13.Final.jar
-rw-r--r--. 1 root root   32231 3月  29 14:46 netty-resolver-4.1.13.Final.jar
-rw-r--r--. 1 root root  432644 3月  29 14:46 netty-transport-4.1.13.Final.jar

As the same time, I have upgraded dep.elasticsearch.version from 6.0.0 to 6.0.1

It works now, but only supports elasticsearch 6.x

@dengbp
Copy link

dengbp commented Apr 30, 2020

i Encountered the same problem,how can fix it? I add the appropriate class libraries to the lib folder.but The error still exists

@stale
Copy link

stale bot commented May 1, 2022

This issue has been automatically marked as stale because it has not had any activity in the last 2 years. If you feel that this issue is important, just comment and the stale tag will be removed; otherwise it will be closed in 7 days. This is an attempt to ensure that our open issues remain valuable and relevant so that we can keep track of what needs to be done and prioritize the right things.

@stale stale bot added the stale label May 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants