Reply
Highlighted
Explorer
Posts: 7
Registered: ‎05-19-2017

How to setup Sentry on Cloudera Quickstart Virtual Machine

Hello,

 

I just started using Cloudera Quickstart on my local VM.

 

According to this article: https://www.cloudera.com/documentation/enterprise/5-9-x/topics/sg_sentry_service_config.html, I need to do:

 

Enabling the Sentry Service for Hive
Go to the Hive service.
Click the Configuration tab.
Select Scope > Hive (Service-Wide).
Select Category > Main.
Locate the Sentry Service property and select Sentry.
Click Save Changes to commit the changes.
Restart the Hive service.

 

But in my Cloudera Quickstart there is no Sentry service, and in Hue-> Configuration: I don't see Sentry option in Sentry Service.

 

Is it because I have a incomplete Cloudera Quickstart? or Sentry is not included in Quickstart? or I need to start Sentry service somewhere first?

 

Please see the screenshot for your reference.

 

Screenshot - 5_19_2017 , 9_26_59 PM.jpg

 

Thank you very much.

New Contributor
Posts: 5
Registered: ‎01-17-2017

Re: How to setup Sentry on Cloudera Quickstart Virtual Machine

Did you add the Sentry Service in your Cloudera Manager? If not add Sentry service, if already done please post Sentry logs, of CM logs

New Contributor
Posts: 7
Registered: ‎02-13-2018

Re: How to setup Sentry on Cloudera Quickstart Virtual Machine

Having the same issue, I am trying to install Sentry on the Quickstart VM 5.12.0 following the instructions here:

https://www.cloudera.com/documentation/enterprise/5-12-x/topics/sg_sentry_service_install.html#conce...

 

I configured it with the default mysql options for the instance that comes with Cloudera:

Database Host Name: quickstart.cloudera

Database Type: MySQL

Database Name: cm

Username: cm

Password: cloudera

 

Here is the error message I am getting on Step 5 when it trys to start the Sentry service. The previous steps including Creating Sentry Database Tables are fine. Any help would be very much appreciated. Thanks:

 

