Docker创建的集群下使用ansible部署hbase
基于安装好的hadoop和zookeeper集群部署hbase
Docker创建的集群下使用ansible部署hadoop
Docker创建的集群下使用ansible部署zookeeper
OS | hostname | IP |
---|---|---|
Centos7 | cluster-master | 172.18.0.2 |
Centos7 | cluster-slave1 | 172.18.0.3 |
Centos7 | cluster-slave1 | 172.18.0.4 |
Centos7 | cluster-slave1 | 172.18.0.5 |
在cluster-master上制作hbase安装包
下载
创建~/install/hbase目录,并将软件包现在到这个目录,依然使用国内镜像下载。
[root@cluster-master hbase]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/stable/hbase-1.2.6-bin.tar.gz
修改配置
解压hbase-1.2.6-bin.tar.gz,从中提取配置文件
hbase-env.sh
hbase-site.xml
regionservers
保存在~/install/hbase/conf目录下
hbase-env.sh
添加log文件和pid文件路径,并禁用自带zookeeper
export HBASE_LOG_DIR=${HBASE_HOME}/logs export HBASE_PID_DIR=/var/hbase/pids export HBASE_MANAGES_ZK=false
hbase-site.xml
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://cluster-master:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>cluster-master,cluster-slave1,cluster-slave2,cluster-slave3</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/zookeeper/data</value> </property> <property> <name>hbase.tmp.dir</name> <value>/home/hbase/data/tmp</value> </property> </configuration>
hbase.zookeeper.property.dataDir项填写zookeeper的data路径
hbase.tmp.dir项定义hbase的tmp目录
regionservers
配置了3个regionserver
[root@cluster-master conf]# cat regionservers cluster-slave1 cluster-slave2 cluster-slave3
设置环境变量
将hbase的环境变量添加到~/.bashrc中,并拷贝.bashrc到~/install/hbase下,文件名改为bashrc
# hbase export HBASE_HOME=/opt/hbase export PATH=$HBASE_HOME/bin:$PATH
创建ansible-playbook
需要将软件包和修改后的hbase配置文件以及环境变量文件分发到slave主机,并使环境变量生效;此外还需要创建配置文件中涉及的路径,yaml内容保存到~/install/hbase/install-hbase.yaml中。
--- - hosts: cluster tasks: - name: unarchive hbase unarchive: src=./hbase-1.2.6-bin.tar.gz dest=/opt - name: create link file: src=/opt/hbase-1.2.6 dest=/opt/hbase state=link - name: create dir file: path={{ item }} state=directory with_items: - /home/hbase/data/tmp - /var/hbase/pids - /opt/hbase/logs - name: copy bashrc copy: src=./bashrc dest=~/.bashrc notify: exec source - name: copy config file copy: src=./conf dest=/opt/hbase handlers: - name: exec source shell: source ~/.bashrc
部署hbase
使用ansible-playbook执行install-hbase.yaml完成hbase的部署工作。
[root@cluster-master hbase]# ansible-playbook install-hbase.yaml
启动
在cluster-master上进行启动集群
[root@cluster-master bin]# ./start-hbase.sh [root@cluster-master bin]# jps 19842 HMaster 19018 ResourceManager 20604 Jps 11293 QuorumPeerMain 6462 SecondaryNameNode 6270 NameNode
总结
对部署hadoop和zookeeper的部署方式进行了改进,将部署文件单独存放,并将部署动作全部放在yaml中,使部署更加便捷.