hive启用kerberos+sentry后超级用户无权限

hive启用了kerberos和sentry,使用hive超级用户hive通过beeline访问服务,无法进行角色创建,切换数据库等操作。
报错如下:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Current user : hive is not allowed to add roles. User has to belong to ADMIN role and have it as current role, for this action.

经过查阅资料,未发现有人出现同样问题,正常来说,使用超级用户hive,不应该出现权限问题。

遍寻无果之后,我把思考的方向放到了kerberos+sentry的启用过程上。

在启用kerberos之前,我对hive启用了sentry,之后没有还原配置。启用kerberos之后,进行上述操作,出现这个问题。于是我的直觉告诉我,这极有可能是启用kerberos和sentry的先后顺序导致,启用kerberos之前启用sentry,与启用kerberos之后启用sentry,配置更改应该是有差异的。

正确的顺序应该是:先启用kerberos,再启用sentry。

对于我的反向操作,想到两个解决办法:
1、修改hive配置,以符合正确启动顺序的配置。
2、关闭hive的sentry配置,重新启用sentry。

由于配置需要耗费大量精力,我目前没打算研究这些配置,当然选择第2个解决方法。

实行后,一切都回归正常。

你可能感兴趣的:(大数据)