12:03:45.185 AMINFOSentryService
Attempting to start...
12:03:45.207 AMINFOSentryService
ProcessorFactory being used: org.apache.sentry.provider.db.service.thrift.SentryPolicyStoreProcessorFactory
12:03:45.763 AMINFOPersistence
Property datanucleus.cache.level2 unknown - will be ignored
12:03:46.183 AMWARNBoneCPConfig
Max Connections < 1. Setting to 20
12:03:48.221 AMWARNQuery
Query for candidates of org.apache.sentry.provider.db.service.model.MSentryVersion and subclasses resulted in no possible candidates
Required table missing : "`SENTRY_VERSION`" in Catalog "" Schema "". DataNucleus requires this table to perform its persistence operations. Either your MetaData is incorrect, or you need to enable "datanucleus.autoCreateTables"
org.datanucleus.store.rdbms.exceptions.MissingTableException: Required table missing : "`SENTRY_VERSION`" in Catalog "" Schema "". DataNucleus requires this table to perform its persistence operations. Either your MetaData is incorrect, or you need to enable "datanucleus.autoCreateTables"
	at org.datanucleus.store.rdbms.table.AbstractTable.exists(AbstractTable.java:485)
	at org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.performTablesValidation(RDBMSStoreManager.java:3408)
	at org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.addClassTablesAndValidate(RDBMSStoreManager.java:3218)
	at org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.run(RDBMSStoreManager.java:2869)
	at org.datanucleus.store.rdbms.AbstractSchemaTransaction.execute(AbstractSchemaTransaction.java:122)
	at org.datanucleus.store.rdbms.RDBMSStoreManager.addClasses(RDBMSStoreManager.java:1606)
	at org.datanucleus.store.AbstractStoreManager.addClass(AbstractStoreManager.java:954)
	at org.datanucleus.store.rdbms.RDBMSStoreManager.getDatastoreClass(RDBMSStoreManager.java:680)
	at org.datanucleus.store.rdbms.query.RDBMSQueryUtils.getStatementForCandidates(RDBMSQueryUtils.java:431)
	at org.datanucleus.store.rdbms.query.JDOQLQuery.compileQueryFull(JDOQLQuery.java:938)
	at org.datanucleus.store.rdbms.query.JDOQLQuery.compileInternal(JDOQLQuery.java:363)
	at org.datanucleus.store.query.Query.executeQuery(Query.java:1744)
	at org.datanucleus.store.query.Query.executeWithArray(Query.java:1672)
	at org.datanucleus.store.query.Query.execute(Query.java:1654)
	at org.datanucleus.api.jdo.JDOQuery.execute(JDOQuery.java:221)
	at org.apache.sentry.provider.db.service.persistent.SentryStore$21.execute(SentryStore.java:1478)
	at org.apache.sentry.provider.db.service.persistent.SentryStore$21.execute(SentryStore.java:1474)
	at org.apache.sentry.provider.db.service.persistent.TransactionManager.executeTransaction(TransactionManager.java:111)
	at org.apache.sentry.provider.db.service.persistent.SentryStore.getMSentryVersion(SentryStore.java:1473)
	at org.apache.sentry.provider.db.service.persistent.SentryStore.getSentryVersion(SentryStore.java:1444)
	at org.apache.sentry.provider.db.service.persistent.SentryStore.verifySentryStoreSchema(SentryStore.java:210)
	at org.apache.sentry.provider.db.service.persistent.SentryStore.<init>(SentryStore.java:197)
	at org.apache.sentry.provider.db.service.thrift.SentryPolicyStoreProcessor.<init>(SentryPolicyStoreProcessor.java:104)
	at org.apache.sentry.provider.db.service.thrift.SentryPolicyStoreProcessorFactory.register(SentryPolicyStoreProcessorFactory.java:31)
	at org.apache.sentry.service.thrift.SentryService.runServer(SentryService.java:201)
	at org.apache.sentry.service.thrift.SentryService.call(SentryService.java:168)
	at org.apache.sentry.service.thrift.SentryService.call(SentryService.java:71)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
12:03:48.227 AMERRORSentryService
Error starting server
java.lang.IllegalStateException: Could not create org.apache.sentry.provider.db.service.thrift.SentryPolicyStoreProcessorFactory
	at org.apache.sentry.service.thrift.SentryService.runServer(SentryService.java:207)
	at org.apache.sentry.service.thrift.SentryService.call(SentryService.java:168)
	at org.apache.sentry.service.thrift.SentryService.call(SentryService.java:71)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.sentry.provider.db.SentryNoSuchObjectException: No matching version found
	at org.apache.sentry.provider.db.service.persistent.SentryStore$21.execute(SentryStore.java:1482)
	at org.apache.sentry.provider.db.service.persistent.SentryStore$21.execute(SentryStore.java:1474)
	at org.apache.sentry.provider.db.service.persistent.TransactionManager.executeTransaction(TransactionManager.java:111)
	at org.apache.sentry.provider.db.service.persistent.SentryStore.getMSentryVersion(SentryStore.java:1473)
	at org.apache.sentry.provider.db.service.persistent.SentryStore.getSentryVersion(SentryStore.java:1444)
	at org.apache.sentry.provider.db.service.persistent.SentryStore.verifySentryStoreSchema(SentryStore.java:210)
	at org.apache.sentry.provider.db.service.persistent.SentryStore.<init>(SentryStore.java:197)
	at org.apache.sentry.provider.db.service.thrift.SentryPolicyStoreProcessor.<init>(SentryPolicyStoreProcessor.java:104)
	at org.apache.sentry.provider.db.service.thrift.SentryPolicyStoreProcessorFactory.register(SentryPolicyStoreProcessorFactory.java:31)
	at org.apache.sentry.service.thrift.SentryService.runServer(SentryService.java:201)
New Contributor
Posts: 7
Registered: ‎02-13-2018

Re: How to setup Sentry on Cloudera Quickstart Virtual Machine

Resolved, by deleting all tables in sentry database in MySQL and then recreating them from Cloudera Manager, and this time by logging into database as root instead of cm user.

Announcements