设为首页收藏本站language 语言切换
查看: 3273|回复: 0
收起左侧

分享:HBase全分布式集群部署

[复制链接]
发表于 2022-10-20 16:23:46 | 显示全部楼层 |阅读模式
本帖最后由 泰克教育 于 2022-10-20 16:25 编辑


HBase是一个分布式的、面向列的开源数据库,它不同于一般的关系数据库,是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列而不是基于行的模式。

HBase使用和BigTable非常相同的数据模型。用户存储数据行在一个表里,一个数据行拥有一个可选择的键和任意数量的列,一个或多个列组成一个ColumnFamily,一个Fmaily下的列位于一个HFile中,易于缓存数据。表是疏松的存储的,因此用户可以给行定义各种不同的列。在HBase中数据按主键排序,同时表按主键划分为多个Region。

在分布式的生产环境中,HBase需要运行在 HDFS之上,以HDFS作为其基础的存储设施。HBase 上层提供了访问的数据的Java API层,供应用访问存储在 HBase的数据。在 HBase的集群中主要由Master和Region Server组成,以及Zookeeper,具体模块如下图所示:

1.jpg
简单介绍一下HBase中相关模块的作用:

Master

HBase Master用于协调多个Region Server,侦测各个RegionServer之间的状态,并平衡RegionServer之间的负载。HBaseMaster还有一个职责就是负责分配Region给RegionServer。HBase允许多个Master节点共存,但是这需要Zookeeper的帮助。

不过当多个Master节点共存时,只有一个Master是提供服务的,其他的Master节点处于待命的状态。当正在工作的Master节点宕机时,其他的Master则会接管HBase的集群。

Region Server

对于一个RegionServer而言,其包括了多个Region。RegionServer的作用只是管理表格,以及实现读写操作。Client直接连接RegionServer,并通信获取HBase中的数据。

对于Region而言,则是真实存放HBase数据的地方,也就说Region是HBase可用性和分布式的基本单位。如果当一个表格很大,并由多个CF组成时,那么表的数据将存放在多个Region之间,并且在每个Region中会关联多个存储的单元 (Store)。

Zookeeper

对于HBase而言,Zookeeper的作用是至关重要的。首先Zookeeper是作为HBase Master的HA解决方案。也就是说,是Zookeeper保证了至少有一个HBase Master处于运行状态。

并且Zookeeper负责Region和Region Server的注册。其实Zookeeper发展到目前为止,已经成为了分布式大数据框架中容错性的标准框架。不光是HBase,几乎所有的分布式大数据相关的开源框架,都依赖于Zookeeper实现HA。

注意:
HBase集群建立在hadoop集群基础之上,所以在搭建HBase集群之前需要把Hadoop集群搭建起来,并且要考虑二者的兼容性。

环境准备

各服务器修改主机名,配置如下图:
2.jpg
安装HBase

切换超级用户 su –(我这里用的超级用户进行部署的,所以要切换)
1、进入/usr/local/目录下,新建一个文件夹 mkdir hbase
2、更改hbase的全限:chmod 777 hbase
3、利用远程文件传输工具将hbase压缩包上传到新建的文件夹hbase中
4、解压hbase压缩包:tar -xvf hbase-1.2.10.tar.gz
5、进入hbase/conf中,修改三个配置文件(hbase-env.sh,hbase-site.xml,regionservers)
6、vi hbase-env.sh
添加:export JAVA_HOME=你的jdk解压目录
添加:export HBASE_CLASSPATH=/usr/local/hadoop/hadoop2.5.6/etc/hadoop(用自己的Hadoop目录)
将export HBASE_MANAGES_ZK=true前面的#号去掉,目的就是使用系统自带的zookeeper
7、vi hbse-site.xml 添加如下内容:
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>hadoop:6000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>slave1,slave2,slave3</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/hbase/hbase-1.2.10/hbase_tmp</value>
</property>
8、vi regionservers
slave1
slave2
slave3
将各个从节点的主机名添加进去。去掉localhost
9、配置全局环境变量
vi /etc/profile
添加    export HBASE_HOME=你的hbase的解压目录
export PATH=$HBASE_HOME/bin:
source /etc/profile
10、分发hbase文件发到其他节点
使用scp命令分发:scp -r /usr/local/hbase slave1:/usr/local/(分发三给节点)

启动集群

1、启动hadoop节点:start-all.sh(无异常时在启动hbase的节点)
主节点:namednoe、SecondaryNameNode、ResourceManager
三个从节点:DataNode、NodeManager
2、启动hbase节点:start-hbase.sh
主节点:HMaster
三个从节点:HRegionServer、HQuorumPeer
3、web端访问:http://192.168.100.110(你自己的虚拟机ip地址):60010/
注:如果访问失败,关闭防火墙:service iptables stop(临时关闭)
chkconfig iptables off(永久关闭,需重启虚拟机让它生效)
4.Web端访问HBase效果图
3.jpg
微信图片_20220728111058.png


您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-5-11 03:22 , Processed in 0.074046 second(s), 22 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表