CDH 6.0.1 版本 默认配置下 HUE | happybase 无法访问 Hbase 的问题

第一个问题 HUE 无法直接连接到 HBase

在默认配置下 CDH 6.0.1 版本下的 HBase2.0 使用了默认配置

hbase.regionserver.thrift.compact = True

也就是是被勾选的状态,但是 HUE 我找了半天发现无法配置 thift.compact 的启用。所以要使用 hue 来使用 HBase 2.0 就需要把这个 HBase 的参数置为 False

hbase.regionserver.thrift.compact 是否使用Thrift TCompactProtocol,如果你每列数据比较大,可以试着开启,减少带宽。

这里就比较坑的一点是,CDH 官方文档让开启

启用 HBase Thrift Http 服务器
hbase.regionserver.thrift.http
HBase(服务范围)
启用 HBase Thrift 代理用户
hbase.thrift.support.proxyuser
HBase(服务范围)

这两个选项,但是经过实际测试,开启这两个选项不仅会让 hue 无法连接上去,就连 happybase 也会报错。所以关闭了,详情可以参考 reference 里面的 「Sharing how to solve HUE and HBase connect problem on CDH 6.0.1」文章。

另外使用 happybase 的默认配置对其进行访问,也无法直接访问,原因是来自于 happybase 默认的 protocol 和 transport 不兼容不一样。

当我们参照 「Sharing how to solve HUE and HBase connect problem on CDH 6.0.1」关闭相关参数之后。设置 protocol 为 compact 和 transport 是 framed

默认参数使用的是 protocol 为 binary 和 transport 是 buffred

connection = happybase.Connection('xxxx', 9090, transport='framed', protocol='compact')

调整好之后就可以正确访问了!

Reference:

https://community.cloudera.com/t5/Web-UI-Hue-Beeswax/Sharing-how-to-solve-HUE-and-HBase-connect-problem-on-CDH-6/td-p/82030  Sharing how to solve HUE and HBase connect problem on CDH 6.0.1

https://github.com/wbolster/happybase/issues/161  Getting cybin.ProtocolError: No protocol version header error

http://my.525.life/article?id=1510739742002  hadoop组件---面向列的开源数据库(三)---hbase的接口thrift(需整理和csdn)

原文地址:https://www.cnblogs.com/piperck/p/11166451.html