读者来信 | 刚搭完HBase集群,Phoenix一启动,HBase就全崩了,是什么原因?(已解决)「建议收藏」

读者来信 | 刚搭完HBase集群,Phoenix一启动,HBase就全崩了,是什么原因?(已解决)「建议收藏」前言: 之前有朋友加好友与我探讨一些问题,我觉得这些问题倒挺有价值的;于是就想在本公众号开设一个问答专栏,方便技术交流与分享,专栏名就定为: 《读者来信》 。如遇到本人能力有限难以解决的问题,我将转发

读者来信 | 刚搭完HBase集群,Phoenix一启动,HBase就全崩了,是什么原因?(已解决)

前言:之前有朋友加好友与我探讨一些问题,我觉得这些问题倒挺有价值的;于是就想在本公众号开设一个问答专栏,方便技术交流与分享,专栏名就定为:《读者来信》。如遇到本人能力有限难以解决的问题,我将转发该文至我的资源圈尽力寻求大佬们出手帮助,并附上提问者微信二维码,希望给大家提供这样一个互帮互助解决问题的平台。也诚挚地欢迎大家能在留言区积极探讨解决方案,大胆发表自己的看法~

来信人:于*超

小猿提问

刚搭完HBase集群,Phoenix一启动,HBase的Region节点就全崩溃了,是什么原因?

小猿分析

报错如下:

java.sql.SQLException: ERROR 2006 (INT08): Incompatible jars detected between client and server. Ensure that phoenix.jar is put on the classpath of HBase in every region server: org.apache.hadoop.hbase.exceptions.UnknownProtocolException: No registered coprocessor service found for name MetaDataService in region SYSTEM.CATALOG,,1421861120199.56856673d5cff02b55b9ff5955485dba.
    at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:5579)
    at org.apache.hadoop.hbase.regionserver.HRegionServer.execServiceOnRegion(HRegionServer.java:3416)
    at org.apache.hadoop.hbase.regionserver.HRegionServer.execService(HRegionServer.java:3398)
    ... more
Caused by: org.apache.hadoop.hbase.exceptions.UnknownProtocolException: org.apache.hadoop.hbase.exceptions.UnknownProtocolException: No registered coprocessor service found for name MetaDataService in region SYSTEM.CATALOG,,1421861120199.56856673d5cff02b55b9ff5955485dba.
    at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:5579)
    at org.apache.hadoop.hbase.regionserver.HRegionServer.execServiceOnRegion(HRegionServer.java:3416)
    ... more
Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.exceptions.UnknownProtocolException): org.apache.hadoop.hbase.exceptions.UnknownProtocolException: No registered coprocessor service found for name MetaDataService in region SYSTEM.CATALOG,,1421861120199.56856673d5cff02b55b9ff5955485dba.
    at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:5579)
    at org.apache.hadoop.hbase.regionserver.HRegionServer.execServiceOnRegion(HRegionServer.java:3416)
    ... 14 more

代码100分

我们首先分析一点:Phoenix启动HBase就挂,而Phoenix基于HBase协处理器做了很多工作,很明显HBase单独启动没问题,走到协处理器这一步就报错,一定不是HBase端的问题,也一定是没有设定下面的参数为False。

代码100分# hbase-site.xml
<property>
    <name>hbase.coprocessor.abortonerror</name>
    <value>false</value>
</property>

一般我们应用HBase协处理器技术,首先要将其设为False。这个是什么意思呢?意思就是当加载于HBase之上的协处理器异常时要不要abort Hbase。那肯定是不要,总不能加载了一个协处理器将整个集群搞挂了,毕竟手写协处理器代码难免有bug。

我们设置该参数后,重启HBase再启动Phoenix,这回HBase没事了,但是Phoenix依然报上面的错误,为什么呢?请看下文的小猿解答。

小猿解答

其实看到这个异常的第一眼,总感觉是Phoenix与HBase不兼容,网上的答案也大都是不兼容,又特地看了一下HBase版本,确实没有问题。导致这个问题的因素可能有很多,比如版本不兼容就是一个,这里就不兜圈子了,直接曝光下这回遇到的这个问题的导致因素是什么。

