Tom Beerbower created AMBARI-16464:
--------------------------------------

             Summary: Atlas Integration : Atlas fails to come up with solr as 
indexing search when the zookeeper quorum has more than one host
                 Key: AMBARI-16464
                 URL: https://issues.apache.org/jira/browse/AMBARI-16464
             Project: Ambari
          Issue Type: Bug
            Reporter: Tom Beerbower
            Assignee: Tom Beerbower


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
{noformat}
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)
{noformat}



The exception because of this
{noformat}
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
{noformat}


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

{code}
# 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"
{code}

It looks like for {{atlas.graph.index.search.solr.zookeeper-url}} it should be 
...
{code}
c6401.ambari.apache.org:2181/logsearch,c6402.ambari.apache.org:2181/logsearch,c6403.ambari.apache.org:2181/logsearch
{code}







--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to