环境:

apache-hive-2.3.3-bin
apache-sentry-2.1.0-bin

尝试将sentry集成到hive中去,启动hiveserver2的时候出现这个错
java.lang.ClassNotFoundException: org.apache.sentry.binding.metastore.SentryMetastorePostEventListener
去sentry的mater分支上查了下,这个类已经废弃掉了;看了下hive-site.xml中hive.metastore.event.listeners这个参数的意思

A comma separated list of Java classes that implement the org.apache.hadoop.hive.metastore.MetaStoreEventListener interface.
 The metastore event and corresponding listener method will be invoked in separate JDO transactions. Alternatively, configure 
 hive.metastore.transactional.event.listeners to ensure both are invoked in same JDO transaction

大致说需要实现org.apache.hadoop.hive.metastore.MetaStoreEventListener这个接口,于是去sentry找了下实现这个接口的类只有一个:org.apache.sentry.binding.metastore.SentrySyncHMSNotificationsPostEventListener,所以hive-site.xml修改如下

vi hive-site.xml

  <property>
    <name>hive.metastore.event.listeners</name>
    <value>org.apache.sentry.binding.metastore.SentrySyncHMSNotificationsPostEventListener</value>
  </property>
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