在银河麒麟系统部署opentsdb需先安装java 11和hbase 2.4,再获取适配架构的opentsdb二进制包或源码编译,配置jvm参数与hbase连接,初始化元数据表,并通过systemd托管服务启动,最终验证4242端口返回正确版本号。

在银河麒麟系统上部署OpenTSDB用于时序数据采集与监控,需先安装依赖的HBase和Java环境,再编译或下载适配国产架构的OpenTSDB二进制包,最后调整JVM参数与HBase连接配置以适配Kylin内核调度特性。
安装Java 11与HBase 2.4
OpenTSDB 2.4+要求JDK 11及以上,且必须运行于HBase 2.3–2.5之间;银河麒麟V10 SP3默认源中无HBase,需手动部署。
执行java -version确认未安装或版本低于11 → 若缺失,运行sudo dnf install java-11-openjdk-devel -y安装JDK 11开发包 → 验证export JAVA_HOME=/usr/lib/jvm/java-11-openjdk已写入/etc/profile并执行source /etc/profile。
下载HBase 2.4.17 ARM64/x86_64适配版(官方未提供,需从清华镜像站获取对应架构tar包)→ 解压至/opt/hbase → 修改/opt/hbase/conf/hbase-env.sh,设置export JAVA_HOME=/usr/lib/jvm/java-11-openjdk → 编辑/opt/hbase/conf/hbase-site.xml,添加<property><name>hbase.cluster.distributed</name><value>true</value></property>及<property><name>hbase.rootdir</name><value>file:///var/lib/hbase</value></property> → 创建目录sudo mkdir -p /var/lib/hbase && sudo chown -R $USER:$USER /var/lib/hbase。
【注意】HBase必须以非root用户启动,否则OpenTSDB初始化表会因权限拒绝失败。
获取并部署OpenTSDB
方法一:使用预编译ARM64/x86_64二进制包(推荐)
前往OpenTSDB GitHub Release页,下载opentsdb-2.4.2-1.noarch.rpm(仅x86_64)或opentsdb-2.4.2.tar.gz(通用)→ 若为RPM包,执行sudo rpm -ivh opentsdb-2.4.2-1.noarch.rpm;若为tar包,解压至/opt/opentsdb → 运行cd /opt/opentsdb && ./build.gradle --no-daemon shadowJar(需Gradle 7.4+,麒麟SP3默认未装)。
方法二:源码编译(适配龙芯LoongArch等特殊架构)
安装Gradle:sudo dnf install gradle -y → 克隆仓库:git clone https://github.com/OpenTSDB/opentsdb.git && cd opentsdb → 检出稳定分支:git checkout v2.4.2 → 执行./gradlew shadowJar -x test → 编译产物位于build/libs/opentsdb-2.4.2-all.jar。
无论哪种方式,最终得到可执行jar包后,复制到/usr/local/bin/opentsdb.jar并赋予执行权限:sudo chmod +x /usr/local/bin/opentsdb.jar。
配置OpenTSDB连接HBase并初始化
第一步:生成基础配置文件
运行mkdir -p /etc/opentsdb && /usr/local/bin/opentsdb.jar --config /etc/opentsdb/opentsdb.conf --auto-metric init生成默认配置 → 编辑/etc/opentsdb/opentsdb.conf,修改以下三项:
tsd.http.request.max_content_length = 1048576(防止大写入请求被截断)
tsd.storage.hbase.zk_quorum = localhost(单机模式用localhost;集群请填ZK地址列表)
tsd.storage.hbase.data_table = tsdb(确保与HBase实际表名一致)
第二步:启动HBase standalone服务
执行/opt/hbase/bin/start-hbase.sh → 等待30秒,检查ps aux | grep hbase确认进程存在 → 访问http://localhost:16010确认HBase Web UI可打开。
第三步:初始化OpenTSDB元数据表
运行/usr/local/bin/opentsdb.jar tsddb mkuid --config /etc/opentsdb/opentsdb.conf → 再执行/usr/local/bin/opentsdb.jar tsddb prepush --config /etc/opentsdb/opentsdb.conf → 成功后终端输出Created table tsdb及Created table tsdb-meta。
【关键前提】HBase必须处于运行状态且ZooKeeper端口2181可达,否则初始化会卡住并超时退出。
启动OpenTSDB服务
创建systemd服务文件:sudo tee /etc/systemd/system/opentsdb.service
[Unit]
Description=OpenTSDB Time Series Database
After=hbase.service
[Service]
Type=simple
User=$USER
WorkingDirectory=/opt/opentsdb
ExecStart=/usr/bin/java -Xms512m -Xmx2g -Dtsd.core.local = true -jar /usr/local/bin/opentsdb.jar --config /etc/opentsdb/opentsdb.conf
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
重载服务配置:sudo systemctl daemon-reload → 启用开机自启:sudo systemctl enable opentsdb → 启动服务:sudo systemctl start opentsdb → 查看日志:sudo journalctl -u opentsdb -f,确认输出Starting OpenTSDB server on 0.0.0.0:4242。
验证服务可用性:curl -i http://localhost:4242/api/version返回JSON含"version":"2.4.2"即成功。










