HBase实践 | Hue集成HBase出现Api Error异常分析

栏目: 数据库 · 发布时间: 6年前

内容简介:1问题重现1.RedHat7.4

1

问题重现

  • 测试环境:

1.RedHat7.4

2.CDH5.16.1

3.使用root进行操作

4.集群已启用Kerberos

1.登录Hue并选择HBase模块。

HBase实践 | Hue集成HBase出现Api Error异常分析

界面上报错“API Error:timed out”,无法访问HBase中的表。

2.查看Hue的log有以下报错:

[root@ip-172-31-13-38 hue]#vim /var/log/hue/runcpserver.log
[19/May/2019 07:07:07 -0700] thrift_util WARNING Not retrying thrift call getTableNames due to socket timeout
[19/May/2019 07:07:07 -0700] thrift_util INFO Thrift saw a socket error: timed out
[19/May/2019 07:07:07 -0700] exceptions_renderable ERROR Potential trace: [('/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/apps/hbase/src/hbase/api.py', 46, 'query', 'return getattr(self, action)(*args)'), ('/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/apps/hbase/src/hbase/api.py', 141, 'getTableList', "return [{'name': name, 'enabled': client.isTableEnabled(name, doas=self.user.username)} for name in client.getTableNames(doas=self.user.username)]"), ('/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/desktop/core/src/desktop/lib/thrift_util.py', 385, 'wrapper', "raise StructuredException('THRIFTSOCKET', str(e), data=None, error_code=502)")]
[19/May/2019 07:07:07 -0700] middleware INFO Processing exception: Api Error: timed out: Traceback (most recent call last):
File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/core/handlers/base.py", line 112, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/db/transaction.py", line 371, in inner
return func(*args, **kwargs)
File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/apps/hbase/src/hbase/views.py", line 79, in api_router
return api_dump(HbaseApi(request.user).query(*url_params))
File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/apps/hbase/src/hbase/api.py", line 54, in query
raise PopupException(_("Api Error: %s") % error_msg)
PopupException: Api Error: timed out

HBase实践 | Hue集成HBase出现Api Error异常分析

2

异常分析

1.首先我们查看Hue配置中关于HBase Thrift的默认配置:

[root@ip-172-31-13-38 hue]#vim /opt/cloudera/parcels/CDH/lib/hue/apps/hbase/src/hbase/conf.py
THRIFT_TRANSPORT = Config(
key="thrift_transport",
default="framed",
help=_t("'framed' is used to chunk up responses, which is useful when used in conjunction with the nonblocking server in Thrift."
"'buffered' used to be the default of the HBase Thrift Server."),
type=str
)

HBase实践 | Hue集成HBase出现Api Error异常分析

可以看到Hue中使用默认的模式framed。

2.回到Cloudera Manager上点击HBase服务,然后进入Thrift的配置页。

HBase实践 | Hue集成HBase出现Api Error异常分析

可以看到HBase Thrift的framed模式并未勾选,说明HBase Thrift使用的是buffered模式,这与Hue的默认模式是不匹配的。所以导致通过Hue访问HBase服务异常报错API Error。

注意:查看上图hbase.regionserver.thrift.server.type该参数的服务类型,一共三项,根据CM对hbase.regionserver.thrift.framed的解释“使用 THsHaServer 或 TNonblockingServer 时,无论此配置值如何,始终使用framed传输。”而hbase.regionserver.thrift.server.type该参数的默认值是TThreadPoolServer恰好使用的不是framed。

3

问题解决

1.在Hue的配置 hue_safety_valve.ini 的 Hue 服务高级配置代码段(安全阀) 中增加以下配置:

[hbase]
thrift_transport=buffered

HBase实践 | Hue集成HBase出现Api Error异常分析

2.保存更改,然后回到Cloudera Manager主页重启Hue服务,该过程省略。

3.重新登录Hue并访问HBase。

HBase实践 | Hue集成HBase出现Api Error异常分析

已经可以正常访问HBase,问题解决。

4

问题总结

1.从CDH5.15开始Hue的默认配置中 THRIFT_TRANSPORT framed ,而HBase Thrift中的默认配置却为 buffered ,所以导致Hue访问HBase服务失败。

2.使用以下三种方法中任意一种可以解决该问题:

a)在hue_safety_valve.ini中增加以下内容:

[hbase]
thrift_transport=buffered

这也是本文使用的方法。

b)修改

/opt/cloudera/parcels/CDH/lib/hue/apps/hbase/src/hbase/conf.py

中的THRIFT_TRANSPORT的默认配置为buffered。

c)通过Cloudera Manager将HBase Thrift的配置项 hbase.regionserver.thrift.server.type 修改为 TNonblockingServer ,这样HBase会使用 framed 的方式进行传输,可以与Hue中的默认配置保持一致。

参考:

https://github.com/cloudera/hue/issues/702

https://clairvoyant.zendesk.com/hc/en-us/articles/360016421713-Hue-to-Hbase-not-working

https://yq.aliyun.com/ask/238832

大家工作学习遇到HBase技术问题,把问题发布到HBase技术社区论坛http://hbase.group,欢迎大家论坛上面提问留言讨论。想了解更多HBase技术关注HBase技术社区公众号(微信号:hbasegroup),非常欢迎大家积极投稿。

HBase实践 | Hue集成HBase出现Api Error异常分析

技术社群

【HBase生态+Spark社区大群】

群福利:群内每周进行群直播技术分享及问答

加入方式1:

https://dwz.cn/Fvqv066s?spm=a2c4e.11153940.blogcont688191.19.1fcd1351nOOPvI

加入方式2:钉钉扫码加入

HBase实践 | Hue集成HBase出现Api Error异常分析


以上所述就是小编给大家介绍的《HBase实践 | Hue集成HBase出现Api Error异常分析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Game Programming Patterns

Game Programming Patterns

Robert Nystrom / Genever Benning / 2014-11-2 / USD 39.95

The biggest challenge facing many game programmers is completing their game. Most game projects fizzle out, overwhelmed by the complexity of their own code. Game Programming Patterns tackles that exac......一起来看看 《Game Programming Patterns》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

SHA 加密
SHA 加密

SHA 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具