小记--------hbase数据库各组件应用及作用

zookeeper:主要用于协调管理分布式应用程序;

1.实现master高可用;如果 active master由于异常宕机,zookeeper会检测到该宕机时间,并通过一定机制选举出新的master

2.管理系统核心元数据:当前系统中正常工作的regionserver集合,保存系统元数据表hbase:meta所在额regionserver地址等等

3.参与regionserver宕机恢复:zookeeper通过心跳可以感知到regionserver是否宕机,并在宕机后通知master进行宕机处理

4.实现分布式表锁:hbase对表进行操作时需要先加锁,防止其他用户对同一张表进行操作,造成表状态不一致;zookeeper可以通过特定机制实现分布式表锁

master:主要负责hbase系统的各种管理工作;

1.处理用户的各种管理请求;建表、修改表、切分表、数据合并、compaction

2.管理集群中所有regionserver;包括region的负载均衡,regionserver的宕机恢复,region的迁移

3.清理过期日志以及文件;会每隔一段时间检查hdfs中HLog是否过期、HFile是否已经被删除,并在过期后删除

RegionServer:(有几台机器就有几个regionserver)主要用来响应用户的IO请求。由WAL(HLog)、BlockCache、多个region构成

1.WAL(HLog):HLog在hbase中有两个核心作用:

一、用于实现数据的高可靠性;hbase在数据写入时,会先写入缓存,再异步刷新到磁盘,为防止缓存数据丢失,数据写入缓存之前首先顺序写入HLog;这样的话即使数据丢失,仍然可以通过HLog恢复。

二、用于实现hbase集群见主从复制,通过回访主集群推送过来的HLog日志实现主从复制

2.BlockCache:hbase系统中读缓存,客户端从磁盘读取数据之后通常会将数据缓存到系统内存中,后续访问同一行数据可以直接从内存中获取而不需要访问磁盘

3.Region:region是集群负载均衡的基本单位。

一个region由一个或者多个store构成。

store的个数取决于表中列簇的个数,多少个列簇就有多少个store

每个store由一个memstore和一个或者多个HFile组成。MemStore称为写缓存,首先会写到Memstore中,当MemStore写满之后(缓存数据超过阈值,默认128M)系统会异步将数据flush成一个HFile文件,HFile文件数超过一定阈值之后系统将会执行Compact操作,将这些小文件通过一定策略合并成一个或多个大文件

HDFS:hbase底层依赖hdfs组件存储时间数据,包括用户数据文件、HLog日志文件等最终都会写入hdfs落到磁盘。hdfs数据默认3副本存储策略可以有效保证数据的高可靠性。hbase内部封装了一个名为HDFSClient的HDFS客户端组件,负责对HDFS的实际数据进行读写访问

原文地址:https://www.cnblogs.com/yzqyxq/p/12103297.html

时间: 2024-10-07 05:28:21

小记--------hbase数据库各组件应用及作用的相关文章

小记--------hbase数据库介绍及存储方式

一.Hbase基本原理 1.hbase基本介绍 HBASE是一个分布式的,面向列的开源数据库.Hbase的存储是基于hadoop的.因为Hadoop实现了一个分布式文件系统(HDFS),基于hadoop意味着hbase与生俱来的超强的扩展性和吞吐量,hbase采用的是key.value的存储方式.意味着即使随着数据量增大,也几乎不会导致查询的性能下降. 2.hbase存储方式 hbase将数据按列簇分别存储,而并非简单的列式存储:首先了解几个概念:行式存储.列式存储.列簇式存储. A.行式存储:

小记--------hbase数据库读写流程

hbase读写流程 读过程 client先从缓存中定位region位置,如果缓存中没有region位置,则从zookeeper的-ROOT-表,获取-ROOT-所在regionserver位置 通过查询-ROOT-的region服务器获取含有.META.表所在regionserver地址 Client会将保存着regionserver位置信息的元数据表.META.进行缓存,然后在表中确定待检索rowkey所在regionserver信息. Client会向在.META.表中确定的regionse

