TL;DR
- 场景: 3 节点(h121/122/123)资源吃紧环境,部署 Apache Kylin 3.1.1(HBase1.x 版)
- 结论: 通过环境变量与软链补齐、修正 HADOOP_CONF_DIR、按序启动组件,成功启动并登录 Kylin(7070)
- 产出: 完整命令序列、版本矩阵(已验证)、错误速查卡(常见症状→定位→修复)
版本矩阵
| 组件/包名 | 版本 | 已验证 | 说明 |
|---|---|---|---|
| Apache Kylin | 3.1.1 (apache-kylin-3.1.1-bin-hbase1x) | 是 | 来自 archive.apache.org,运行于 h122,Web 端口 7070,默认 ADMIN/KYLIN(大写) |
| Hadoop | 2.9.2 | 是 | HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop;先启 HDFS,再启 YARN;HADOOP_CLASSPATH=hadoop classpath |
| Hive | 2.3.9 | 是 | 独立启动 Metastore(9083),日志 /tmp/metastore.log |
| HBase | 1.3.1 | 是 | hbase.zookeeper.quorum 仅填主机名;三节点协同启动 |
| Spark | 2.4.5 (without-hadoop, Scala 2.12) | 是 | 作为依赖配置软链;未跑计算作业 |
| ZooKeeper | 版本未记录(三节点) | 是 | 各节点 zkServer.sh start |
集群规划
注意:要求 HBase 的 hbase.zookeeper.quorum 值必须只能是 host1、host2 这种,不允许 host1:2181、host2:2181 这种。
配置 hbase-site.xml:
cd /opt/servers/hbase-1.3.1/conf
vim hbase-site.xml
项目下载
下载地址:
https://archive.apache.org/dist/kylin/
使用版本:
https://archive.apache.org/dist/kylin/apache-kylin-3.1.1/apache-kylin-3.1.1-bin-hbase1x.tar.gz
下载命令:
cd /opt/software
wget https://archive.apache.org/dist/kylin/apache-kylin-3.1.1/apache-kylin-3.1.1-bin-hbase1x.tar.gz
解压移动
cd /opt/software
tar -zxvf apache-kylin-3.1.1-bin-hbase1x.tar.gz
移动到 servers 目录:
mv apache-kylin-3.1.1-bin-hbase1x /opt/servers/
环境变量
vim /etc/profile
加入 Kylin 的环境变量:
export KYLIN_HOME=/opt/servers/apache-kylin-3.1.1-bin-hbase1x
export PATH=$PATH:$KYLIN_HOME/bin
刷新环境变量:
source /etc/profile
依赖组件
cd $KYLIN_HOME/conf
# 创建软链
ln -s $HADOOP_HOME/etc/hadoop/hdfs-site.xml hdfs-site.xml
ln -s $HADOOP_HOME/etc/hadoop/core-site.xml core-site.xml
ln -s $HBASE_HOME/conf/hbase-site.xml hbase-site.xml
ln -s $HIVE_HOME/conf/hive-site.xml hive-site.xml
ln -s $SPARK_HOME/conf/spark-defaults.conf spark-defaults.conf
配置环境
修改 kylin.sh:
cd $KYLIN_HOME/bin
vim kylin.sh
需要写入这些依赖,防止后续报错:
export HADOOP_HOME=/opt/servers/hadoop-2.9.2
export HIVE_HOME=/opt/servers/apache-hive-2.3.9-bin
export HBASE_HOME=/opt/servers/hbase-1.3.1
export SPARK_HOME=/opt/servers/spark-2.4.5-bin-without-hadoop-scala-2.12
修正 HADOOP_CONF_DIR(常见问题):
# 修正 Flink YARN 配置
# export HADOOP_CONF_DIR=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath`
检查依赖
$KYLIN_HOME/bin/check-env.sh
如果报错,检查 HADOOP_CONF_DIR 是否正确配置,然后重新自检。
启动集群
ZooKeeper
启动 h121 h122 h123 集群模式,每个节点都运行:
zkServer.sh start
HDFS
启动 h121(检查确认):
start-dfs.sh
YARN
启动 h121(检查确认):
start-yarn.sh
HBase
启动 h121(检查确认):
start-hbase.sh
Metastore
启动 h121 即可:
nohup hive --service metastore > /tmp/metastore.log 2>&1 &
history server
启动 h121 即可:
mr-jobhistory-daemon.sh start historyserver
Kylin
启动 h122:
kylin.sh start
节点详情
h121
- Metastore
- Zookeeper
- HBase
- HDFS
- YARN
- Hadoop
h122
- YARN
- ZooKeeper
- HBase
- Kylin
- HDFS
h123
- YARN
- HBase
- ZooKeeper
- Hadoop
- HDFS
启动结果
访问地址:
http://h122.wzk.icu:7070/kylin/login
登录信息(默认大写):
- 账号:ADMIN
- 密码:KYLIN
错误速查
| 症状 | 根因定位 | 修复 |
|---|---|---|
| check-env.sh 自检失败,提示找不到 Hadoop 配置 | HADOOP_CONF_DIR 指向 $HADOOP_HOME 而非 …/etc/hadoop | 运行自检脚本输出 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop && export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop && export HADOOP_CLASSPATH=\hadoop classpath`后source /etc/profile` 重新自检 |
| Kylin 启动后连接 HBase 报 ZK 相关异常 | hbase.zookeeper.quorum 误写成 host1:2181,host2:2181 | 将 quorum 改为仅主机名(如 host1,host2),重启 HBase 与 Kylin |
| 访问 :7070 无响应/拒连 | Kylin 未成功拉起;或防火墙/端口未放行 | ps -ef 检查进程 |
| 各类 “No FileSystem for scheme: hdfs”/找不到配置 | $KYLIN_HOME/conf 缺少软链到 Hadoop/HBase/Hive/Spark 配置目录 | 检查 $KYLIN_HOME/conf 依照文中命令补齐软链并重启 |
| Hive Metastore 连接拒绝/NoSuchObjectException | 未启动 Metastore 或 9083 被占用 | 检查 /tmp/metastore.log、netstat -lntp |
| 登录失败/账号密码不对 | 账号密码大小写错误或自定义覆盖 | 使用默认大写 ADMIN/KYLIN;如改过,在 conf 内确认账号策略并重置 |
| 启动时报 JDK 版本不兼容(常见于旧栈) | 使用了非 JDK8 | 切换至 JDK8 并确保 JAVA_HOME 与 PATH 指向一致 |
总结
本文详细记录了 Apache Kylin 3.1.1 在 Hadoop 2.9/Hive 2.3/HBase 1.3 环境下的最小可用部署过程,包括:
- 环境准备与版本选择
- 软链配置
- 环境变量设置
- 集群组件按序启动
- 常见错误排查与修复
通过本文的步骤,可以成功在资源受限的三节点环境中部署并运行 Kylin,实现亚秒级的 OLAP 查询。