centos7安装openTSDB过程研究

一、 准备一台有liunx的虚拟机

二、 安装jdk

参考:https://blog.csdn.net/hua_faded/article/details/80535870

没安装jdk前在shell中java –version 是有版本显示的,是因为默认带着opensdk,但是网上查这个还是有区别的,所以还是要下载liunx下的jdk。

  1. 下载jdk安装包 解压到相关路径下
  2. 修改环境变量 vim /etc/profile
 	 export JAVA_HOME=/usr/local/jdk7/jdk1.7.0_79
	 export JRE_HOME=${JAVA_HOME}/jre
	 export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
	 export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
	 export PATH=$PATH:${JAVA_PATH}
  1. 通过命令source /etc/profile让profile文件立即生效

  2. ①、使用javac命令,不会出现command not found错误

    ②、使用java -version,出现版本为java version “1.8.0_131”

    ③、echo $PATH,看看自己刚刚设置的的环境变量配置是否都正确

三、安装zookeeper

参考:https://www.cnblogs.com/expiator/p/9853378.html

  1. 下载并解压zookeeper压缩包
    先进入/usr/local/目录,也可以是其他的目录:

    [root@localhost /]# cd /usr/local
    
  2. zookeeper安装包可以在官网下载
    在此目录下载zookeeper安装包:
    # wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

  3. 解压[root@localhost local]# tar -zxvf zookeeper-3.4.14.tar.gz

  4. 配置
    进入conf目录:[root@localhost local]# cd zookeeper-3.4.14/conf
    将zoo_sample.cfg这个文件复制为zoo.cfg (必须是这个文件名)
    [root@localhost conf]# cp zoo_sample.cfg zoo.cfg
    进入zoo.cfg文件进行编辑
    [root@localhost conf]# vim zoo.cfg
    按 i 进入编辑模式,修改以下内容:
    dataDir=/tmp/zookeeper/data dataLogDir=/tmp/zookeeper/log
    在tmp目录创建目录。

[root@localhost conf]# mkdir /tmp/zookeeper
[root@localhost conf]# mkdir /tmp/zookeeper/data
[root@localhost conf]# mkdir /tmp/zookeeper/log

上面的操作都完事之后,我们需要配置一下环境变量,配置环境变量的命令如下:

[root@localhost zookeeper-3.4.14]# export ZOOKEEPER_INSTALL=/usr/local/zookeeper-3.4.13/

[root@localhost zookeeper-3.4.14]# export PATH=$PATH:$ZOOKEEPER_INSTALL/bin
  1. 启动zookeeper
    进入bin目录,并启动zookeep。如果不是在bin目录下执行,启动zookeeper时会报错: bash: ./zkServer.sh: No such file or directory

注意: ./zkServer.sh start前面的 . 不可忽略。

[root@localhost local]# cd /usr/local/zookeeper-3.4.14/bin
[root@localhost bin]# ./zkServer.sh start

启动成功效果如下:

ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

zookeeper的服务端启动后,还需要启动zookeeper的客户端:
[root@localhost bin]# ./zkCli.sh

启动成功效果如下:

Connecting to localhost:2181..............................Welcome to ZooKeeper!
2018-10-25 21:04:54,407 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1029] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2018-10-25 21:04:54,471 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@879] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
[zk: localhost:2181(CONNECTING) 0] 2018-10-25 21:04:54,501 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1303] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x10000712e6f0000, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null

查看状态:

