初始化sentry数据库分两种:
- 使用postgresql数据库: #sentry --command schema-tool --conffile /etc/sentry/conf/sentry-site.xml --dbType postgres --initSchema
- 使用mysql数据库: #sentry --command schema-tool --conffile /etc/sentry/conf/sentry-site.xml --dbType mysql --initSchema
报错如下图:
解决方法:
在/etc/sentry/conf/sentry.xml进行修改,修改成如下内容(sentry.service.allow.connect以及之后的都是新增加的)
<?xml version="1.0" encoding="UTF-8"?>
<!--Autogenerated by Cloudera Manager-->
<configuration>
<property>
<name>sentry.service.client.server.rpc-address</name>
<value>ctl</value>
</property>
<property>
<name>sentry.service.client.server.rpc-port</name>
<value>8038</value>
</property>
<property>
<name>sentry.service.server.principal</name>
<value>sentry/_HOST@EXAMPLE.COM</value>
</property>
<property>
<name>sentry.service.security.mode</name>
<value>kerberos</value>
</property>
<property>
<name>sentry.service.allow.connect</name>
<value>hive,impala,hue,hdfs</value>
</property>
<property>
<name>sentry.store.group.mapping</name>
<value>org.apache.sentry.provider.common.HadoopGroupMappingService</value>
</property>
<property>
<name>sentry.service.server.keytab</name>
<value>sentry.keytab</value>
</property>
<property>
<name>sentry.store.jdbc.url</name>
<value>jdbc:postgresql://ctl:5432/sentry</value>
</property>
<property>
<name>sentry.store.jdbc.driver</name>
<value>org.postgresql.Driver</value>
</property>
<property>
<name>sentry.store.jdbc.user</name>
<value>postgres</value>
</property>
<property>
<name>sentry.store.jdbc.password</name>
<value>postgres</value>
</property>
</configuration>
修改完保存之后,再执行一次初始化sentry数据库。
这里同时解决了另一件事,就是CDH中添加sentry服务失败,把这个配置文件搞定以后,再回到CDH启动sentry就OK了。