当前位置: 首页 > 科技观察

HBase全分布式集群部署

时间:2023-03-13 16:40:16 科技观察

1.简介HBase是一个分布式的、面向列的开源数据库,区别于一般的关系型数据库,是一个适合非结构化数据存储的数据库。另一个区别是HBase的基于列的模式而不是基于行的模式。HBase使用与BigTable非常相同的数据模型。用户将数据行存储在表中。数据行有一个可选的键和任意数量的列。一个或多个列组成一个ColumnFamily,Fmaily下的列位于一个HFile中,便于缓存数据。表格存储松散,因此用户可以为行定义各种列。在HBase中,数据按照主键排序,表根据主键划分为多个region。在分布式生产环境中,HBase需要运行在HDFS上,并以HDFS作为其基础存储设施。HBase的上层提供了一个访问数据的JavaAPI层,允许应用程序访问存储在HBase中的数据。在HBase集群中,主要由Master、RegionServer、Zookeeper组成。具体模块如下图所示:简单介绍一下HBase中相关模块的功能:MasterHBaseMaster用于协调多个RegionServer,检测RegionServer之间的冲突。状态,并平衡RegionServer之间的负载。HBaseMaster的另一个职责是将Region分配给RegionServers。HBase允许多个Master节点共存,但这需要Zookeeper的帮助。但是,当多个Master节点共存时,只有一个Master提供服务,其他Master节点处于待命状态。当工作的Master节点宕机时,其他Master将接管HBase集群。对于一个RegionServer,一个RegionServer包括多个Region。RegionServer的作用只是管理表和实现读写操作。Client直接连接RegionServer,通过通信获取HBase中的数据。对于Region来说,就是HBase数据实际存放的地方,也就是说Region是HBase可用性和分布的基本单位。如果一张表很大,由多个CF组成,那么该表的数据会存储在多个Region中,每个Region中会关联多个存储单元(Store)。Zookeeper对于HBase来说,Zookeeper的作用是至关重要的。首先,Zookeeper是HBaseMaster的HA解决方案。也就是说,Zookeeper保证至少有一个HBaseMaster在运行。而Zookeeper负责Region和RegionServer的注册。事实上,Zookeeper发展至今,已经成为分布式大数据框架中容错的标准框架。不仅是HBase,几乎所有与分布式大数据相关的开源框架都依赖Zookeeper来实现HA。HBase集群是建立在Hadoop集群的基础上的,所以在搭建HBase集群之前需要先搭建Hadoop集群,并且必须考虑两者的兼容性。2、环境准备(1)修改各服务器主机名,添加hosts文件,关闭防火墙[root@c7001~]#cat>>/etc/hosts<hbase.rootdirhdfs://c7001:9000/hbasehbase.cluster.distributedtruehbase.zookeeper.quorumc7003,c7004,c7005hbase.zookeeper.property.dataDir/opt/hbase-1.3.0/tmp/zk/dataviregionservers#添加如下内容:c7004c7005拷贝Hbase到其他机器[root@c7003opt]$scp-rhbase-1.3.0root@c7004:/opt/[root@c7003opt]$scp-rhbase-1.3.0root@c7005:/opt/startcluster[root@c7003hbase-1.3.0]$bin/start-hbase.shweb访问ip:16010各节点进程(图片是复制的)