CDH集群并开启了kerberos, 最近要打开Hue查询HBASE的功能,打开之后发现HUE右上角报错:failed authentication to hbase. 查询hue管理界面检查配置发现hbase browser错误之类的。
参考网上,基本没有任何一篇文章给出完全正确或者清晰的答案,都是涉及了一部分。 因此做个记录:
通过CM修改配置如下:
1. hbase.regionserver.thrift.http 默认是true , 修改为false
2. hbase.regionserver.thrift.compact 默认是true, 修改为false
3. hbase.thrift.security.qop 默认是none, 修改为auth
经常上面3个修改,HUE查询HBASE的功能就已经OK了。 但是从上面参数hbase.regionserver.thrift.http设置为false就明白,doAS功能已经关闭了。
"hbase.regionserver.thrift.http 参数解释:使用此选项可在 Thrift 上启用 Http 服务器使用,其主要用于“doAs”功能。"
代理用户默认是hue, 现在doAS功能取消了,那就意味着如果从HUE来操作HBASE,所有的底层用户都是HUE,和你登入用户无关。
默认hue用户是没有任何HBASE权限的,因此为了让hue用户能够拥有权限,使用hbase shell并 grant RWCAX hue使hue用户拥有所有权限。
通过上面所有设置HUE使用HBASE已经OK了。但是从上面的描述来看就知道有一些问题需要处理,因为HBASE开启了kerberos之后同样也打开了权限,每个用户有自己的表,但是取消代理用户之后统一使用HUE,这就表示如果使用HUE操作HBASE就没有权限的概念了。
取消了doAS也就只能这样,如果要完全解决就需要处理打开doAS的情况下,让HUE能够正常操作HBASE。