Hbase架构,组件分析 ,Hbase集群搭建

1.hbase的架构


Hbase主要由master,regionserver,zookeeper,client,hdfs文件系统构成.

Zk:记录hbase的表的元数据信息

hamster:进行region的分配,发出操作指令

Hlog:记录HregionServer的操作日志,保证数据的可靠性

HRegion:存储Hbase表的信息

store:Hbase表的不同列族的存储

DataNode:存储Hbase的Hlog及Hbase表的Hfile的文件持久化存储

2.hbase的组件及作用


1)Client

访问Hbase的接口, Client中具有 cache来加速Hbase的访问,比如cache的.META.元数据的信息。

2)Zookeeper

HBase通过Zookeeper来做master的高可用、RegionServer的监控、元数据的入口以及集群配置的维护等工作。

通过Zoopkeeper来保证集群中只有1个master在运行,如果master异常,会通过竞争机制产生新的master提供服务

通过Zoopkeeper来监控RegionServer的状态,当RegionSevrer有异常的时候,通过回调的形式通知Master RegionServer上下线的信息

通过Zoopkeeper存储元数据的统一入口地址

3)Hmaster

master节点的主要职责如下:

为RegionServer分配Region

维护整个集群的负载均衡

维护集群的元数据信息

发现失效的Region,并将失效的Region分配到正常的RegionServer上

当RegionSever失效的时候,协调对应Hlog的拆分

4)HregionServer

HregionServer直接对接用户的读写请求,是真正的“干活”的节点。它的功能概括如下:

管理master为其分配的Region

处理来自客户端的读写请求

负责和底层HDFS的交互,存储数据到HDFS

负责Region变大以后的拆分

负责Storefile的合并工作

5)HDFS

HDFS为Hbase提供最终的底层数据存储服务,同时为HBase提供高可用(Hlog存储在HDFS)的支持,具体功能概括如下:

提供元数据和表数据的底层分布式存储服务

数据多副本,保证的高可靠和高可用性

3.hbase的读写流程


HBase读数据流程:

1)Client先访问zookeeper,从meta表读取region的位置,然后读取meta表中的数据。meta中又存储了用户表的region信息;

2)根据namespace、表名和rowkey在meta表中找到对应的region信息;

3)找到这个region对应的regionserver;

4)查找对应的region;

5)先从MemStore找数据,如果没有,再到BlockCache里面读;

6)BlockCache还没有,再到StoreFile上读(为了读取的效率);

7)如果是从StoreFile里面读取的数据,不是直接返回给客户端,而是先写入BlockCache,再返回给客户端。


写入数据流程:

1)Client向HregionServer发送写请求;

2)HregionServer将数据写到HLog(write ahead log)。为了数据的持久化和恢复;

3)HregionServer将数据写到内存(MemStore);

4)反馈Client写成功。

 

4.hbase集群搭建


伪分布式 :

1.hbase-env.sh中配置JAVA_HOME

2.配置hbase-site.xml如下

<property>

<name>hbase.rootdir</name>

<value>file:///root/hbaserootdir</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/root/zookeeper/data</value>

</property>


完全分布式搭建:

设置使用自定义的zookeeper:

需要在hbase-env.sh中设置HBASE_MANAGES_ZK为false

backup-masters配置:


node2

hbase-env.sh配置:


export JAVA_HOME=/usr/java/jdk1.7.0_80

export HBASE_MANAGES_ZK=false

hbase-site.xml配置:


<configuration>

<property>

<name>hbase.rootdir</name>

<value>hdfs://mycluster/hbase</value>

</property>

<property>

<name>hbase.zookeeper.quorum</name>

<value>node2,node3,node4</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/var/hbase/zookeeper</value>

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

</configuration>

regionservers配置:


node2

node3

node4

将hdfs-site.xml拷贝到hbase的conf目录

或者使用软链接,将Hadoop的配置文件软连接到hbase的配置目录

bin/start-hbase.sh     bin/stop-hbase.sh   bin/hbase shell

HBase的WEB UI访问:

HMaster:http://node1:60010

原文地址:https://www.cnblogs.com/eric666666/p/11118197.html

时间: 2024-08-01 18:41:21

Hbase架构,组件分析 ,Hbase集群搭建的相关文章

分布式实时日志系统(四) 环境搭建之centos 6.4下hbase 1.0.1 分布式集群搭建

