Uploaded image for project: 'Ambari'
  1. Ambari
  2. AMBARI-16464

Atlas Integration : Atlas fails to come up with solr as indexing search when the zookeeper quorum has more than one host

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • None
    • None
    • None

    Description

      Atlas fails to communicate with solr when the zookeeper quorum has more than one host, as a result of this atlas fails to comeup.

      Actually the config parameter "atlas.graph.index.search.solr.zookeeper-url" value is set to "zookeeper_quorum/logsearch". Since there are more than one zookeeper servers deployed, this value evaluates to "[os-r6-apathan-atlas-erie-nosec-3.openstacklocal:2181, os-r6-apathan-atlas-erie-nosec-2.openstacklocal:2181/logsearch]" which seems to wrong.

      Below is the application log of atlas

      2016-05-05 18:32:42,394 DEBUG - [main:] ~ atlas.graph.index.search.directory = /var/lib/atlas/data/es (ApplicationProperties:86)
      2016-05-05 18:32:42,394 DEBUG - [main:] ~ atlas.graph.index.search.elasticsearch.client-only = false (ApplicationProperties:86)
      2016-05-05 18:32:42,394 DEBUG - [main:] ~ atlas.graph.index.search.elasticsearch.local-mode = true (ApplicationProperties:86)
      2016-05-05 18:32:42,394 DEBUG - [main:] ~ atlas.graph.index.search.solr.mode = cloud (ApplicationProperties:86)
      2016-05-05 18:32:42,395 DEBUG - [main:] ~ atlas.graph.index.search.solr.zookeeper-url = [os-r6-apathan-atlas-erie-nosec-3.openstacklocal:2181, os-r6-apathan-atlas-erie-nosec-2.openstacklocal:2181/logsearch] (ApplicationProperties:86)
      2016-05-05 18:32:42,395 DEBUG - [main:] ~ atlas.graph.storage.backend = hbase (ApplicationProperties:86)
      

      The exception because of this

      2016-05-05 18:33:11,212 INFO  - [main:] ~ Session: 0x25480887e74006a closed (ZooKeeper:684)
      2016-05-05 18:33:11,215 WARN  - [main:] ~ FAILED o.e.j.w.WebAppContext@65064ae0{/,file:/var/lib/atlas/server/webapp/atlas/,STARTING}{/var/lib/atlas/server/webapp/atlas}: java.lang.ExceptionInInitializerError (AbstractLifeCycle:212)
      java.lang.ExceptionInInitializerError
      	at org.apache.atlas.repository.graph.DeleteHandler.<clinit>(DeleteHandler.java:48)
      	at java.lang.Class.forName0(Native Method)
      	at java.lang.Class.forName(Class.java:264)
      	at org.apache.atlas.ApplicationProperties.getClass(ApplicationProperties.java:99)
      	at org.apache.atlas.RepositoryMetadataModule.getDeleteHandler(RepositoryMetadataModule.java:114)
      	at org.apache.atlas.RepositoryMetadataModule.configure(RepositoryMetadataModule.java:90)
      	at com.google.inject.AbstractModule.configure(AbstractModule.java:62)
      	at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340)
      	at com.google.inject.spi.Elements.getElements(Elements.java:110)
      	at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:138)
      	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
      	at com.google.inject.Guice.createInjector(Guice.java:96)
      	at com.google.inject.Guice.createInjector(Guice.java:73)
      	at com.google.inject.Guice.createInjector(Guice.java:62)
      	at org.apache.atlas.web.listeners.GuiceServletConfig.getInjector(GuiceServletConfig.java:79)
      	at com.google.inject.servlet.GuiceServletContextListener.contextInitialized(GuiceServletContextListener.java:47)
      	at org.apache.atlas.web.listeners.GuiceServletConfig.contextInitialized(GuiceServletConfig.java:148)
      	at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:800)
      	at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:444)
      	at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:791)
      	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:294)
      	at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
      	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
      	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
      	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
      	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
      	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
      	at org.eclipse.jetty.server.Server.start(Server.java:387)
      	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
      	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
      	at org.eclipse.jetty.server.Server.doStart(Server.java:354)
      	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
      	at org.apache.atlas.web.service.EmbeddedServer.start(EmbeddedServer.java:93)
      	at org.apache.atlas.Atlas.main(Atlas.java:113)
      Caused by: java.lang.IllegalArgumentException: Could not instantiate implementation: com.thinkaurelius.titan.diskstorage.solr.Solr5Index
      	at com.thinkaurelius.titan.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:55)
      	at com.thinkaurelius.titan.diskstorage.Backend.getImplementationClass(Backend.java:421)
      	at com.thinkaurelius.titan.diskstorage.Backend.getIndexes(Backend.java:408)
      	at com.thinkaurelius.titan.diskstorage.Backend.<init>(Backend.java:139)
      	at com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration.getBackend(GraphDatabaseConfiguration.java:1748)
      	at com.thinkaurelius.titan.graphdb.database.StandardTitanGraph.<init>(StandardTitanGraph.java:110)
      	at com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:93)
      	at com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:73)
      	at org.apache.atlas.repository.graph.TitanGraphProvider.getGraphInstance(TitanGraphProvider.java:105)
      	at org.apache.atlas.repository.graph.GraphHelper.<clinit>(GraphHelper.java:64)
      	... 34 more
      Caused by: java.lang.reflect.InvocationTargetException
      	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 com.thinkaurelius.titan.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:44)
      	... 43 more
      Caused by: org.apache.solr.common.SolrException: Cannot connect to cluster at os-r6-apathan-atlas-erie-nosec-3.openstacklocal:2181: cluster not found/not ready
      	at org.apache.solr.common.cloud.ZkStateReader.createClusterStateWatchersAndUpdate(ZkStateReader.java:344)
      	at org.apache.solr.client.solrj.impl.CloudSolrClient.connect(CloudSolrClient.java:458)
      	at com.thinkaurelius.titan.diskstorage.solr.Solr5Index.<init>(Solr5Index.java:211)
      	... 48 more
      2016-05-05 18:33:11,243 INFO  - [main:] ~ Started ServerConnector@4003a5ad{HTTP/1.1}{0.0.0.0:21000} (ServerConnector:266)
      2016-05-05 18:33:11,244 WARN  - [main:] ~ FAILED org.eclipse.jetty.server.Server@4b4ada44: java.lang.ExceptionInInitializerError (AbstractLifeCycle:212)
      java.lang.ExceptionInInitializerError
      	at org.apache.atlas.repository.graph.DeleteHandler.<clinit>(DeleteHandler.java:48)
      	at java.lang.Class.forName0(Native Method)
      	at java.lang.Class.forName(Class.java:264)
      	at org.apache.atlas.ApplicationProperties.getClass(ApplicationProperties.java:99)
      	at org.apache.atlas.RepositoryMetadataModule.getDeleteHandler(RepositoryMetadataModule.java:114)
      	at org.apache.atlas.RepositoryMetadataModule.configure(RepositoryMetadataModule.java:90)
      	at com.google.inject.AbstractModule.configure(AbstractModule.java:62)
      	at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340)
      	at com.google.inject.spi.Elements.getElements(Elements.java:110)
      	at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:138)
      	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
      	at com.google.inject.Guice.createInjector(Guice.java:96)
      	at com.google.inject.Guice.createInjector(Guice.java:73)
      	at com.google.inject.Guice.createInjector(Guice.java:62)
      	at org.apache.atlas.web.listeners.GuiceServletConfig.getInjector(GuiceServletConfig.java:79)
      	at com.google.inject.servlet.GuiceServletContextListener.contextInitialized(GuiceServletContextListener.java:47)
      	at org.apache.atlas.web.listeners.GuiceServletConfig.contextInitialized(GuiceServletConfig.java:148)
      	at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:800)
      	at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:444)
      	at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:791)
      	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:294)
      	at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
      	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
      	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
      	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
      	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
      	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
      	at org.eclipse.jetty.server.Server.start(Server.java:387)
      	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
      	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
      	at org.eclipse.jetty.server.Server.doStart(Server.java:354)
      	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
      	at org.apache.atlas.web.service.EmbeddedServer.start(EmbeddedServer.java:93)
      	at org.apache.atlas.Atlas.main(Atlas.java:113)
      Caused by: java.lang.IllegalArgumentException: Could not instantiate implementation: com.thinkaurelius.titan.diskstorage.solr.Solr5Index
      	at com.thinkaurelius.titan.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:55)
      	at com.thinkaurelius.titan.diskstorage.Backend.getImplementationClass(Backend.java:421)
      	at com.thinkaurelius.titan.diskstorage.Backend.getIndexes(Backend.java:408)
      	at com.thinkaurelius.titan.diskstorage.Backend.<init>(Backend.java:139)
      	at com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration.getBackend(GraphDatabaseConfiguration.java:1748)
      	at com.thinkaurelius.titan.graphdb.database.StandardTitanGraph.<init>(StandardTitanGraph.java:110)
      	at com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:93)
      	at com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:73)
      	at org.apache.atlas.repository.graph.TitanGraphProvider.getGraphInstance(TitanGraphProvider.java:105)
      	at org.apache.atlas.repository.graph.GraphHelper.<clinit>(GraphHelper.java:64)
      	... 34 more
      Caused by: java.lang.reflect.InvocationTargetException
      	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 com.thinkaurelius.titan.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:44)
      	... 43 more
      Caused by: org.apache.solr.common.SolrException: Cannot connect to cluster at os-r6-apathan-atlas-erie-nosec-3.openstacklocal:2181: cluster not found/not ready
      	at org.apache.solr.common.cloud.ZkStateReader.createClusterStateWatchersAndUpdate(ZkStateReader.java:344)
      	at org.apache.solr.client.solrj.impl.CloudSolrClient.connect(CloudSolrClient.java:458)
      	at com.thinkaurelius.titan.diskstorage.solr.Solr5Index.<init>(Solr5Index.java:211)
      	... 48 more
      

      The value was set to match the value of the ZK connection string in the logsearch solr-env.sh ...

      # Set the ZooKeeper connection string if using an external ZooKeeper ensemble
      # e.g. host1:2181,host2:2181/chroot
      # Leave empty if not using SolrCloud
      ZK_HOST="c6401.ambari.apache.org:2181,c6402.ambari.apache.org:2181,c6403.ambari.apache.org:2181/logsearch"
      

      It looks like for atlas.graph.index.search.solr.zookeeper-url it should be ...

      c6401.ambari.apache.org:2181/logsearch,c6402.ambari.apache.org:2181/logsearch,c6403.ambari.apache.org:2181/logsearch
      

      Attachments

        1. AMBARI-16464.patch
          10 kB
          Jayush Luniya

        Issue Links

          Activity

            People

              tbeerbower Tom Beerbower
              tbeerbower Tom Beerbower
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: