读者来信 | 刚搭完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

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

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

900px

相关实践学习
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
6月前
|
存储 Oracle 关系型数据库
HBase集群环境搭建与测试(上)
HBase集群环境搭建与测试
123 0
|
8月前
|
SQL 分布式计算 Hadoop
Hadoop集群hbase的安装
Hadoop集群hbase的安装
143 0
|
7月前
|
大数据 分布式数据库 Docker
基于Docker搭建大数据集群(七)Hbase部署
基于Docker搭建大数据集群(七)Hbase部署
|
NoSQL 大数据 分布式数据库
【HBase】(2)-集群的启动与关闭
【HBase】(2)-集群的启动与关闭
256 0
【HBase】(2)-集群的启动与关闭
|
4月前
|
SQL 分布式数据库 HIVE
Hbase二级索引_Hive on Hbase 及phoenix详解
Hbase二级索引_Hive on Hbase 及phoenix详解
44 0
|
6月前
|
分布式计算 Hadoop Linux
HBase集群环境搭建与测试(下)
HBase集群环境搭建与测试
80 0
|
9月前
|
存储 Java 大数据
分布式数据库HBase的安装部署和环境搭建的集群模式
HBase是一个分布式数据库系统,能够支持高性能、高可靠性、高伸缩性的数据存储和读写操作。在大数据时代,HBase成为了一个越来越受欢迎的数据库选择。本文将介绍HBase的集群模式的安装部署和环境搭建,帮助开发者快速上手。
378 2
|
9月前
|
存储 Java 大数据
分布式数据库HBase的安装部署和环境搭建的Standalone/伪集群模式
HBase是一个分布式数据库系统,能够支持高性能、高可靠性、高伸缩性的数据存储和读写操作。在大数据时代,HBase成为了一个越来越受欢迎的数据库选择。本文将介绍HBase的Standalone/伪集群模式的安装部署和环境搭建,帮助开发者快速上手。
445 1
|
11月前
|
存储 分布式计算 资源调度
使用内置zookeeper搭建Hbase集群
使用内置zookeeper搭建Hbase集群
|
11月前
|
存储 分布式计算 运维
Hbase查看集群状态
Hbase查看集群状态