1. 程式人生 > >opentsdb 編譯和安裝

opentsdb 編譯和安裝

opentsdb在上一家公司就搞過一段時間,最近又有些時序資料需要分析處理,正好公司也在做這方面的東西,模仿opentsdb,開發了一個hitsdb,臥槽。

好吧,先來記錄一下,這個東西怎麼安裝。

首先,看下這個東西的api跟公司的hbase是否相容,公司都是0.94版本演進過來的,opentsdb的安裝要求如下:

To actually run OpenTSDB, you'll need to meet the following:

  • A Linux system
  • Java Runtime Environment 1.6 or later
  • HBase 0.92 or later
  • GnuPlot 4.2 or later

所以應該能相容。hbase已經部署好了,這個不多提了。

opentsdb提供了編譯好的下載地址,https://github.com/OpenTSDB/opentsdb/releases,但是那些tar包好像在亞馬遜的雲上,國內下載挺費勁,那麼我們可以選擇原始碼編譯安裝。

你可以git clone github上面的版本,也可以下載他們提供的原始碼連結https://github.com/OpenTSDB/opentsdb/archive/v2.2.0.zip,這裡使用2.2.0版本,opentsdb的版本更新並不是很快,基本上跟上家公司用的版本差不多。

編譯的話,按照官網文件走就可以了,opentsdb沒有使用maven 管理依賴,而是使用makefile,好傳統! 找個能連外網的機器,注意jdk版本,這裡用的是1.7的。然後直接執行build.sh就行了,它會下載依賴jar包到thirdparty目錄,然後會自動將這些jar包放進classpath,然後執行編譯等。

網路流暢的話,還是很快的(如果你感覺慢的一比,或者沒法下載,那麼你可以修改Makefile  opentsdb-2.2.1/build/Makefile,往下翻,你會看見第三方依賴的包的下載地址)


vi  開啟,替換成aliyun的maven  %s/central.maven.org\/maven2/maven.aliyun.com\/nexus\/content\/groups\/public/g

還有一個repo1.maven.org 也需要提換,要不也挺雞巴慢

我用的命令是build.sh dist 這樣會在build目錄將部署tar包給你打好,你只需要拷貝走,拿到任意機器上再編譯一下就行了,注意還需要編譯一下,並不能直接執行哦,只不過不需要下載依賴了。

到你要部署的機器上,執行build.sh,當然jdk也要ready,然後還需要配置opentsdb-2.2.0/build/tsdb這個檔案,有兩項:

abs_srcdir='/home/hadoop/opentsdb-2.2.0/'

abs_builddir='build'

這倆不填執行不了的,並且上面那倆一前一後,組合成一個絕對路徑,tsd執行時需要到這倆地方去搜索thirdparty的依賴,所以必填。

test -d "$pkgdatadir" || test -n "$abs_srcdir$abs_builddir" || {
  echo >&2 "$me: Uh-oh, \`$pkgdatadir' doesn't exist, is OpenTSDB properly installed?"
  exit 1
}

另外,opentsdb-2.2.0/src/opentsdb.conf 也要填一下,比較簡單,不說了,預設是掃面

file_locations.add("/etc/opentsdb.conf");
file_locations.add("/etc/opentsdb/opentsdb.conf");
file_locations.add("/opt/opentsdb/opentsdb.conf");
這三個地方,所以為了簡單起見,可以放到這些地方。

還有就是src下有個logback.xml,需要配置一下日誌目錄,預設在/var/log下,這個目錄你不一定有許可權,而且應用日誌打到這個目錄也不合理,很容易打爆。