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

【Ambari监控】Sqlline 启动卡死问题处理

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

https://doc.janettr.com/

在这里插入图片描述

一、问题背景

Ambari v2.1.0 及之前版本中,使用 sqlline.py 连接 Phoenix 往往会出现卡死现象。
该问题出现在 HBase 与 Phoenix 的集成层,和配置文件中 classpath 的错误引用密切相关。

二、问题复现过程

在安装了 Phoenix Client 的机器上,直接执行:

/usr/bigtop/current/phoenix-client/bin/sqlline.py dev1:2181:/ams-hbase-unsecure

终端输出如下:

root@dev1:~# /usr/bigtop/current/phoenix-client/bin/sqlline.py dev1:2181:/ams-hbase-unsecure
Setting property: [incremental, false]
Setting property: [isolation, TRANSACTION_READ_COMMITTED]
issuing: !connect -p driver org.apache.phoenix.jdbc.PhoenixDriver -p user "none" -p password "none" "jdbc:phoenix:dev1:2181:/ams-hbase-unsecure"
Connecting to jdbc:phoenix:dev1:2181:/ams-hbase-unsecure
25/09/09 01:48:45 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

此时命令行会完全卡住,既不会报错,也不会进入交互式界面。

三、排查思路

1. 初步怀疑方向

  • 网络问题:Zookeeper 或 HBase 连接不通?
  • 权限问题:是否有访问 /ams-hbase-unsecure 的权限?
  • 依赖缺失:是否缺少 phoenix-client.jarhbase-site.xml

但以上排查均未发现异常,说明问题更深层。

2. 日志与源码对比

通过查看 hbase-env.sh,发现配置中对 Phoenix 的依赖 jar 默认写的是 phoenix-client.jar

# 默认配置
export HBASE_CLASSPATH=$HBASE_CLASSPATH:/usr/bigtop/current/phoenix-client/phoenix-client.jar

进一步阅读 Phoenix 源码与官方文档发现:

  • phoenix-client.jar 是一个 轻量级客户端 jar,缺少部分嵌入式依赖(尤其是 JDBC 相关类加载)。
  • phoenix-server.jar 才包含了完整的类和资源,能保证 sqlline 启动不阻塞。

这就解释了为什么 sqlline 一直卡死:
驱动加载被卡在类初始化阶段,既不抛错,也不返回。

四、解决方案

修改 hbase-env.sh 配置,将 phoenix-client.jar 替换为 phoenix-server.jar

hbase-env 配置修改

# 注释掉原配置
# export HBASE_CLASSPATH=$HBASE_CLASSPATH:/usr/bigtop/current/phoenix-client/phoenix-client.jar# 替换为 server 版本
export HBASE_CLASSPATH=$HBASE_CLASSPATH:/usr/bigtop/current/phoenix-client/phoenix-server.jar

保存文件后,执行以下步骤:

# 重启 HBase 服务
ambari-server restart   # 或者手动重启 hbase-regionserver、master

五、验证结果

再次执行 sqlline.py

/usr/bigtop/current/phoenix-client/bin/sqlline.py dev1:2181:/ams-hbase-unsecure

这次可以顺利进入交互式命令行:

sqlline 正常连接效果


文章转载自:

http://DmhMhkgB.pLgbj.cn
http://JI85l3YA.pLgbj.cn
http://8IJMD00K.pLgbj.cn
http://LnMJXCmU.pLgbj.cn
http://rjFVIk28.pLgbj.cn
http://88kklyV4.pLgbj.cn
http://s9HUhe8O.pLgbj.cn
http://nqYc1fRt.pLgbj.cn
http://XVq0FfWT.pLgbj.cn
http://gDPVTgpA.pLgbj.cn
http://kG2dAy8D.pLgbj.cn
http://9wOYKYSg.pLgbj.cn
http://0ogUgZNo.pLgbj.cn
http://9Ehg17Az.pLgbj.cn
http://GnOfCWdI.pLgbj.cn
http://Xtvb6n4t.pLgbj.cn
http://wbzvJm1I.pLgbj.cn
http://sANITDAI.pLgbj.cn
http://wH1mB3lS.pLgbj.cn
http://SyRbj8X4.pLgbj.cn
http://nE0kaYLx.pLgbj.cn
http://Mbf5zohb.pLgbj.cn
http://381yOeAa.pLgbj.cn
http://HWezU4ks.pLgbj.cn
http://slrAq30g.pLgbj.cn
http://cmQbeiUO.pLgbj.cn
http://CnGvv7Sh.pLgbj.cn
http://1xEQ5iot.pLgbj.cn
http://izdJBIFK.pLgbj.cn
http://kdIJWbQz.pLgbj.cn
http://www.dtcms.com/a/383905.html

相关文章:

  • Day 03 设置粒子枪 G4ParticleGun -----以B1为实例
  • AI论文写作工具的利弊分析:如何高效利用与规避风险
  • java基础面试题(3)
  • 学习日报|线程池 OOM 案例与优化思路
  • HOT100--Day25--84. 柱状图中最大的矩形,215. 数组中的第K个最大元素,347. 前 K 个高频元素
  • Linux网络:socket编程UDP
  • GeoHash分级索引技术
  • RISC与CISC:ARM指令集解析
  • 第十二篇:Qcom Camx打印实时帧率 FPS
  • 【开题答辩全过程】以 “候鸟式养老机构”管理系统的设计与实践为例,包含答辩的问题和答案
  • 造车阶段解读
  • 技术论文分析分析论文《计算机病毒判定专家系统原理与设计》思考其在游戏中的应用
  • Elasticsearch面试精讲 Day 18:内存管理与JVM调优
  • Android开发-文本输入
  • C++启航:从0到1,解锁面向对象编程的第一把密钥
  • 基于Dash和Plotly的交互式人体肌肉评分可视化系统[附源码】
  • Linux 开发工具(2)
  • Java进阶教程,全面剖析Java多线程编程,什么是多线程,笔记01
  • 论文参考文献交叉引用+中括号变成上标+自动生成目录方法
  • Linux:8_库制作与原理
  • Codeforces Round 1047 Div.3 DEFG补题
  • OWASP Top 10 最新版
  • 【脑电分析系列】第9篇:时频分析利器 — 小波变换与事件相关谱扰动(ERSP)的应用
  • struct的一些函数以及其他用法(析构、友元、构造、成员等)
  • c语言中实现线程同步的操作
  • 【Java后端】Spring Boot 2.7.x 和 Swagger 3.0.x (springfox 3.x) 的兼容性问题
  • Springboot的自动配置原理?
  • 9 月 13 日科技前沿大揭秘:多领域创新闪耀
  • 基于少样本支持的一类学习的增量式生成对抗诊断:
  • TDengine 特殊选择函数 UNIQUE 用户手册