学习笔记:opentsdb安装

OpenTSDB ,是一个时系列数据库,它基于HBase存储数据,充分发挥了HBase的分布式列存储特性,支持数百万每秒的读写,它的特点就是容易扩展,灵活的tag机制。以下在已安装cloudera已经有hadoop hbase的系统安装opentsdb

1.获取安装文件
# cd /tmp
# wget https://github.com/OpenTSDB/opentsdb/releases/download/v2.4.0RC2/opentsdb-2.4.0RC2_all.deb

2. 安装下载的安装包
# dpkg -i opentsdb-2.4.0RC2_all.deb
# apt-get install -f

修改 /etc/opentsdb/opentsdb.conf,配置ZooKeeper
# vi /etc/opentsdb/opentsdb.conf
在最后一行:tsd.storage.hbase.zk_quorum=localhost


3.建立数据库表
首先定位JAVA_HOME目录
# which java
# ls -lrt /usr/bin/java
# ls -lrt /etc/alternatives/java
最后定位到我的JAVA_HOME目录是 /usr/lib/jvm/j2sdk1.8-oracle/jre

转到建表脚本目录
# cd /usr/share/opentsdb/tools
# env COMPRESSION=NONE HBASE_HOME=/opt/cloudera/parcels/CDH/lib/hbase JAVA_HOME=/usr/lib/jvm/j2sdk1.8-oracle/jre  ./create_table.sh
如果 # echo $JAVA_HOME 显示该环境变量已经设置,命令行中就可以不需要JAVA_HOME参数


# hbase shell

list
可以查看到新建的四个表tsdb、tsdb-meta、tsdb-tree、tsdb-uid

4.启动opentsdb
# service opentsdb start
如果不能正常启动,显示JAVA_HOME没有设置
可以设置JAVA_HOME环境变量,或修改/etc/init.d/opentsdb文件
设置JDK目录即可


5. 安装图形生成工具

  1. apt-get install gnuplot  
6.在浏览器测试

 http://192.168.81.149:4242



7.写入数据测试  

Python Request写入10万条数据

import time
import math
import requests

def get_value(num):
    return math.sin(num)+1


def send_json(json, s):
    r = s.post("http://localhost:4242/api/put?details", json=json)
    return r.text


def main():
    s = requests.Session()
    a = int(time.time()) - 100000
    ls = []
    for i in range(1, 100000):
        json = {
            "metric": "sys.batch.test6",
            "timestamp": a,
            "value": get_value(i),
            "tags": {
                "host": "web01",
                "dc": "lga"
            }
        }
        i += 0.01
        a += 1
        ls.append(json)
        if len(ls) == 50:
            send_json(ls, s)
            ls = []
    send_json(ls, s)
    ls = []


if __name__ == "__main__":
    start = time.time()
    main()
    print time.time()-start


展开阅读全文

没有更多推荐了,返回首页