在部署hue+hbase thrift的过程中,遇到问题很多,主要做以下总结.
1. 代理权限问题:
代理过程中必须保证hue票据用户和hbase thrift票据用户都具有代理权限.
如果hue票据用户缺少代理权限, thrift日志会提示如*** can not do as ***
如果thrift票据用户缺少代理权限, thrift日志会提示重试超时, 并不会有明显的错误提示.
2. 认证及票据设置问题:
这是hue+hbase thrift最难调试的问题, 相关文档对该问题的描述也不清楚.
一般按照官方文档部署,在通过hue访问hbase表时,可能会遇到以下几个问题
1. 缺少tgt票据, 这个时候一般是hue票据指定的用户有误, 需要仔细检查hue用户
2. 页面提示401, 查看thrift日志,提示Caused by: KrbException: Specified version of key is not available.这个错误是因为在认证过程中发 生错误, 如果hue的日志中打印出authenticate_user(): Authorization header: Negotiate **** 这样的字样,说明client的认证是正确的, 则很 可能说明client在申请服务票据时,指定的服务名称有误. 在实际部署过程中反复的对相关配置做了检查, 没有发现错误, 所以尝试对hue的源码做分析.
源码分析
hue代码结构
apps 各个组件的操作函数
desktop 界面相关功能, 同时包含部分基础依赖
hbase组件代码入口为apps/hbase/src/hbase/api.py, 该文件包括获取集群信息, 安全设置, 提供抽象操作接口, 并通过调用apps/hbase/gen-py 下的thrift接口进行实际操作. 以getTableList为例