Search code examples
dockerkubernetescassandraopenshiftapache-atlas

Apache Atlas with Cassandra on Openshift , Exception while starting Atlas server


I am setting up Apache Atlas with Cassandra as backend and solr as indexer. Below are my configuration setting for Atlas-cassandra

   atlas.graph.storage.backend=cql
    atlas.graph.storage.hostname=cassandra-dc-service
    atlas.graph.storage.cassandra.keyspace=JanusGraph
    atlas.graph.storage.clustername=cstone-cassandra
    atlas.graph.storage.port=9042
  atlas.EntityAuditRepository.impl=org.apache.atlas.repository.audit.CassandraBasedAuditRepository
    atlas.EntityAuditRepository.keyspace=atlas_audit
    atlas.EntityAuditRepository.replicationFactor=1
    atlas.graph.storage.username=cassandra-superuser
    atlas.graph.storage.password=xxxxxx

I took help from (Apache atlas 2.1 configuration connection cassandra backend [help]) to resolve cassandra connection issue for creating keyspace. But Atlas Service is not coming up with below exception:

2022-02-17 22:03:02,742 ERROR - [main:] ~ Context initialization failed (ContextLoader:350)
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'services': Invocation of init method failed; nested excep
        at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotat
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutow
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:16
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
Caused by: com.datastax.driver.core.exceptions.AuthenticationException: Authentication error on host cassandra-dc-service/
        at com.datastax.driver.core.AuthProvider$1.newAuthenticator(AuthProvider.java:40)                                                        
        at com.datastax.driver.core.Connection$5.apply(Connection.java:257)                                                                      
        at com.datastax.driver.core.Connection$5.apply(Connection.java:242)                                                                      
        at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:210)        
        at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:199)
        at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:111)                           
        at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:398)          
        at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1024)     
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)

I see open Jira issue for the same. If anyone already resolved this issue kindly suggest the workaround


Solution

  • Officially till Atlas 2.2.0 not support for authenticated Cassandra. But while building code we can update two files which are given in below PR and build Atlas. Which works as expected

    https://github.com/apache/atlas/pull/67