Exception in thread "main" java.lang.NullPointerException
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:187)
at org.apache.sentry.provider.db.service.persistent.HAContext.getServicePrincipal(HAContext.java:215)
at org.apache.sentry.provider.db.service.persistent.HAContext.(HAContext.java:94)
at org.apache.sentry.provider.db.service.persistent.HAContext.getHAContext(HAContext.java:154)
at org.apache.sentry.provider.db.service.persistent.HAContext.getHAServerContext(HAContext.java:187)
at org.apache.sentry.provider.db.service.persistent.LeaderStatusMonitor.(LeaderStatusMonitor.java:145)
at org.apache.sentry.provider.db.service.persistent.LeaderStatusMonitor.getLeaderStatusMonitor(LeaderStatusMonitor.java:189)
at org.apache.sentry.service.thrift.SentryService.(SentryService.java:168)
at org.apache.sentry.service.thrift.SentryService$CommandImpl.run(SentryService.java:571)
at org.apache.sentry.SentryMain.main(SentryMain.java:120)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:313)
at org.apache.hadoop.util.RunJar.main(RunJar.java:227)
这个错误提示表明 cdh 初始化 Sentry(一个授权服务)时发生了空指针异常。
具体出现的原因可能有很多种,可以参考如下
Sentry 相关的配置文件设置错误或缺失某些必要设置。请确保在初始化 Sentry 时已将所有 Sentry 的配置信息正确设置,比如 Sentry Server 和客户端之间的 thrift 通信端口。
Sentry Server 相关的依赖项未正确安装或者版本不匹配。检查 Sentry 程序所需的依赖项是否都已经正确安装,并且版本符合要求。
数据库相关的配置信息错误。Sentry 数据库相关的配置信息如果不正确,也会导致类似的错误,包括数据库连接信息、用户名和密码等。
配置文件命名或路径错误。有时候 Sentry 初始化时,配置文件的路径和文件名错误,可能会导致空指针异常错误。
您可以按照上述方法排除相应问题,尝试找到问题出现的根本原因并进行修复。同时建议运行 Sentry 的用户检查其日志并尝试从中找到更多有用的信息。