centos7安装部署opentsdb2.4.0
写在前面
最近因为项目需要在读opentsdb的一部分源码,后面会做个小结分享出来。本人是不大喜欢写这种安装部署的文章,考虑到opentsdb安装部署对于初次接触者来说不太友好,另外对公司做测试的同事可能有些帮助作用,方便他们快速安装部署,就把OpenTSDB 2.4.0安装部署文档写在这里。
对于opentsdb是什么,应用领域这里就不说了,不了解的请看官网http://opentsdb.net/
。
这里只提一点,opentsdb
的后端数据存储依赖于HBase
。
所以安装步骤就分为了三步 (我们也可以类比安装传统的依赖关系型数据库比如mysql作为后端数据存储的软件)
安装HBase (类比传统软件我们要安装mysql)
创建表结构 (类比我们在mysql中创建database以及table)
安装配置并启动opentsdb (类比一些springboot的应用)
安装HBase
如果已经有HBase环境了,那么请跳过这一步(大多数使用HBase
集群环境应该都是用CDH
管理)
官网地址: http://hbase.apache.org/
其实HBase
的存储又是依赖HDFS
,当然了如果只是本地测试用,可以直接用本地文件系统
代替HDFS
,这样就不需要部署一套HDFS
集群了
搭建Standalone HBase
,官方文档http://hbase.apache.org/book.html#quickstart
,一步一步都有,请仔细读
这里简单梳理一下关键的地方:
conf/hbase-env.sh
文件
# The java implementation to use.
export JAVA_HOME=/usr/jdk64/jdk1.8.0_112
conf/hbase-site.xml
文件
<configuration>
<property>
<!-- hbase实际存放数据地方,这里是本地文件系统,生产环境一般HDFS地址,例如hdfs://namenode.example.org:8020/hbase -->
<name>hbase.rootdir</name>
<value>file:///home/itwild/hbase</value>
</property>
<property>
<!--
指定zookeeper的data目录
目前hbase需要依赖zookeeper,HBase通过Zookeeper来做Master的高可用、RegionServer的监控、元数据的入口以及
集群配置的维护等工作
因为是Standalone,为了降低部署复杂度,启动的时候也会启zookeeper,指定zk data存储目录,实际使用大多用单独的zk集群,一般不使用内置的zk
-->
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/itwild/zookeeper</value>
</property>
</configuration>
然后执行bin/start-hbase.sh
, 启动成功了jps
命令可以看到HMaster
进程。
在standalone模式下,虽然看到的是一个JVM
实例,实际上启了HMaster
、HRegionServer
、ZooKeeper
启动成功,可打开HBase Web UI, http://localhost:16010
在HBase中创建表结构
执行
bin/hbase shell
进入一个交互的界面 (这里我们也可以类比执行mysql -uXXX -pXXX后进入)在交互界面里我们依次执行下面4条建表(table)语句
# opentsdb中那些metric数据就存在这张表中
# 这张表数据会很大,考虑到读写效率,我们注意到这张表就一个列族
create 'tsdb',{NAME => 't', VERSIONS => 1, BLOOMFILTER => 'ROW'}
# opentsdb中建立metric name、tagK、tagV字面量与uid一一对应的表
# opentsdb不会存储实际的字符串字面值
# 比如system.cpu.util的metric,会将system.cpu.util转化为id(默认自增,后面介绍部分源码的时候会有讲到)后,存入HBase
# 这张表有id、name两个列族,可通过id找到name,也可以通过name找到id
create 'tsdb-uid',{NAME => 'id', BLOOMFILTER => 'ROW'},{NAME => 'name', BLOOMFILTER => 'ROW'}
# 下面两张表暂时可不必太关心,先创建出来就好
create 'tsdb-tree',{NAME => 't', VERSIONS => 1, BLOOMFILTER => 'ROW'}
create 'tsdb-meta',{NAME => 'name', BLOOMFILTER => 'ROW'}
注意一下,这里的建表语句我有意把压缩
(COMPRESSION
)选项去掉了,因为存储用的是本地文件系统,有些压缩可能是不支持的,生产环境使用HDFS
的建表语句可能是这样的
create 'tsdb',{NAME => 't', VERSIONS => 1, BLOOMFILTER => 'ROW', COMPRESSION => 'SNAPPY'}
create 'tsdb-uid',{NAME => 'id', BLOOMFILTER => 'ROW', COMPRESSION => 'SNAPPY'},{NAME => 'name', BLOOMFILTER => 'ROW', COMPRESSION => 'SNAPPY'}
create 'tsdb-tree',{NAME => 't', VERSIONS => 1, BLOOMFILTER => 'ROW', COMPRESSION => 'SNAPPY'}
create 'tsdb-meta',{NAME => 'name', BLOOMFILTER => 'ROW', COMPRESSION => 'SNAPPY'}
- 在hbase shell的交互界面中执行
list
,即可看到上面创建的4张表
hbase(main):004:0> list
TABLE
tsdb
tsdb-meta
tsdb-tree
tsdb-uid
安装配置并启动opentsdb
下载地址:https://github.com/OpenTSDB/opentsdb/releases
这里centos7
系统,选择下载opentsdb-2.4.0.noarch.rpm
包
- 执行
yum -y localinstall opentsdb-2.4.0.noarch.rpm
如果这里安装报错,可能需要vi /usr/bin/yum
临时改一下python解析器的版本#!/usr/bin/python2.7
,
改过之后安装过程中又有报错,可能需要vi /usr/libexec/urlgrabber-ext-down
同样临时改一下python解析器的版本#!/usr/bin/python2.7
- 把opentsdb的服务注册为系统服务,即可以用
systemctl status/start/stop/restart opentsdb
来查看控制
vi /usr/lib/systemd/system/opentsdb.service
添加以下内容
[Unit]
Description=OpenTSDB Service
[Service]
Type=forking
PrivateTmp=yes
ExecStart=/usr/share/opentsdb/etc/init.d/opentsdb start
ExecStop=/usr/share/opentsdb/etc/init.d/opentsdb stop
Restart=on-abort
然后你就发现可以用systemctl status opentsdb
了,不过现在服务还是dead
状态
注意一下,默认opentsdb配置文件目录:/etc/opentsdb/opentsdb.conf,默认opentsdb日志目录:/var/log/opentsdb
- 修改
/etc/opentsdb/opentsdb.conf
配置文件
tsd.network.port = 4242
tsd.http.staticroot = /usr/share/opentsdb/static/
tsd.http.cachedir = /tmp/opentsdb
tsd.core.auto_create_metrics = true
tsd.core.plugin_path = /usr/share/opentsdb/plugins
# zookeeper的地址,即hbase依赖的zookeeper的地址,localhost:2181,localhost:2182,localhost:2183
tsd.storage.hbase.zk_quorum = localhost:2181
tsd.storage.fix_duplicates = true
tsd.http.request.enable_chunked = true
tsd.http.request.max_chunk = 4096000
tsd.storage.max_tags = 16
# 这里看到了我们上面在hbase中创建的4张表
tsd.storage.hbase.data_table = tsdb
tsd.storage.hbase.uid_table = tsdb-uid
tsd.storage.hbase.tree_table = tsdb-tree
tsd.storage.hbase.meta_table = tsdb-meta
# 下面几个配置项到部分源码解析的时候会有介绍,暂时可以先忽略
# tsd.query.skip_unresolved_tagvs = true
# hbase.rpc.timeout = 120000
- 启动opentsdb,
systemctl start opentsdb
,成功的话,就可以打开opentsdb的界面了http://localhost:4242/
至此,有关opentsdb的安装部署就完成了。后面我会结合opentsdb部分源码分享一些探究性问题。祝君好运!
centos7安装部署opentsdb2.4.0的更多相关文章
- CentOS7安装部署zabbix3.4操作记录
CentOS7安装部署zabbix3.4操作记录 1.安装前准备 1.1 查看centos的系统版本 [root@zabbix ~]# cat /etc/redhat-release CentOS L ...
- centos7 安装部署运行 Redis5
原文:centos7 安装部署运行 Redis5 Redis5 下载与解压(官网: https://redis.io/download ) 下载命令:wget http://download.redi ...
- 容器centos7安装部署ansible
容器centos7安装部署ansible centos镜像版本及ansible版本 centos:centos7.5.1804 ansible:2.9.11 启动容器并进入容器 docker run ...
- Centos7安装部署搭建gitlab平台、汉化
Centos7安装部署搭建gitlab平台.汉化 安装环境要求:内存不要小于4G,否则后期web界面可能会报错 一.准备工作 1.1 查看系统版本 首先查询系统版本,下载Gitlab的对应版本 [ro ...
- centos7安装部署SVN
SVN介绍 SVN是个自由.开源的版本控制系统,绝大多数开源软件都使用SVN作为代码版本管理软件. SVN的官方网站http://subversion.apache.org/.目前SVN在开源社区 ...
- Centos7 安装部署Kubernetes(k8s)集群
目录 一.系统环境 二.前言 三.Kubernetes 3.1 概述 3.2 Kubernetes 组件 3.2.1 控制平面组件 3.2.2 Node组件 四.安装部署Kubernetes集群 4. ...
- centos7 安装部署 Jenkins
Jenkins 安装部署 1. 安装资源下载 Jenkin镜像地址: http://mirrors.jenkins-ci.org/status.html 选择清华大学镜像地址下载rpm https:/ ...
- jumpserverv0.5.0 基于 CentOS7安装部署
基于 CentOS 7 一步一步安装 Jumpserver 0.5.0 环境 系统: CentOS 7 IP: 192.168.244.144 关闭 selinux和防火墙 # CentOS 7 $ ...
- Centos7.2部署.Net Core2.0 WebApi
部署前准备 1.VisualStudio2017+.netcore2.0SDK 2.Centos7.2 3.SecureCRT,Xftp(根据自己喜好) 创建WebApi项目 修改Program.cs ...
随机推荐
- hql错误:No data type for node: org.hibernate.hql.ast.tree.IdentNode
今天写了一个查询,用的是hql,数据库是mysql.多表联查,结果报错了报: \-[IDENT] IdentNode: 'routerNumber' {originalText=routerNumbe ...
- unittest(20)- 自动更新表格中的数据(3)
通过函数获取表格中的手机号 # 1. get_data.py from tools import project_path import pandas as pd class GetData: Coo ...
- idea如何打包项目(java)
1.右击项目打开open module settings 2.依次打开 3.选择你的程序主入口 JAR files from libraies ①和设置库中的jar文件选择第一个打包时会把依赖库(li ...
- 4-CSS规范
4.1 命名规范:4.1.1 css文件命名 reset.css 重置样式,重置元素默认样式,使得页面在所有浏览器中有统一的外观 global.css 全局样式,全站公用,定义页面基础样式(常见的公共 ...
- 来自澳洲的数据秀场:记KDD 2015大会
作者:微软亚洲研究院实习生 王英子 南半球最大城市和数据挖掘界顶级会议的浪漫碰撞 悉尼,作为澳大利亚第一大城市及新南威尔士州首府,澳大利亚的经济.金融.航运和旅游中心,同时还是南半球最大的城市和重要的 ...
- 产品需求说明书 PRD模版
XXX产品需求说明书 [版本号:V+数字] 编 制: 日 期: 评 审: 日 期: 批 准: 日 期: 修订记录 版本 修订章节 修订内容 ...
- Hexo和github搭建个人博客 - 朱晨
GitHub账号 mac/pc 环境 12 node.jsgit 创建GitHub仓库 登陆GitHub,创建一个新的Respository Repository name叫做{username}.g ...
- Python Mock 的入门
Mock是什么 Mock这个词在英语中有模拟的这个意思,因此我们可以猜测出这个库的主要功能是模拟一些东西.准确的说,Mock是Python中一个用于支持单元测试的库,它的主要功能是使用mock对象替代 ...
- LeetCode 225题用队列实现栈(Implement Stack using Queues) Java语言求解
链接 https://leetcode-cn.com/problems/implement-stack-using-queues/ 思路 首先演示push()操作:将元素依次进入队1,进入时用top元 ...
- AI:是猫还是狗,这是个问题
如果你不喜欢小猫和小狗,你可能不知道他们具体是哪一种品种,但是一般来说,你都能区分出这是猫还是狗,猫和狗的特征还是不一样的,那我们如何用机器学习的方法训练一个网络区分猫狗呢? 我们选用的是 Kaggl ...