kylin报错unknownProtocolException: No registered coprocessor service found for name CubeVisitService

今天用kylin查询一些之前的数据时,遇到如下的报错:

org.apache.hadoop.hbase.exceptions.UnknownProtocolException: org.apache.hadoop.hbase.exceptions.UnknownProtocolException: No registered coprocessor service found for name CubeVisitService in region KYLIN_EMTOBY544R,,1625024748505.e1632e420485e209a2a4078a6ccd6cde. at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:8447) at org.apache.hadoop.hbase.regionserver.RSRpcServices.execServiceOnRegion(RSRpcServices.java:2216) at org.apache.hadoop.hbase.regionserver.RSRpcServices.execService(RSRpcServices.java:2198) at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:36617) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2380) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:297) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:277) while executing SQL:

原因:因为查询sql是之前存储过的历史语句,所以断定这个问题肯定是kylin的配置问题。查了一下,出现上面报错的原因是,Kylin为了加速查询,在将cube构建结果存储htable表的时候会配置协处理器。如果cube计算结果存储htable时没有配置协处理器,那么就会报上述错误。

验证:首先在kylin的web页面找到查询失败cube对应的htable表,如下:

其次到htable的web页面查询对应的表信息,可以看到表描述项中没有'coprocessor'协处理相关字段信息(内部信息,不能截图)。这时进入hbase命令,手动执行以下命令(仅供参考,不同环境执行的具体命令肯定不同

alter 'KYLIN_15MHU5XCIY','coprocessor'=>'cosn://stevenxi-1253240642/kylin-coprocessor-2.5.2-0.jar|org.apache.kylin.storage.hbase.cube.v2.coprocessor.endpoint.CubeVisitService|1001|'

然后再次执行sql,发现可以正常查询出结果了。

解决流程:

首先猜测是kylin没有配置协处理器。所以查询kylin中与协处理器相关的配置。找到如下:
https://kylin.apache.org/docs15/howto/howto_update_coprocessor.html

按照官网命令执行结束后,重启kylin还是不行,重新构建cube后也还是不行。于是进入kylin服务器查询协处理器相关的配置。发现有条配置:
            kylin.storage.hbase.coprocessor-local-jar=***
协处理器被写死了,而指定的目录下又没这个文件,所以cube预处理的结果存储hbase时才没有配置协处理器。因为kylin的lib目录下包含协处理器相关依赖,所以这里直接注销相关配置即可。重启kylin,重新构建cube,结果可以查询。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值