TT Bigdata TT Bigdata
首页
GitHub (opens new window)
JaneTTR

JaneTTR

数据酿造智慧,每一滴都是沉淀!
  • 报错解决

  • 系统适配

  • 监控与调优

  • BUG临时处理
    • 版本-v2.2.2-以前

    • 版本-v2.1.0-以前

      • Sqlline 启动卡死问题处理
        • 一、问题背景
        • 二、问题复现过程
        • 三、排查思路
          • 1. 初步怀疑方向
          • 2. 日志与源码对比
        • 四、解决方案
        • 五、验证结果
  • 实验室

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

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#Ambari
[22201]解决办法
Ambari CAPACITY-SCHEDULER 插件安装详解

← [22201]解决办法 Ambari CAPACITY-SCHEDULER 插件安装详解→

最近更新
01
当前版本 2026/08
08-29
02
把 Ambari Server HA 稳稳地跑起来
08-17
03
从一次启用操作追到主备就绪
08-17
更多文章>
Theme by Vdoing | Copyright © 2017-2026 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式