ClassNotFoundException: org.apache.sentry.binding.metastore.SentryMetastorePostEventListener

版权声明:本文为博主原创文章,未经博主允许不得转载。博客地址:http://www.fanlegefan.com/ https://blog.csdn.net/woloqun/article/details/83514925

环境:

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>

猜你喜欢

转载自blog.csdn.net/woloqun/article/details/83514925
今日推荐