centos7安裝部署opentsdb2.4.0

centos7安裝部署opentsdb2.4.0
寫在前面
安裝HBase
在HBase中創建表結構
安裝配置並啓動opentsdb
寫在前面
最近因爲項目需要在讀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文件

<!-- hbase實際存放數據地方,這裏是本地文件系統,生產環境一般HDFS地址,例如hdfs://namenode.example.org:8020/hbase -->
<name>hbase.rootdir</name>
<value>file:///home/itwild/hbase</value>


<!--

指定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>



然後執行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的地址,192.168.0.1:2181,192.168.0.2:2181,192.168.0.3:2181

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.storage.enable_appends = true
tsd.query.skip_unresolved_tagvs = true
hbase.rpc.timeout = 120000
啓動opentsdb,systemctl start opentsdb,成功的話,就可以打開opentsdb的界面了http://localhost:4242/
至此,有關opentsdb的安裝部署就完成了。後面我會結合opentsdb部分源碼分享一些探究性問題。祝君好運!

作者: 行無際
原文地址https://www.cnblogs.com/itwild/p/12528757.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章