[root@localhost bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: standalone

四、 安装Hbase

参考:https://www.cnblogs.com/marszhw/p/12594343.html

  1. 下载HBase,可以去官网下载
命令:wget -b https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/1.3.1/hbase-1.3.1-bin.tar.gz
  1. 解压缩下载的文件,然后转到新创建的目录
	   命令:tar xzvf hbase-1.3.1-bin.tar.gz

    命令:mv hbase-1.3.1 /root/

    命令:cd /root/hbase-1.3.1/
  1. 由于HBase依赖JAVA_HOME环境变量,所以要导入Java环境变量,编辑conf/hbase-env.sh文件,并取消注释以#export JAVA_HOME =开头的行,然后将其设置为Java安装路径。
命令:vim conf/hbase-env.sh
修改
export JAVA_HOME=/usr/local/jdk7/jdk1.7.0_79/
  1. (可忽略)编辑conf/hbase-site.xml,这是主要的HBase配置文件。这时,您需要在本地文件系统上指定HBase和ZooKeeper写入数据的目录并确认一些风险。默认情况下,在/tmp下创建一个新目录。许多服务器配置为在重新引导时删除/ tmp的内容,因此您应该将数据存储在其他位置。
      vi hbase-site.xml
<!-- hbase存放数据目录 -->
  <property>
    <name>hbase.rootdir</name>
    <value>file:///var/www/HBase/hbase-1.3.1/hbase</value>
  </property>
  
  <!-- ZooKeeper数据文件路径 -->
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/var/www/HBase/hbase-1.3.1/zookeeper</value>
  </property>
  
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
    <description>
      Controls whether HBase will check for stream capabilities (hflush/hsync).
  
      Disable this if you intend to run on LocalFileSystem, denoted by a rootdir
      with the 'file://' scheme, but be mindful of the NOTE below.
  
      WARNING: Setting this to false blinds you to potential data loss and
      inconsistent system state in the event of process and/or node failures. If
      HBase is complaining of an inability to use hsync or hflush it's most
      likely not a false positive.
    </description>
  </property>
  1. 启动HBase
		 启动命令:./bin/start-hbase.sh
		 关闭命令:./bin/stop-hbase.sh
 为了方便也可以将hbase也加入了环境变量中,方便使用,在/etc/profile文件中,增加一下内容
	 export HBASE_HOME=/root/hbase-1.3.1
     export PATH=$HBASE_HOME/bin:$PATH

使环境变量生效,命令:source /etc/profile
6. 使用浏览器访问HBase的Web UI,地址:127.0.0.1:16010/master-status,(默认端口:16010)在这里插入图片描述
7. HBase的使用

  1. 在bin目录下,连接到HBase,输入hbase shell

  2. 显示HBase Shell帮助文本。键入help并按Enter键,以显示HBase Shell的一些基本用法信息以及一些示例命令。注意,表名,行,列都必须用引号引起来。

  3. 创建一个表,使用create命令创建一个新表。您必须指定表名称和ColumnFamily名称。 命令:create ‘test’, ‘cf’

  4. 列出有关表的信息,使用list命令确认您的表存在 命令:list ‘test’

  5. 使用describe命令查看详细信息,包括配置默认值 命令:describe ‘test’

  6. 将数据放入表中。要将数据放入表中,请使用put命令。命令:put ‘test’, ‘row1’, ‘cf:a’, ‘value1’

  7. 一次扫描表中的所有数据,从HBase获取数据的一种方法是扫描。使用scan命令扫描表中的数据。您可以限制扫描范围,但是现在,所有数据都已获取。scan ‘test’

  8. 获取单行数据。要一次获取一行数据 命令:get ‘test’, ‘row1’

  9. 禁用表格。如果要删除表或更改其设置,以及在某些其他情况下,则需要先使用disable命令禁用该表。您可以使用enable命令重新启用它。禁用命令:disable ‘test’ 启用命令:enable ‘test’

  10. 要删除(删除)表,使用drop命令 命令:drop ‘test’

  11. 退出HBase Shell。要退出HBase Shell并从群集断开连接,请使用以下quit命令。HBase仍在后台运行。命令:quit 或者exit()

补充:Hbase启动时,报警:
在这里插入图片描述
是因为jdk1.8版本的关系
打开conf/hbase-env.sh
找到这里
在这里插入图片描述
蓝色的注释是说,下面这两行配置,适用于jdk7,在jdk8+版本应当移除
将这两行配置注释掉即可

安装hbase之前要先安装zookeeper,并且启动起来,否则hbase启动会因为连接不上zookeeper而导致启动失败,hbase连不上zookeeper时,刚启动能查询到进程,过一段时间连接超时会自动关闭

阿里centos没有图形界面,可以用内网windows机器访问16010看hbase是否启动成功

五、安装openTSDB

参考:https://blog.csdn.net/SCS199411/article/details/90114264
https://www.cnblogs.com/marszhw/p/12594343.html
https://blog.csdn.net/qq234568970/article/details/50400943

下载openTSDB,地址如右:https://github.com/OpenTSDB/opentsdb/releases 下载tar.gz包。
解压缩:tar -zxvf opentsdb-2.4.0.tar.gz -C /usr/local
开始编译opentsdb。因为这里下载的不是rpm包,需要编译生成可执行的文件。但是经验证,如果按照官网的命令去执行将会得到如下错误:

./build.sh执行报错
报错如下:
sd/BadRequestException.java ../src/tsd/ConnectionManager.java ../src/tsd/DropCachesRpc.java ../src/tsd/GnuplotException.java ../src/tsd/GraphHandler.java ../src/tsd/HttpJsonSerializer.java ../src/tsd/HttpSerializer.java ../src/tsd/HttpQuery.java ../src/tsd/HttpRpc.java ../src/tsd/HttpRpcPlugin.java ../src/tsd/HttpRpcPluginQuery.java ../src/tsd/LineBasedFrameDecoder.java ../src/tsd/LogsRpc.java ../src/tsd/PipelineFactory.java ../src/tsd/PutDataPointRpc.java ../src/tsd/QueryExecutor.java ../src/tsd/QueryRpc.java ../src/tsd/RpcHandler.java ../src/tsd/RpcPlugin.java ../src/tsd/RpcManager.java ../src/tsd/RpcUtil.java ../src/tsd/RTPublisher.java ../src/tsd/SearchRpc.java ../src/tsd/StaticFileRpc.java ../src/tsd/StatsRpc.java ../src/tsd/StorageExceptionHandler.java ../src/tsd/SuggestRpc.java ../src/tsd/TelnetRpc.java ../src/tsd/TreeRpc.java ../src/tsd/UniqueIdRpc.java ../src/tsd/WordSplitter.java ../src/uid/FailedToAssignUniqueIdException.java ../src/uid/NoSuchUniqueId.java ../src/uid/NoSuchUniqueName.java ../src/uid/RandomUniqueId.java ../src/uid/UniqueId.java ../src/uid/UniqueIdFilterPlugin.java ../src/uid/UniqueIdInterface.java ../src/utils/ByteArrayPair.java ../src/utils/ByteSet.java ../src/utils/Config.java ../src/utils/DateTime.java ../src/utils/Exceptions.java ../src/utils/FileSystem.java ../src/utils/JSON.java ../src/utils/JSONException.java ../src/utils/Pair.java ../src/utils/PluginLoader.java ../src/utils/Threads.java ../src/tools/BuildData.java ./src/net/opentsdb/query/expression/parser/*.java
javac: file not found: ./src/net/opentsdb/query/expression/parser/*.java
Usage: javac <options> <source files>
use -help for a list of possible options
make[1]: *** [.javac-stamp] Error 2
make[1]: Leaving directory `/usr/local/opentsdb-2.4.0/build'
make: *** [all] Error 2

这个报错【好像】是因为找不到某个jar包。但是我找到了另外一种解决方法,使用如下命令:

替换/opentsdb-2.4.0/build下的Makefile文件(将jar包下载地址替换成国内下载地址)

mkdir build
cp -r third_party ./build
./build.sh

首次执行build.sh下载jar包过程会很慢 可能需要四个小时以上

然后编译成功。【编译成功的标志是在openTSDB父目录下生成build文件夹,并且会生成一个jar包:tsdb-2.4.0.jar】
接着执行脚本,创建openTSDB所需要的表,这些命令均已写好,只需要执行相应脚本即可。

env COMPRESSION=NONE HBASE_HOME=/usr/local/hbase-1.3.1 ./src/create_table.sh

可能会出现错误

create 'tsdb',
  {
    
    NAME => 't', VERSIONS => 1, COMPRESSION => 'NONE', BLOOMFILTER => 'ROW', DATA_BLOCK_ENCODING => 'DIFF', TTL => 'FOREVER'}

ERROR: For input string: "FOREVER"

开始没注意到这个错误,导致后面启动的时候总是出错

Exception in thread "main" java.lang.RuntimeException: Initialization failed
	at net.opentsdb.tools.TSDMain.main(TSDMain.java:237)
Caused by: com.stumbleupon.async.DeferredGroupException: At least one of the Deferreds failed, first exception:
......
Caused by: org.hbase.async.TableNotFoundException: "tsdb"
	at org.hbase.async.HBaseClient$12.call(HBaseClient.java:3032)
	at org.hbase.async.HBaseClient$12.call(HBaseClient.java:3029)
	... 34 more

解决办法

建表语句不被hbase认可(我安装的是hbase-1.3.1版本),那么去掉FOREVER或者修改其值为2147483647

grep -C 3 --color "TSDB_TTL" ./src/create_table.sh

vim create_table.sh

TSDB_TTL=${
    
    TSDB_TTL-'FOREVER'} 改成 TSDB_TTL=${
    
    TSDB_TTL-'2147483647'}

然后在hbase shell中查看表

hbase shell

hbase(main):001:0> list
TABLE                                                                           
tsdb                                                                            
tsdb-meta                                                                       
tsdb-tree                                                                       
tsdb-uid                                                                        
4 row(s) in 0.0900 seconds

然后在执行后面的语句就不会出错了
创建缓存目录mkdir cachetsdb
启动OpenTSDB。

cd ./build
./tsdb tsd 或
./tsdb tsd --port=4242 --staticroot=staticroot --cachedir=/home/hadoop/apps/opentsdb/cachetsdb --zkquorum=master,slave01,slave02

将openTSDB文件目录下的opentsdb.conf文件拷贝到./build目录下,
mv opentsdb.conf build/opentsdb.conf配置内容如下【这里只列举出需要修改的配置项】:

# --------- NETWORK ----------
# The TCP port TSD should use for communications
# *** REQUIRED ***
tsd.network.port = 4242

# ----------- HTTP -----------
# The location of static files for the HTTP GUI interface.
# *** REQUIRED ***
tsd.http.staticroot = ./staticroot

# Where TSD should write it's cache files to
# *** REQUIRED ***
tsd.http.cachedir = /root/openTSDB_temp


# --------- CORE ----------
# Whether or not to automatically create UIDs for new metric types, default
# is False
tsd.core.auto_create_metrics = true

# Name of the HBase table where data points are stored, default is "tsdb"
tsd.storage.hbase.data_table = tsdb

# Path under which the znode for the -ROOT- region is located, default is "/hbase"
tsd.storage.hbase.zk_basedir = /hbase

# A comma separated list of Zookeeper hosts to connect to, with or without
# port specifiers, default is "localhost"
tsd.storage.hbase.zk_quorum = server4,server5,server6

运行openTSDB,执行命令:./tsdb tsd

运行之后,可以发现在当前窗口出现了很多的消息,这些便是启动openTSDB的日志消息。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/asd521a65sdf12/article/details/107320448