ubuntu安装zookeeper、HBase和openTSDB
安装配置ZooKeeper
下载链接 http://archive.apache.org/dist/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz ①将下载的zookeeper压缩包解压到/apps目录下tar -zxf zookeeper-3.4.8.tar.gz -C /home/apps
②进入zookeeper安装包的conf目录下,复制一份zoo_sample.cfg文件到zoo.cfg文件
cp zoo_sample.cfg zoo.cfg
③配置zoo.cfg
④创建dataDir对应的目录
因为上一步配置了dataDir的目录此时并不存在,因此需要创建。
进入/home/hadoop目录,执行命令:
mkdir data
⑤进入data文件夹,新建myid文件并且写入 1
vim myid
⑧将master节点上配置好的zookeeper文件传到slave01和slave02节点的/apps目录下
scp -r zookeeper-3.4.8/ slave01:/home/hadoop/apps
scp -r zookeeper-3.4.8/ slave02:/home/hadoop/apps
⑧像步骤④一样,在slave01和slave02节点分别创建dataDir对应的目录,以及创建并编辑myid文件
区别是,myid文件的内容分别改为“2”和“3”,slave01对应2,slave02对应3
⑨在所有机器上分别配置zookeeper环境变量
vim ~/.bashrc
添加如下两行
#zookeeper
export ZOOKEEPER_HOME=/home/hadoop/apps/zookeeper-3.4.8
export PATH=$PATH:$ZOOKEEPER_HOME/bin
⑩在每台机器上都运行zookeeper,并查看状态
zkServer.sh start
zkServer.sh status
status状态会根据集群启动情况动态选举leader和follower。
jps查看进程,看到所有节点都有QuorumPeerMain进程
注意:zookeeper的启动顺序不需要按照myid值的顺序依次启动。
如果觉得每次启动zookeeper集群都有在所有节点上执行start命令比较麻烦,可以参考下面链接进行设置,这样只需要在master节点的相关目录下执行startzk.sh即可启动集群。
https://blog.csdn.net/loopeng1/article/details/79012989
安装配置HBase
HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。
1、环境配置
下载链接 http://archive.apache.org/dist/hbase/1.2.5/hbase-1.2.5-bin.tar.gz
创建目录,将下载好的压缩包上传并解压
tar -zxvf hbase-1.2.5-bin.tar.gz -C /home/hadoop/apps
vim ~/.bashrc
#hbase
export HBASE_HOME=/home/hadoop/apps/hbase-1.2.5
export PATH=$PATH:$HBASE_HOME/bin
source ~/.bashrc
2、修改hbase-env.sh文件
cd hbase-2.1.1/conf
vim hbase-env.sh
export JAVA_HOME=/usr/lib/jvm/default-java
export HBASE_LOG_DIR=${HBASE_HOME}/logs
export HBASE_MANAGES_ZK=false
3、修改hbase-site.xml 文件
vim hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave01,slave02</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/apps/zookeeper-3.4.8/data</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/home/hadoop/apps/hbase-1.2.5/data/tmp</value>
</property>
<property>
<name>hbase.master</name>
<value>hdfs://master:60000</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>16010</value>
</property>
<property>
<name>hbase.regionserver.info.port</name>
<value>16030</value>
</property>
</configuration>
4、修改regionservers文件
vim regionservers
master
slave1
slave2
5、其他两个子节点的配置
把上面配置好的hbase整个文件夹传过去
scp -r zookeeper-3.4.8/ slave02:/home/hadoop/apps
scp -r zookeeper-3.4.8/ slave01:/home/hadoop/apps
别忘在另外两个节点也要配置环境变量并source一下使生效!
在所有节点上都手动创建/home/hadoop/apps/zookeeper-3.4.8/data/tmp目录,也就是上面配置文件中hbase.tmp.dir属性的值,用来保存临时文件的。
注意:测试Hbase之前,zookeeper和hadoop需要提前启动起来
cd hbase/hbase-2.1.1
start-hbase.sh
jps
正确结果:主节点上显示:HMaster / 子节点上显示:HRegionServer
在主机浏览器上访问:http://219.216.72.113:16010
到此为止,Hbase配置就结束了。
安装配置openTSDB
首先需要安装一些依赖#gnuplot
sudo apt install gnuplot
#gnuplot-x11
sudo apt install gnuplot-x11
#autoconf
sudo apt install autoconf
#git
sudo apt install git
#make
sudo apt install make
1.下载安装包,如果git速度太慢,直接到github下载zip文件
git clonegit://github.com/OpenTSDB/opentsdb.git
2.执行build
cd ~/apps/opentsdb
./build.sh
3、 初始化数据库
env COMPRESSION=NON EHBASE_HOME=/home/hadoop/apps/hbase-1.2.5 ./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.2.5版本),那么去掉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
然后在执行后面的语句就不会出错了
4、 创建缓存目录
mkdir cachetsdb
5、 启动OpenTSDB。
cd ./build
./tsdb tsd --port=4242 --staticroot=staticroot --cachedir=/home/hadoop/apps/opentsdb/cachetsdb --zkquorum=master,slave01,slave02