架构及部署
1、架构
分布式主从架构
- 主:HMaster
- 管理从节点
- 从:HRegionServer
- 负责干活:存储
- 数据存储在RegionServer的内存中
- 主:HMaster
- HDFS
用于实现Hbase中数据的持久化
- Zookeeper
存储关键性数据
辅助选举
:两个HMaster,一个active,一个standby- Hbase高度依赖于Zookeeper
- 大部分的分布式框架都依赖于Zookeeper
- 除非自己实现类似于Zookeeper的机制
2、分布式集群部署
先选择一台机器进行安装配置
- 上传
cd /export/software/
rz
- 解压安装
tar -zxvf hbase-1.2.0-cdh5.14.0.tar.gz -C /export/servers/
- 目录结构
- bin:用于存放命令的目录
- conf:配置文件目录
- lib:依赖包的目录
- logs:存放日志的目录
修改配置
- hbase-env.sh:修改Hbase运行时的环境变量
#修改第27行
export JAVA_HOME=/export/servers/jdk1.8.0_141
#修改128行
export HBASE_MANAGES_ZK=false
- hbase-site.xml:配置Hbase的属性
- 所有的hbase程序,运行先加载hbase-default.xml,然后加载hbase-site.xml
- 创建一个目录
cd /export/servers/hbase-1.2.0-cdh5.14.0/
mkdir datas
<!--指定Hbase 临时存储目录的-->
<property >
<name>hbase.tmp.dir</name>
<value>/export/servers/hbase-1.2.0-cdh5.14.0/datas</value>
</property>
<!--指定Hbase在HDFS上的存储目录-->
<property >
<name>hbase.rootdir</name>
<value>hdfs://node-01:8020/hbase</value>
</property>
<property >
<name>hbase.fs.tmp.dir</name>
<value>/user/${user.name}/hbase-staging</value>
</property>
<property >
<name>hbase.bulkload.staging.dir</name>
<value>${hbase.fs.tmp.dir}</value>
</property>
<!--指定Hbase的运行模式是否是分布式-->
<property >
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!--指定Zookeeper的地址-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>node-01:2181,node-02:2181,node-03:2181</value>
</property>
- 如果hdfs配置了HA
- 注意,要将core-site.xml和hdfs-site.xml放入hbase的conf目录
- regionservers:配置hbase从节点的地址,类似于Hadoop的slaves文件
node-01
node-02
node-03
为什么没有指定主节点的地址?
- 因为Hbase的底层高度依赖Zookeeper,直接跟zookeeper做了 关联
- 可以在任何一台机器启动主节点
- 第一台启动的机器就是active的主节点
- 其他的机器启动主节点就是standby的主节点
- 如果非要定义哪些机器可以启动主节点进程HMaster
- 实现
cd /export/servers/hbase-1.2.0-cdh5.14.0/
vim conf/backup-masters
node-02
分发
cd /export/servers/
scp -r hbase-1.2.0-cdh5.14.0 node-02:$PWD
scp -r hbase-1.2.0-cdh5.14.0 node-03:$PWD
启动
- 先启动HDFS
- HDFS退出安全模式以后,才能启动Hbase
start-dfs.sh
- 然后启动Zookeeper
- 没有脚本的,挨个进程启动
- 启动完成以后一定要检查zookeeper的状态
/export/servers/zookeeper-3.4.5-cdh5.14.0/bin/start-zk-all.sh
- 然后启动Hbase
- 方式一:第一台机器一次性启动所有机器的进程
cd /export/servers/hbase-1.2.0-cdh5.14.0/
bin/start-hbase.sh
- 关闭
- 先关hbase
- 再关hdfs或者zookeeper
bin/stop-hbase.sh
- 注意:
- 启动的进程
- 启动的进程
- 警告不用管
- 方式二:单个进程启动
cd /export/servers/hbase-1.2.0-cdh5.14.0/
bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver
测试访问
- jps:查看进程是否完成
- 如果有进程自动消失,请查看日志
- 日志在哪?
tail -100f logs/hbase-root-master-node-01.log
- 访问WebUI
node-01:60010
node-02:60010
注意:hbase我们使用的是1.x版本
apache从1.x开始网页端口更改为16010
cdh延续以前老版本的端口:60010
- 第一台配置环境变量
vim /etc/profile
export HBASE_HOME=/export/servers/hbase-1.2.0-cdh5.14.0
export PATH=$PATH:$HBASE_HOME/bin
source /etc/profile