OpenTSDB 部署与运维技术文档
OpenTSDB 部署与运维技术文档
1. OpenTSDB 安装
1.1 ZooKeeper 安装
-
下载
apache-zookeeper-3.9.2-bin.tar.gz
安装包,解压后进入配置目录,复制模板配置文件并更名:tar -zxvf apache-zookeeper-3.9.2-bin.tar.gz cd apache-zookeeper-3.9.2-bin/conf cp zoo_sample.cfg zoo.cfg
-
编辑
zoo.cfg
配置文件,关键参数如下:# 时间单位(毫秒) tickTime=2000 # 初始化同步阶段允许的最大 tick 数 initLimit=10 # 发送请求到接收应答的最大 tick 数 syncLimit=5 # 快照存储目录(需提前创建) dataDir=/usr/local/zookeeper/apache-zookeeper-3.9.2-bin/zkdata # 客户端连接端口 clientPort=2181 # 避免占用默认 8080 端口 admin.serverPort=8090
-
启动 ZooKeeper 服务:
cd ../bin ./zkServer.sh start
1.2 HBase 安装
方法一:使用 HBase 自带 ZooKeeper(推荐)
-
下载
hbase-2.4.17-bin.tar.gz
并解压,修改conf/hbase-env.sh
配置文件:tar -zxvf hbase-2.4.17-bin.tar.gz cd hbase-2.4.17/conf vi hbase-env.sh
添加以下配置:
# 配置 JDK 安装目录 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b09-4.el9.x86_64/jre # 开启内置 ZooKeeper export HBASE_MANAGES_ZK=true
-
编辑
conf/hbase-site.xml
配置文件:<configuration><property><name>hbase.cluster.distributed</name><value>false</value></property><property><name>hbase.tmp.dir</name><value>./tmp</value></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property><property><name>hbase.rootdir</name><!-- HBase 安装目录 --><value>file:///home/hbase/hbase-2.4.17</value></property><property><name>hbase.zookeeper.property.dataDir</name><!-- 内置 ZooKeeper 数据目录 --><value>/home/hbase/hbase-2.4.17/zookeeper</value></property> </configuration>
-
启动与停止命令:
# 启动 HBase ./bin/start-hbase.sh # 停止 HBase(注:原文档此处为 typo,正确命令为 stop-hbase.sh) ./bin/stop-hbase.sh
-
配置 HBase 环境变量:
vi ~/.bashrc
添加以下内容:
export HBASE_HOME=/usr/local/hbase/hbase-2.4.17 export PATH=$HBASE_HOME/bin:$PATH
使配置生效并验证:
source ~/.bashrc echo $HBASE_HOME
方法二:使用系统已安装的 ZooKeeper
-
下载
hbase-2.4.17-bin.tar.gz
并解压,修改conf/hbase-env.sh
配置文件:tar -zxvf hbase-2.4.17-bin.tar.gz cd hbase-2.4.17/conf vi hbase-env.sh
添加以下配置:
# 配置 JDK 安装目录 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b09-4.el9.x86_64/jre # 关闭 HBase 内置 ZooKeeper export HBASE_MANAGES_ZK=false
-
编辑
conf/hbase-site.xml
配置文件:<configuration><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.tmp.dir</name><value>./tmp</value></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property><property><name>hbase.rootdir</name><value>file:///usr/local/hbase/hbase-2.4.17</value></property><property><name>hbase.zookeeper.property.dataDir</name><value>/usr/local/zookeeper/apache-zookeeper-3.9.2-bin/zkdata</value></property><!-- 单机模式 ZooKeeper 地址 --><property><name>hbase.zookeeper.quorum</name><value>localhost</value></property><!-- ZooKeeper 客户端端口 --><property><name>hbase.zookeeper.property.clientPort</name><value>2181</value></property> </configuration>
-
启动与停止命令:
# 集群模式启动 ./bin/start-hbase.sh # 停止 HBase(注:原文档此处为 typo,正确命令为 stop-hbase.sh) ./bin/stop-hbase.sh# 单独启动 Master 节点 ./bin/hbase-daemon.sh start master # 单独停止 Master 节点 ./bin/hbase-daemon.sh stop master
1.3 HBase 系统服务配置(hbase.service)
-
以 root 权限创建服务文件:
sudo vi /etc/systemd/system/hbase.service
-
编辑服务文件内容:
[Unit] Description=HBase service After=network.target[Service] WorkingDirectory=/usr/local/hbase/hbase-2.4.17 ExecStart=/usr/local/hbase/hbase-2.4.17/bin/hbase-daemon.sh start master ExecStop=/usr/local/hbase/hbase-2.4.17/bin/hbase-daemon.sh stop masterUser=root Group=root Restart=on-failure RestartSec=5s # 后台运行模式 Type=forking StandardOutput=append:/usr/local/hbase/1.log StandardError=append:/usr/local/hbase/1.log[Install] WantedBy=multi-user.target
-
刷新 systemd 配置并管理服务:
# 刷新配置 sudo systemctl daemon-reload # 启动服务 sudo systemctl start hbase # 设置开机自启 sudo systemctl enable hbase # 查看服务状态 sudo systemctl status hbase
1.4 OpenTSDB 安装与配置
-
下载
opentsdb-2.4.1.tar.gz
并解压,进入目录后构建项目(注:原文档版本号存在不一致,统一为 2.4.1):tar -zxvf opentsdb-2.4.1.tar.gz cd opentsdb-2.4.1 # 创建构建目录并复制依赖 mkdir build cp -r third_party ./build # 执行构建 ./build.sh
-
生成配置文件:
./configure
-
编辑
src/opentsdb.conf
配置文件:vim src/opentsdb.conf
修改以下关键参数:
# 1)第4行:服务端口 tsd.network.port = 4242 # 2)第29行:静态资源目录 tsd.http.staticroot = /usr/local/opentsdb/opentsdb-2.4.1/build/staticroot # 3)第33行:HTTP 缓存目录 tsd.http.cachedir = /tmp/tsd # 4)第38行:自动创建指标 tsd.core.auto_create_metrics = true # 5)第70行:ZooKeeper 地址 tsd.storage.hbase.zk_quorum = localhost:2181 # 6)新增:重复数据覆盖策略 tsd.storage.fix_duplicates = true
-
修改表创建脚本并初始化 HBase 表:
# 编辑脚本关闭 LZO 压缩(第19行) vim tools/create_table.sh # 修改内容:COMPRESSION=${COMPRESSION-'NONE'} # 执行建表命令 ./tools/create_table.sh
-
启动 OpenTSDB:
cd /usr/local nohup ./opentsdb/opentsdb-2.4.1/build/tsdb tsd --config=/usr/local/opentsdb/opentsdb-2.4.1/src/opentsdb.conf > ./opentsdb/opentsdb-2.4.1/1.log &
-
验证安装:在浏览器访问
http://192.168.2.102:4242
,显示控制台页面即为成功。 -
OpenTSDB 系统服务配置(opentsdb.service):
创建服务文件:sudo vi /etc/systemd/system/opentsdb.service
编辑内容:
[Unit] Description=OpenTSDB service After=network.target[Service] WorkingDirectory=/usr/local ExecStart=/usr/local/opentsdb/opentsdb-2.4.1/build/tsdb tsd --config=/usr/local/opentsdb/opentsdb-2.4.1/src/opentsdb.confUser=root Group=root Restart=always StandardOutput=append:/usr/local/opentsdb/opentsdb-2.4.1/1.log StandardError=append:/usr/local/opentsdb/opentsdb-2.4.1/1.log[Install] WantedBy=multi-user.target
1.5 OpenTSDB 数据备份与还原
方法一:HBase 快照备份
-
创建表快照(需 HBase 运行中):
hbase shell # 格式:snapshot '<表名>','<快照名称>' snapshot '<表名>','<快照名称>'
-
查看快照列表:
hbase shell list_snapshots
快照存储路径:
/usr/local/hbase/hbase-2.4.17/.hbase-snapshot
-
快照还原:
- 先删除现有表(若存在):
hbase shell disable '<表名>' drop '<表名>' exit
- 从快照恢复:
hbase shell clone_snapshot '<快照名称>', '<表名>'
- 先删除现有表(若存在):
方法二:Export + Import 备份
-
全量导出备份:
hbase org.apache.hadoop.hbase.mapreduce.Export -Dhbase.export.scanner.batch=2000 -D mapred.output.compress=true tsdb file:///opt/soft/hbase/hbase_bak/hbase_bak
参数说明:
-Dhbase.export.scanner.batch=2000
:每次扫描 2000 行-D mapred.output.compress=true
:启用压缩tsdb
:目标表名file:///opt/soft/hbase/hbase_bak/hbase_bak
:备份文件路径
-
清空表数据:
hbase shell truncate 'tsdb' exit
-
导入备份数据:
hbase org.apache.hadoop.hbase.mapreduce.Driver import tsdb file:///opt/soft/hbase/hbase_bak/hbase_bak
-
增量备份:
hbase org.apache.hadoop.hbase.mapreduce.Export -Dhbase.export.scanner.batch=2000 -D mapred.output.compress=true tsdb file:///opt/soft/hbase/hbase_bak/hbase_bak_1715875200-1715933805 1715875200 1715933805
参数说明:
1715875200
:开始时间戳1715933805
:结束时间戳- 时间戳转换工具:https://tool.chinaz.com/Tools/unixtime.aspx
- 增量恢复参考全量导入步骤。
2. iptables 配置
2.1 常用命令
-
查看 iptables 规则:
sudo iptables -L -v -n
-
开放指定端口(示例:3306):
sudo iptables -A OUTPUT -p tcp --dport 3306 -j ACCEPT
-
保存并重启 iptables 服务:
sudo service iptables save sudo service iptables restart ```# OpenTSDB 部署与运维技术文档
1. OpenTSDB 安装
1.1 ZooKeeper 安装
-
下载
apache-zookeeper-3.9.2-bin.tar.gz
安装包,解压后进入配置目录,复制模板配置文件并更名:tar -zxvf apache-zookeeper-3.9.2-bin.tar.gz cd apache-zookeeper-3.9.2-bin/conf cp zoo_sample.cfg zoo.cfg
-
编辑
zoo.cfg
配置文件,关键参数如下:# 时间单位(毫秒) tickTime=2000 # 初始化同步阶段允许的最大 tick 数 initLimit=10 # 发送请求到接收应答的最大 tick 数 syncLimit=5 # 快照存储目录(需提前创建) dataDir=/usr/local/zookeeper/apache-zookeeper-3.9.2-bin/zkdata # 客户端连接端口 clientPort=2181 # 避免占用默认 8080 端口 admin.serverPort=8090
-
启动 ZooKeeper 服务:
cd ../bin ./zkServer.sh start
1.2 HBase 安装
方法一:使用 HBase 自带 ZooKeeper(推荐)
-
下载
hbase-2.4.17-bin.tar.gz
并解压,修改conf/hbase-env.sh
配置文件:tar -zxvf hbase-2.4.17-bin.tar.gz cd hbase-2.4.17/conf vi hbase-env.sh
添加以下配置:
# 配置 JDK 安装目录 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b09-4.el9.x86_64/jre # 开启内置 ZooKeeper export HBASE_MANAGES_ZK=true
-
编辑
conf/hbase-site.xml
配置文件:<configuration><property><name>hbase.cluster.distributed</name><value>false</value></property><property><name>hbase.tmp.dir</name><value>./tmp</value></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property><property><name>hbase.rootdir</name><!-- HBase 安装目录 --><value>file:///home/hbase/hbase-2.4.17</value></property><property><name>hbase.zookeeper.property.dataDir</name><!-- 内置 ZooKeeper 数据目录 --><value>/home/hbase/hbase-2.4.17/zookeeper</value></property> </configuration>
-
启动与停止命令:
# 启动 HBase ./bin/start-hbase.sh # 停止 HBase(注:原文档此处为 typo,正确命令为 stop-hbase.sh) ./bin/stop-hbase.sh
-
配置 HBase 环境变量:
vi ~/.bashrc
添加以下内容:
export HBASE_HOME=/usr/local/hbase/hbase-2.4.17 export PATH=$HBASE_HOME/bin:$PATH
使配置生效并验证:
source ~/.bashrc echo $HBASE_HOME
方法二:使用系统已安装的 ZooKeeper
-
下载
hbase-2.4.17-bin.tar.gz
并解压,修改conf/hbase-env.sh
配置文件:tar -zxvf hbase-2.4.17-bin.tar.gz cd hbase-2.4.17/conf vi hbase-env.sh
添加以下配置:
# 配置 JDK 安装目录 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b09-4.el9.x86_64/jre # 关闭 HBase 内置 ZooKeeper export HBASE_MANAGES_ZK=false
-
编辑
conf/hbase-site.xml
配置文件:<configuration><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.tmp.dir</name><value>./tmp</value></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property><property><name>hbase.rootdir</name><value>file:///usr/local/hbase/hbase-2.4.17</value></property><property><name>hbase.zookeeper.property.dataDir</name><value>/usr/local/zookeeper/apache-zookeeper-3.9.2-bin/zkdata</value></property><!-- 单机模式 ZooKeeper 地址 --><property><name>hbase.zookeeper.quorum</name><value>localhost</value></property><!-- ZooKeeper 客户端端口 --><property><name>hbase.zookeeper.property.clientPort</name><value>2181</value></property> </configuration>
-
启动与停止命令:
# 集群模式启动 ./bin/start-hbase.sh # 停止 HBase(注:原文档此处为 typo,正确命令为 stop-hbase.sh) ./bin/stop-hbase.sh# 单独启动 Master 节点 ./bin/hbase-daemon.sh start master # 单独停止 Master 节点 ./bin/hbase-daemon.sh stop master
1.3 HBase 系统服务配置(hbase.service)
-
以 root 权限创建服务文件:
sudo vi /etc/systemd/system/hbase.service
-
编辑服务文件内容:
[Unit] Description=HBase service After=network.target[Service] WorkingDirectory=/usr/local/hbase/hbase-2.4.17 ExecStart=/usr/local/hbase/hbase-2.4.17/bin/hbase-daemon.sh start master ExecStop=/usr/local/hbase/hbase-2.4.17/bin/hbase-daemon.sh stop masterUser=root Group=root Restart=on-failure RestartSec=5s # 后台运行模式 Type=forking StandardOutput=append:/usr/local/hbase/1.log StandardError=append:/usr/local/hbase/1.log[Install] WantedBy=multi-user.target
-
刷新 systemd 配置并管理服务:
# 刷新配置 sudo systemctl daemon-reload # 启动服务 sudo systemctl start hbase # 设置开机自启 sudo systemctl enable hbase # 查看服务状态 sudo systemctl status hbase
1.4 OpenTSDB 安装与配置
-
下载
opentsdb-2.4.1.tar.gz
并解压,进入目录后构建项目(注:原文档版本号存在不一致,统一为 2.4.1):tar -zxvf opentsdb-2.4.1.tar.gz cd opentsdb-2.4.1 # 创建构建目录并复制依赖 mkdir build cp -r third_party ./build # 执行构建 ./build.sh
-
生成配置文件:
./configure
-
编辑
src/opentsdb.conf
配置文件:vim src/opentsdb.conf
修改以下关键参数:
# 1)第4行:服务端口 tsd.network.port = 4242 # 2)第29行:静态资源目录 tsd.http.staticroot = /usr/local/opentsdb/opentsdb-2.4.1/build/staticroot # 3)第33行:HTTP 缓存目录 tsd.http.cachedir = /tmp/tsd # 4)第38行:自动创建指标 tsd.core.auto_create_metrics = true # 5)第70行:ZooKeeper 地址 tsd.storage.hbase.zk_quorum = localhost:2181 # 6)新增:重复数据覆盖策略 tsd.storage.fix_duplicates = true
-
修改表创建脚本并初始化 HBase 表:
# 编辑脚本关闭 LZO 压缩(第19行) vim tools/create_table.sh # 修改内容:COMPRESSION=${COMPRESSION-'NONE'} # 执行建表命令 ./tools/create_table.sh
-
启动 OpenTSDB:
cd /usr/local nohup ./opentsdb/opentsdb-2.4.1/build/tsdb tsd --config=/usr/local/opentsdb/opentsdb-2.4.1/src/opentsdb.conf > ./opentsdb/opentsdb-2.4.1/1.log &
-
验证安装:在浏览器访问
http://192.168.2.102:4242
,显示控制台页面即为成功。 -
OpenTSDB 系统服务配置(opentsdb.service):
创建服务文件:sudo vi /etc/systemd/system/opentsdb.service
编辑内容:
[Unit] Description=OpenTSDB service After=network.target[Service] WorkingDirectory=/usr/local ExecStart=/usr/local/opentsdb/opentsdb-2.4.1/build/tsdb tsd --config=/usr/local/opentsdb/opentsdb-2.4.1/src/opentsdb.confUser=root Group=root Restart=always StandardOutput=append:/usr/local/opentsdb/opentsdb-2.4.1/1.log StandardError=append:/usr/local/opentsdb/opentsdb-2.4.1/1.log[Install] WantedBy=multi-user.target
1.5 OpenTSDB 数据备份与还原
方法一:HBase 快照备份
-
创建表快照(需 HBase 运行中):
hbase shell # 格式:snapshot '<表名>','<快照名称>' snapshot '<表名>','<快照名称>'
-
查看快照列表:
hbase shell list_snapshots
快照存储路径:
/usr/local/hbase/hbase-2.4.17/.hbase-snapshot
-
快照还原:
- 先删除现有表(若存在):
hbase shell disable '<表名>' drop '<表名>' exit
- 从快照恢复:
hbase shell clone_snapshot '<快照名称>', '<表名>'
- 先删除现有表(若存在):
方法二:Export + Import 备份
-
全量导出备份:
hbase org.apache.hadoop.hbase.mapreduce.Export -Dhbase.export.scanner.batch=2000 -D mapred.output.compress=true tsdb file:///opt/soft/hbase/hbase_bak/hbase_bak
参数说明:
-Dhbase.export.scanner.batch=2000
:每次扫描 2000 行-D mapred.output.compress=true
:启用压缩tsdb
:目标表名file:///opt/soft/hbase/hbase_bak/hbase_bak
:备份文件路径
-
清空表数据:
hbase shell truncate 'tsdb' exit
-
导入备份数据:
hbase org.apache.hadoop.hbase.mapreduce.Driver import tsdb file:///opt/soft/hbase/hbase_bak/hbase_bak
-
增量备份:
hbase org.apache.hadoop.hbase.mapreduce.Export -Dhbase.export.scanner.batch=2000 -D mapred.output.compress=true tsdb file:///opt/soft/hbase/hbase_bak/hbase_bak_1715875200-1715933805 1715875200 1715933805
参数说明:
1715875200
:开始时间戳1715933805
:结束时间戳- 时间戳转换工具:https://tool.chinaz.com/Tools/unixtime.aspx
- 增量恢复参考全量导入步骤。
2. iptables 配置
2.1 常用命令
-
查看 iptables 规则:
sudo iptables -L -v -n
-
开放指定端口(示例:3306):
sudo iptables -A OUTPUT -p tcp --dport 3306 -j ACCEPT
-
保存并重启 iptables 服务:
sudo service iptables save sudo service iptables restart