文章目录
前言
HBase 是一个面向列式存储的分布式数据库,HBase 底层存储基于 HDFS 实现,集群的管理基于 ZooKeeper 实现。
一、HBase的架构![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b26b1b50243b4c3f9c449c64894a8304.png#pic_center)
HBase组件角色:
- HMaster
功能:
1.监控 RegionServer
2.处理 RegionServer 故障转移
3.处理元数据的变更
4.处理region 的分配或移除
5.在空闲时间进行数据的负载均衡
6.通过 Zookeeper 发布自己的位置给客户端
- HRegionServer
功能:
1.负责存储 HBase 的实际数据
2.处理分配给它的 Region
3.刷新缓存到 HDFS
4.维护WAL
5.执行压缩
6.负责处理 Region 分片
-
HFile
这是在磁盘上保存原始数据的实际的物理文件,是实际的存储文件。
-
Store
HFile 存储在 Store 中,一个 Store 对应 HBase 表中的一个Column Family列族(列簇)。
-
MemStore
顾名思义,就是内存存储,位于内存中,用来保存当前的数据操作,所以当数据保存在 WAL中之后,RegsionServer 会在内存中存储键值对。
二、HBase部署与启动
1.下载、解压缩,在/etc/profile全局配置文件中添加
代码如下():
export HBASE_HOME=/export/servers/hbase-2.4.5
export PATH=$PATH:$HBASE_HOME/bin
2.配置hbase-env.sh
代码如下():
export JAVA_HOME=/export/servers/jdk1.8.0_161
export HBASE_MANAGES_ZK=false # 使用外部的ZooKeeper
3.配置hbase-site.xml
<configuration>
<!-- hbase数据存放的目录,若用本地目录,必须带上file://,否则hbase启动不起来 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://my2308-host:9000/hbase</value>
</property>
<!-- zk的位置 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
<description>my2308-host:2181</description>
</property>
<!--hbase.cluster.distributed表示是否分布式部署,指定为true-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- hbase主节点的位置 -->
<property>
<name>hbase.master</name>
<value>my2308-host:60000</value>
</property>
</configuration>
4.拷贝zookeeper的conf/zoo.cfg到hbase的conf/下
5.启动HBase
执行start-hbase.sh脚本
三、Zookeeper部署与启动
1、环境准备
ZooKeeper服务器是用Java创建的,它运行在JVM之上。需要安装JDK 7或更高版本。
2、上传
将下载的ZooKeeper放到/export/software目录下
3、解压
进入/export/software目录下,将tar包解压到/export/servers目录下
tar -xzvf apache-ZooKeeper-3.5.6-bin.tar.gz -C /export/servers
4、添加环境变量
在/etc/profile全局配置文件中,添加:
export ZK_HOME=/export/servers/apache-zookeeper-3.5.6-bin
export PATH=$PATH:$ZK_HOME/bin
5.配置zoo.cfg
进入到conf目录拷贝一个zoo_sample.cfg并完成配置
#进入到conf目录
cd /export/servers/apache-zookeeper-3.5.6-bin/conf
#拷贝
cp zoo_sample.cfg zoo.cfg
修改zoo.cfg
#进入目录
cd /export/data
#创建zooKeeper存储目录
mkdir zkdata
#修改zoo.cfg
vi /export/servers/apache-zookeeper-3.5.6-bin/conf/zoo.cfg
修改存储目录:dataDir=/export/data/zkdata
6.启动ZooKeeper
cd /export/servers/apache-zookeeper-3.5.6-bin/bin
#启动
./zkServer.sh start
7.查看ZooKeeper状态
./zkServer.sh status