hbase踩坑

1、没加索引,导致查询耗时慢

背景:因为业务需要在表里加了activityIdUnique字段,同时将原先的查询条件由activityId改为activityIdUnique,

过程:业务代码改完,发到QA上后SQL监控显示一条查询语句耗时将近10s。

了解到之前建表的时候PK是指定了activityId的,也就是说加了索引,于是求救运维帮忙将activityIdUnique加上索引,耗时降回到几十毫秒级别。

结论:合理加索引,(疑惑点就10万级别数据竟然也会这么慢)

2、增加索引,导致写报错

背景:在监控SQL时发现另外一张表耗时也很慢,于是让DBA也一起加上了对应的索引。

过程:加上后运行了一段时间,突然开始报错,错误信息:

{"errorNodeIndex":3,"shortErrorMsg":"\n### Error querying database.  Cause: java.sql.SQLException: ERROR 212 (22012): Arithmetic error on server. Overflow mp_search_center:index_hb_goods_detail,,1642752022848.2a289be7d1e3e319f1ce49c93cf0bbc9.\n### The error may exist in URL [jar:file:/app"}。

此问题尚未查到原因。

3、删除索引,导致写报错

背景:由于2的报错,临时又让DBA将索引删掉。

过程:删掉后发现读写依旧报错,错误信息:

ERROR 1121 (XCL21): Write to the index failed.  disableIndexOnFailure=false, Failed to write to multiple index tables: [mp_search_center:index_phoenix_index_test20220121] ,serverTimestamp=1642753893931,\n\tat 

DBA重启hbase后依旧异常,重启应用后恢复正常。

结论:删除索引后,需重启应用才可生效(怀疑phoenix有缓存)。官方建议删除表索引时业务侧暂停表读写(https://issues.apache.org/jira/browse/PHOENIX-4977 )

posted on 2022-01-26 16:01  Iversonstear  阅读(164)  评论(0编辑  收藏  举报

导航