当前位置: 首页 > news >正文

【Ambari监控】高版本 DataGrip 无法使用 Phoenix 驱动

附录:完整内容和源代码下载请参照

https://doc.janettr.com/

在这里插入图片描述

一、问题复现

在 DataGrip 中配置 Phoenix 数据源,通过 Thick 客户端 方式连接 HBase(Zookeeper 集群地址),往往会出现如下报错:

[08004][103] ERROR 103 (08004): Unable to establish connection. 'void sun.misc.Unsafe.putLong(java.lang.Object, int, long)'.

对应界面如下图所示:

image-20250906013005715

关键原因
这是 Phoenix 驱动与高版本 JDK 不兼容 导致的。
DataGrip 自带运行时 JDK 较新,而 Phoenix 驱动仍在依赖过时的 sun.misc.Unsafe 方法。

二、常见尝试与局限

  1. 更换 DataGrip 的运行时 JDK
    在理论上,切换到 JDK8 可以解决兼容性。但实际情况是:

    • DataGrip 自身有 最低版本限制,无法回退到过低 JDK;
    • 即便切换,重启可能直接导致 DataGrip 启动失败。

    image-20250908094417937

不推荐
已经过实际验证,此路基本行不通。建议避免继续在 JDK 切换上浪费时间。

  1. 替换 Phoenix 驱动 jar
    这是目前最直接、稳定的方式。通过重新编译 Phoenix 源码,生成与高版本 JDK 兼容的驱动 jar 包。

三、解决方案:自编译 Phoenix 驱动

为了避免大家重复踩坑,我们已经将 Phoenix 源码重新编译,并提供了兼容版本 jar 包。

👉 编译方法与下载说明可参考另一篇文章:
Phoenix - JDK17 制作&下载

你可以选择:

  • 方式一:自行按照文章说明编译;
  • 方式二:直接使用我们提供的兼容 jar。

完成后,只需在 DataGrip 中手动替换 Phoenix 驱动 jar 即可。

四、成功验证

替换后,重新配置 Phoenix 数据源,连接即可正常建立。如下图所示:

ca48cecfffc6abf37d419cd478e64e63

图 1:添加数据源驱动

image-20250906013322770

图 2:连接测试成功,状态显示正常

3d9bfc204778890c4e7c68d2bc1b8abf

图 3:表结构与数据浏览界面正常显示,兼容性问题彻底解决

总结

  • 症状sun.misc.Unsafe.putLong 报错
  • 根因:Phoenix 驱动与高版本 JDK 不兼容
  • 解法:替换为重新编译的 Phoenix 驱动 jar

文章转载自:

http://pw3wrLyc.hxbps.cn
http://vlUIJA1D.hxbps.cn
http://WFH1fdvi.hxbps.cn
http://iAGl6pcp.hxbps.cn
http://dqdjX7IR.hxbps.cn
http://PyFUU0rr.hxbps.cn
http://G1kAy4Sk.hxbps.cn
http://ept4Fwin.hxbps.cn
http://57zYNVlV.hxbps.cn
http://D0LsD54U.hxbps.cn
http://5sOur92J.hxbps.cn
http://xy1KSK9A.hxbps.cn
http://4EkVROaD.hxbps.cn
http://YiOKgYFv.hxbps.cn
http://BPqOcMLi.hxbps.cn
http://dy1vUMmg.hxbps.cn
http://NIoRnwyL.hxbps.cn
http://u9tFuDKz.hxbps.cn
http://n2DXpMFq.hxbps.cn
http://kMSheDkJ.hxbps.cn
http://pmFSw0uh.hxbps.cn
http://yGDXzdpj.hxbps.cn
http://EJ8wxDXt.hxbps.cn
http://Z3oaHNaL.hxbps.cn
http://4RAfhn6v.hxbps.cn
http://Y8ap7sq0.hxbps.cn
http://wWhqf93w.hxbps.cn
http://4MecdTUL.hxbps.cn
http://CXRdq5RY.hxbps.cn
http://aGX19zEd.hxbps.cn
http://www.dtcms.com/a/382284.html

相关文章:

  • 1.架构师——大纲
  • 粒子群算法模型深度解析与实战应用
  • JDK 新特性
  • 数据库可视化面板下载
  • 深入解析:preload与prefetch的区别及最佳实践
  • 【层面一】C#语言基础和核心语法-01(类型系统/面向对象/异常处理)
  • Python核心技术开发指南(061)——初始化方法__init__
  • 用 Go 采集服务器资源指标:从原理到实践
  • MySQL-day2_02
  • 基于springboot+vue开发的会议预约管理系统【50906】
  • 【Ubuntu】sudo apt update出现E :仓库***没有Release文件
  • JavaWeb--day3--AjaxElement路由打包部署
  • 阿里云国际代理:怎么保障数据库在凭据变更过程中的安全与稳定?
  • 关于子空间流形的认识
  • SQL注入漏洞手动测试详细过程
  • 【Linux】gcc/g++工具篇
  • libxl写到xls
  • 关键点(c++,Linux)
  • IO进程——进程引入、进程函数接口
  • Java 面向对象设计的六大原则
  • 今日分享:C++ deque与priority_queue
  • Vue3 通过json配置生成查询表单
  • spring 声明式事务
  • [硬件电路-190]:三极管的电流放大特性看男女关系3:过渡的投入,输出进入不安全区、疲惫期,反而双方系统造成伤害
  • json文件转excel
  • ros2获取topic信息解析
  • C++中的贪心算法
  • 【Selenium】Selenium 测试失败排查:一次元素定位超时的完整解决之旅
  • Selenium 使用指南
  • 【Python 入门】(2)Python 语言基础(变量)