参考:https://blog.csdn.net/hua_faded/article/details/80535870
没安装jdk前在shell中java –version 是有版本显示的,是因为默认带着opensdk,但是网上查这个还是有区别的,所以还是要下载liunx下的jdk。
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}
通过命令source /etc/profile让profile文件立即生效
①、使用javac命令,不会出现command not found错误
②、使用java -version,出现版本为java version “1.8.0_131”
③、echo $PATH,看看自己刚刚设置的的环境变量配置是否都正确
参考:https://www.cnblogs.com/marszhw/p/12594343.html
命令:wget -b https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/1.3.1/hbase-1.3.1-bin.tar.gz
命令:tar xzvf hbase-1.3.1-bin.tar.gz
命令:mv hbase-1.3.1 /root/
命令:cd /root/hbase-1.3.1/
命令:vim conf/hbase-env.sh
修改
export JAVA_HOME=/usr/local/jdk7/jdk1.7.0_79/
<!-- 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>
启动命令:./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的使用
在bin目录下,连接到HBase,输入hbase shell
显示HBase Shell帮助文本。键入help并按Enter键,以显示HBase Shell的一些基本用法信息以及一些示例命令。注意,表名,行,列都必须用引号引起来。
创建一个表,使用create命令创建一个新表。您必须指定表名称和ColumnFamily名称。 命令:create ‘test’, ‘cf’
列出有关表的信息,使用list命令确认您的表存在 命令:list ‘test’
使用describe命令查看详细信息,包括配置默认值 命令:describe ‘test’
将数据放入表中。要将数据放入表中,请使用put命令。命令:put ‘test’, ‘row1’, ‘cf:a’, ‘value1’
一次扫描表中的所有数据,从HBase获取数据的一种方法是扫描。使用scan命令扫描表中的数据。您可以限制扫描范围,但是现在,所有数据都已获取。scan ‘test’
获取单行数据。要一次获取一行数据 命令:get ‘test’, ‘row1’
禁用表格。如果要删除表或更改其设置,以及在某些其他情况下,则需要先使用disable命令禁用该表。您可以使用enable命令重新启用它。禁用命令:disable ‘test’ 启用命令:enable ‘test’
要删除(删除)表,使用drop命令 命令:drop ‘test’
退出HBase Shell。要退出HBase Shell并从群集断开连接,请使用以下quit命令。HBase仍在后台运行。命令:quit 或者exit()
参考:https://www.cnblogs.com/expiator/p/9853378.html
下载并解压zookeeper压缩包
先进入/usr/local/目录,也可以是其他的目录:
[root@localhost /]# cd /usr/local
zookeeper安装包可以在官网下载
在此目录下载zookeeper安装包:
# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
解压[root@localhost local]# tar -zxvf zookeeper-3.4.14.tar.gz
配置
进入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
注意: ./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
参考: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