TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装教程
    • 魔改分享
  • 版本专题

    • 更新说明
    • BUG临时处理
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 支持&共建

    • 蓝图愿景
    • 合作共建
登陆
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装教程
    • 魔改分享
  • 版本专题

    • 更新说明
    • BUG临时处理
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 支持&共建

    • 蓝图愿景
    • 合作共建
登陆
GitHub (opens new window)
  • 版本-v2.1.0-以前

    • Sqlline 启动卡死问题处理
      • 一、问题背景
      • 二、问题复现过程
      • 三、排查思路
        • 1. 初步怀疑方向
        • 2. 日志与源码对比
      • 四、解决方案
      • 五、验证结果
  • BUG临时处理
  • 版本-v2.1.0-以前
JaneTTR
2025-09-09
目录

Sqlline 启动卡死问题处理

# 一、问题背景

写在前面

在 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
1

终端输出如下:

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
2
3
4
5
6

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

# 三、排查思路

# 1. 初步怀疑方向

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

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

# 2. 日志与源码对比

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

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

进一步阅读 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
1
2
3
4
5

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

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

# 五、验证结果

再次执行 sqlline.py:

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

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

sqlline 正常连接效果

#编译适配#源码分析#Phoenix#Sqlline#Ambari
最近更新
01
[/metrics/metadata] — 元数据查询和使用 GET
09-12
02
[/metrics/metadata] — 请求完整链路解读
09-12
03
[/metrics/metadata] — 缓存数据装载 Phoenix
09-12
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式