一.hbase简介 HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,实现的编程语言为 Java.它是Apache软件基金会的Hadoop项目的一部分,运行于HDFS文件系统之上,为 Hadoop 提供类似于BigTable 规模的服务.因此,它可以容错地存储海量稀疏的数据.HBase在列上实现了BigTable论文提到的压缩算法.内存操作和布隆过滤器.HBase的表能够作为MapReduce任务的输入和输出,可以通过Java API来存取数据,也可以

Hbase 完全分布式 高可用 集群搭建

1.准备 Hadoop 版本:2.7.7 ZooKeeper 版本:3.4.14 Hbase 版本:2.0.5 四台主机: s0, s1, s2, s3 搭建目标如下: HMaster:s0,s1(备份HMaster) HRegionServer:s1, s2, s3 主机映射信息如下 192.168.32.100 s0 192.168.32.101 s1 192.168.32.102 s2 192.168.32.103 s3 Hadoop 安装步骤参考(示例版本与HDFS端口配置略有差异,根据

CentOS7.3下ELK日志分析系统集群搭建

Elasticsearch是个基于Lucene实现的开源.分布式.restful的全文本搜索引擎,此外他还是一个分布式实时文档存储,其中每个文档的每个filed均是可被索引的数据,且可被搜索,也是一个带实时分析功能的搜索引擎,能够扩展至数以百计的节点实时处理PB级别的数据.它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等.Elasticsearch集群采用主从模式,通过获取Logstash客户端收集来的日志信息同步到Elastic

基于Hadoop的数据分析综合管理平台之Hadoop、HBase完全分布式集群搭建

能够将热爱的技术应用于实际生活生产中,是做技术人员向往和乐之不疲的事. 现将前期手里面的一个项目做一个大致的总结,与大家一起分享.交流.进步.项目现在正在线上运行,项目名--基于Hadoop的数据分析综合管理平台. 项目流程整体比较清晰,爬取数据(txt文本)-->数据清洗-->文本模型训练-->文本分类-->热点话题发现-->报表"实时"展示,使用到的技术也是当今互联网公司常用的技术:Hadoop.Mahout.HBase.Spring Data Had

大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单机的搭建,是因为作为个人学习的话,单机已足以,好吧,说实话是自己的电脑不行,使用虚拟机实在太卡了... 整个的集群搭建是在公司的测试服务搭建的,在搭建的时候遇到各种各样的坑,当然也收获颇多.在成功搭建大数据集群之后,零零散散的做了写笔记,然后重新将这些笔记整理了下来.于是就有了本篇博文. 其实我在搭

hbase 集群搭建(公司内部测试集群)

我用的是cdh4.5版本:配置文件:$HBASE_HOME/conf/hbase-env.shexport JAVA_HOME=$JAVA_HOMEexport JAVA_HOME=/home/hadoop/jdk1.7.0_51export HBASE_CLASSPATH=$HBASE_HOME/conf# Tell HBase whether it should manage it's own instance of Zookeeper or not.export HBASE_MANAGES

虚拟机zookeeper和hbase集群搭建

集群zookeeper dataDir=/usr/local/zookeeper/dataDir dataLogDir=/usr/local/zookeeper/dataLogDir # the port at which the clients will connect clientPort=2181 # master server.1=sjck-node01:2888:3888 server.2=sjck-node02:2888:3888 server.3=sjck-node03:2888:

分布式架构中一致性解决方案——Zookeeper集群搭建

当我们的项目在不知不觉中做大了之后,各种问题就出来了,真jb头疼,比如性能,业务系统的并行计算的一致性协调问题,比如分布式架构的事务问题, 我们需要多台机器共同commit事务,经典的案例当然是银行转账,支付宝转账这种,如果是一台机器的话,这个还是很方便的,windows中自带了一个事务协 调器mstsc,但是呢,你那种很大很牛逼的项目不可能全是windows服务器,对吧,有些人为了解决这个问题,会采用2pc,3pc这种算法,或者是paxos的思 想进行分布式下的一致性处理,当然在这个世界上,真

【基础组件12】Elasticsearch 6.8集群搭建+es-head安装+es-ik安装

1.总结遇到的elasticsearch启动失败的几种情况及解决参考: http://www.mamicode.com/info-detail-2322576.html 2.Elasticsearch 6.8集群搭建参考: https://blog.csdn.net/guohan_solft/article/details/85015118 https://blog.csdn.net/weixin_40036109/article/details/86595578 3.es-head的安装(wi