最终找到的原因是:将Phoenix压缩包下几乎所有的jar包都拷贝到了HBase/lib目录下,造成了包冲突。而官网只是要求将Phoenix-version-server.jar拷贝到HBase/lib目录下。

To install a pre-built phoenix, use these directions:

  • Download and expand the latest phoenix-[version]-bin.tar.
  • Add the phoenix-[version]-server.jar to the classpath of all HBase region server and master and remove any previous version. An easy way to do this is to copy it into the HBase lib directory (use phoenix-core-[version].jar for Phoenix 3.x)
  • Restart HBase.
  • Add the phoenix-[version]-client.jar to the classpath of any Phoenix client.

很简单的4步操作,相比老版本真的简单了许多。所以这里还是建议大家还是以官网的教程为主,网络教程为辅,除了能少入坑,也能学到真东西,有助于融会贯通。这也是本文着重想申明的一点,千万不要照葫芦画瓢,毕竟一个相同的问题可能会有多个不同的诱因~

扫描二维码关注博主公众号

转载请注明出处!欢迎关注本人微信公众号【HBase工作笔记】

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9163.html

(0)
上一篇 2023-02-14
下一篇 2023-02-14

相关推荐

  • 菊长说丨一文读懂MySQL4种事务隔离级别「建议收藏」

    菊长说丨一文读懂MySQL4种事务隔离级别「建议收藏」经常提到数据库的事务,那你知道数据库还有事务隔离的说法吗,事务隔离还有隔离级别,那什么是事务隔离,隔离级别又是什么呢?今天我们就找菊长去,请他帮大家梳理一下这些各具特色的事务隔离级别,咱走着~~~ …

    2023-04-01
    148
  • oppo智能制造中心_oppo数据中心中建四局

    oppo智能制造中心_oppo数据中心中建四局**导读:**本文是OPPO商业数据研发负责人&技术专家邱盛昌老师带来的“OPPO商业化数据体系建设实践”的分享。整体内容围绕着下图中垂直划分的六个部分展开,分别为:数据平台、数据接入、数据开

    2023-05-22
    146
  • oracle imp导入dmp_oracle导出数据库dmp

    oracle imp导入dmp_oracle导出数据库dmp– 导出 EXP scott/oracle@orcl BUFFER=64000 FILE=D:dumpSONIC.DMP TABLES=(employees) — 导入, 必须先删除表, 导入必…

    2023-03-17
    159
  • CentOS 7.9 安装 mongodb 5.0.13[通俗易懂]

    CentOS 7.9 安装 mongodb 5.0.13[通俗易懂]一、CentOS 7.9 安装 mongodb5.0.13 1 下载地址:https://www.mongodb.com/try/download/community2 2 安装前的准备 # 操作系统

    2023-06-08
    142
  • Python安装Request教程

    Python安装Request教程Python是一种面向对象、解释型计算机编程语言,在数据处理、数据挖掘、网络爬虫、机器学习等领域有着广泛的应用。Requests是Python中一种方便、简洁、人性化的HTTP库,简化了HTTP请求的过程,让使用者可以更简便地发出请求、传递数据等。本文将介绍如何安装Requests库。

    2024-07-23
    37
  • mysql5.7 中文乱码_oracle数据库中文乱码怎么解决

    mysql5.7 中文乱码_oracle数据库中文乱码怎么解决脚本文件是utf-8,mysql数据库utf-8; 运行mysql文件,在navicat打开,中文注释乱码 解决方法如下: 5.5和5.6版本修复中文乱码后,运行mysql删除脚本,数据库存在遗漏的数

    2023-03-19
    146
  • JSON解析失败的原因分析

    JSON解析失败的原因分析JSON(JavaScript Object Notation)是一种轻量级数据交换格式,具有良好的读写性能、易于理解和开发人员便于编写和解析的特点。JSON由两种结构组成:一个表示值的简单的数据格式和表示对象的键值对格式。JSON数据在网络应用中快速传输数据,由于其简单性,现在已成为编程语言中的常见数据格式。

    2024-09-19
    15
  • python的set函数参数(python中set方法)

    python的set函数参数(python中set方法)您好,对于你的遇到的问题,我很高兴能为你提供帮助,我之前也遇到过哟,以下是我的个人看法,希望能帮助到你,若有错误,还望见谅!。format()函数

    2023-10-30
    143

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注