hbase 数据库深入使用与相关数据的加载

一:hbase 数据检索流程 二:hbase 数据库java api 调用 三:hbase 各个服务的作用 四:hbase 与mapreduce集成 五:hbase 使用BulkLoad 加载数据 一:hbase 数据检索流程 1.1 hbase 数据检索流程图: 1.2 hbase 读的流程: 读流程: 1.client请求zookeeper集群(root/meta)(meta) --有多少table,table有哪些region(startrow.stoprow) 2.client找到reg

????SQL Server中默认数据库和默认表的作用

我们知道Oracle数据库的安装架构可以是1个数据库对应1个或多个实例.而在SQL Server中,其架构和Oracle 完全相反,它是1个实例(默认实例名为Hostname主机名)下面包含多个数据库,在sqlserver数据库中(2000,2005,2008等),主要包含4个默认的数据库,分别是master数据库.model数据库.tempdb数据库和msdb数据库.这些数据库是SQL Server的心脏和灵魂.另外,还默认安装了两个实例数据库,分别是:northwind数据库和pubs数据库

HBase 数据库检索性能优化策略

HBase 数据表介绍 HBase 数据库是一个基于分布式的.面向列的.主要用于非结构化数据存储用途的开源数据库.其设计思路来源于 Google 的非开源数据库"BigTable". HDFS 为 HBase 提供底层存储支持,MapReduce 为其提供计算能力.ZooKeeper 为其提供协调服务和 failover(失效转移的备份操作)机制.Pig 和 Hive 为 HBase 提供了高层语言支持,使其能够进行数据统计(可实现多表 join 等).Sqoop 则为其提供 RDBM

【转载】HBase 数据库检索性能优化策略

转自:http://www.ibm.com/developerworks/cn/java/j-lo-HBase/index.html 高性能 HBase 数据库 本文首先介绍了 HBase 数据库基本原理及专用术语,然后介绍了 HBase 数据库发布的操作 API 及部分示例,重点介绍了 Scan 方法的操作方式,接着介绍了检索 HBase 数据库时的优化方案,最后通过一个示例总结了实际项目中遇到的检索速度慢的解决方案. HBase 数据表介绍 HBase 数据库是一个基于分布式的.面向列的.主

Java在HBase数据库创建表

Java在HBase数据库创建表 作者:chszs,版权所有,未经同意,不得转载.博主主页:http://blog.csdn.net/chszs 要通过Java在HBase中创建一个数据表,首先需要导入hbase-client.jar驱动包.可以在项目pom.xml配置文件中添加依赖: <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client<artifactId

局域网内任何一台pc上windows下eclipse远程连接hbase数据库

通过很长一段时间的反复失败,终于在windows下实现远程连接hbase数据库,在不断的尝试过程中深感一个详细的文档的重要性,于是就把我配置的详细过程记录下来.文中如果有些地方用词不当,或者理解错误,欢迎您们评论. 一.运行平台 hbase服务器端:Ubuntu 14.04 64位:HBASE1.1.3:JAVA 1.8: hbase客服端:windows32/64位:JAVA1.8:eclipse 4.5: 二.linux服务器端环境配置 1.  安装java 1.8软件 1)下载java软件

一文让您全面了解清楚HBase数据库的所有知识点,值得收藏!

欢迎关注大数据和人工智能技术文章发布的微信公众号:清研学堂,在这里你可以学到夜白(作者笔名)精心整理的笔记,让我们每天进步一点点,让优秀成为一种习惯! 一.HBase基本概念:列式数据库 在Hadoop生态体系结构中,HBase位于HDFS(Hadoop分布式文件系统)的上一层,不依赖于MapReduce,那么如果没有HBase这种Nosql数据库会有什么影响呢?传统的关系型数据库由于存储数据有限,且其分布式结构由于本身的特点导致节点数量最大不会超过一百个,例如分布式的oracle数据库只能部署