![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hbase
文章平均质量分 52
大数据面壁者
大数据相关知识分享,框架底层原理机制,生产学习中遇到的相关问题分享,共同学习,共同进步。
展开
-
Hbase基础设置优化
Hbase基础设置优化1.允许在HDFS的文件中追加内容hdfs-site.xml、HBase-site.xml属性:dfs.support.append解释:开启HDFS追加同步,可以优秀的配合HBase的数据同步和持久化。默认值为true。2.优化DataNode允许的最大文件打开数hdfs-site.xml属性:dfs.datanode.max.transfer.threads解释:HBase一般都会同一时间操作大量的文件,根据集群的数量和规模以及数据动作,设置为4096或者更高原创 2021-03-21 20:33:52 · 210 阅读 · 0 评论 -
HBase内存优化
HBase内存优化HBase操作过程中需要大量的内存开销,毕竟Table是可以缓存在内存中的,一般会分配整个可用内存的70%给HBase的Java堆。但是不建议分配非常大的堆内存,因为GC过程持续太久会导致RegionServer处于长期不可用状态,一般16~48G内存就可以了,如果因为框架占用内存过高导致系统内存不足,框架一样会被系统服务拖死。...原创 2021-03-21 20:28:46 · 275 阅读 · 0 评论 -
HBase 预分区与RowKey设计
预分区Hbase中每一个region维护着startRow与endRowKey,如果加入的数据符合某个region维护的rowKey范围,则该数据交给这个region维护。那么依照这个原则,我们可以将数据所要投放的分区提前大致的规划好,以提高HBase性能。手动设定预分区HBase> create 'staff1','info','partition1',SPLITS => ['1000','2000','3000','4000']生成16进制序列预分区create 'sta原创 2021-03-21 20:27:49 · 387 阅读 · 0 评论 -
HBase高可用配置
HBase高可用配置在HBase中Hmaster负责监控RegionServer的生命周期,均衡RegionServer的负载,如果Hmaster挂掉了,那么整个HBase集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以HBase支持对Hmaster的高可用配置。关闭HBase集群(如果没有开启则跳过此步) [hadoop@hadoop102 HBase]$ bin/stop-HBase.sh在conf目录下创建backup-masters文件 [hadoop@hadoop原创 2021-03-21 20:18:13 · 451 阅读 · 0 评论 -
Hbase查看数据库状态相关命令函数
Hbase查看数据库状态相关命令函数使用hbase shell可以进入一个shell命令行界面![hadoop@hadoop102 HBase]$ bin/HBase shell1. 查看集群状态使用status可以查看集群状态,默认为summary,可以选择‘simple’和‘detailed’来查看详情。hbase(main):011:0> status1 active master, 0 backup masters, 3 servers, 0 dead, 0.6667 avera原创 2021-03-21 20:13:37 · 3397 阅读 · 0 评论 -
Hbase表数据操作相关命令函数
Hbase数据操作相关命令函数3.1 scanscan命令可以按照rowkey的字典顺序来遍历指定的表的数据。scan ‘表名’:默认当前表的所有列族。scan ‘表名’,{COLUMNS=> [‘列族:列名’],…} : 遍历表的指定列scan ‘表名’, { STARTROW => ‘起始行键’, ENDROW => ‘结束行键’ }:指定rowkey范围。如果不指定,则会从表的开头一直显示到表的结尾。区间为左闭右开。scan ‘表名’, { LIMIT => 行原创 2021-03-21 20:10:02 · 542 阅读 · 0 评论 -
Hbase表的操作相关命令函数
Hbase表的操作相相关命令函数2.1. listhbase(main):008:0> listTABLE 0 row(s) in 0.0410 secondslist后可以使用*等通配符来进行表的过滤!2.2 create创建表时,需要指定表名和列族名,原创 2021-03-21 20:03:53 · 541 阅读 · 0 评论 -
Hbase中的二级索引
Hbase中的二级索引一、什么是索引索引是一种数据结构,为了加速查询!HBase中的一级索引指,数据在写入region时,会根据rowkey进行排序后写入,之后regionserver在加载region时,会自动为当前region的rowkey创建一个LSM树的索引!方便对当前region,rowkey的查询!HBase 里面只有 rowkey 作为一级索引, 如果要对库里的非 rowkey 字段进行数据检索和查询, 往往要通过 MapReduce/Spark 等分布式计算框架进行,硬件资源消原创 2021-01-31 19:06:31 · 4053 阅读 · 0 评论 -
Phoenix之协处理器
Phoenix之协处理器phoneix的本质就是定义了大量的协处理器,使用协处理器帮助我们完成HBase的操作!1.简介在RDMS中,可以定义function(函数): 在关系型数据库中,必须使用mysql | oracle提供的语法,来定义一个函数!trigger(触发器): 在关系型数据库中,可以定义触发器,触发器会在执行写操作(insert,update,delete)时,触发触发器的代码,完成一段功能!procedure(存储过程): 在关系型数据库中,可以定义存储过程,存储过程原创 2021-01-31 17:17:18 · 901 阅读 · 0 评论 -
Phoenix 简介及使用方式
一、Phoenix 简介Phoenix 最早是 saleforce 的一个开源项目,后来成为 Apache 的顶级项目。Phoenix 构建在 HBase 之上的开源 SQL 层。能够让我们使用标准的 JDBC API 去建表, 插入数据和查询 HBase 中的数据, 从而可以避免使用 HBase 的客户端 API。在我们的应用和 HBase 之间添加了 Phoenix, 并不会降低性能, 而且我们也少写了很多代码。phoneix的本质就是定义了大量的协处理器,使用协处理器帮助我们完成HBase的操作原创 2021-01-31 17:01:52 · 8118 阅读 · 0 评论 -
OLAP分类
OLAP分类一、OLAP(online analytical processing)在线分析OLAP(online analytical processing)是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。从各方面观察信息,也就是从不同的维度分析数据,因此OLAP也成为多维分析。二、OLAP分类三、OLAP Cube...原创 2021-01-22 16:47:27 · 285 阅读 · 0 评论 -
HBase优化|高可用|预分区|内存|基础优化
HBase优化目录HBase优化一、高可用二、预分区三、RowKey设计四、内存优化五、基础优化一、高可用在HBase中Hmaster负责监控RegionServer的生命周期,均衡RegionServer的负载,如果Hmaster挂掉了,那么整个HBase集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以HBase支持对Hmaster的高可用配置。核心:避免单点故障。Master: 保证Master不会单点故障!RegionServer: 多个!1.关闭HBase集群(如原创 2021-01-22 16:23:28 · 174 阅读 · 0 评论 -
使用Spark读写Hbase中数据
使用Spark读取Hbase中数据一、pom文件依赖配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 h原创 2021-01-21 14:10:13 · 1113 阅读 · 0 评论 -
Hbase和Hive集成
Hbase和Hive集成1.目的HBase是一个数据库! 是一个NoSQL数据库!Hive是一个分析工具! 类SQL分析框架!HBase和Hive集成的目的是使用Hive来分析HBase中存储的数据!https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration2.使用场景环境要求:①有HIVE_HOME 和 HBASE_HOME这两个环境变量!②hive集成hbase的jar包:hive-hbase-handler-1.原创 2021-01-20 20:55:10 · 178 阅读 · 0 评论 -
hbase2.0.5中Region的切分策略
Region的切分目的: 当表中数据增大时,将表切分多个region,可以将多个region负载到多个regionserver,以达到负载均衡!hbase2.0.5中的切分策略:<property> <name>hbase.regionserver.region.split.policy</name> <value>org.apache.hadoop.hbase.regionserver.SteppingSplitPolicy</v原创 2021-01-20 20:50:49 · 441 阅读 · 0 评论 -
Hbase的刷写和合并机制
一、flush1.1 flush作用memstore 达到 flush条件时,memstore所有的数据会被排序,之后书写到storefile! HFile其中保存的数据都是有序的!作用:①维持数据有序地存储到HFile中②将部分过期的数据,在刷写时删除。也就是在刷些时,每个store的storefile中最多保留VERSIOINS个版本的cell1.2 MemStore刷写时机:当某个memstore的大小达到了hbase.hregion.memstore.flush.size(默认原创 2021-01-20 20:43:27 · 446 阅读 · 0 评论 -
为什么Hbase中列族的数量越少越好
为什么列族的数量越少越好?在HBase中列,是在插入数据时产生,动态产生。因此如果有100个列,他们是一个列族还是两个列族,并没有什么区别,无非是在HDFS的存储的目录不同列族过多,regionserver在初始化时,需要创建大量的store对象,每个store对象还需要初始化大量的memstore对象,占用大量的内存,要求集群配置高memstore在flush时,只要一个store对象的memstore的大小超过了溢写的阈值(128M),所有store都会执行flush,因此列族越多,执原创 2021-01-20 09:44:12 · 822 阅读 · 0 评论 -
Hbase读写流程
Hbase读写流程一、写数据流程写流程:1)Client先访问zookeeper,获取hbase:meta表位于哪个Region Server。2)访问对应的Region Server,获取hbase:meta表,根据读请求的namespace:table/rowkey,查询出目标数据位于哪个Region Server中的哪个Region中。并将该table的region信息以及meta表的位置信息缓存在客户端的meta cache,方便下次访问。3)与目标Region Server进行通讯;原创 2021-01-19 21:26:05 · 167 阅读 · 0 评论 -
Hbase查询数据常用函数
Hbase Shell常用指令1、Namespace相关创建Namespace: create_namespace ‘命名空间名称’查看Namespace信息: describe_namespace ‘命名空间的名称’查看所有的Namespace: list_namespace删除Namespace: drop_namespace ‘命名空间的名称’ [删除命名空间的时候命名空间下不能有表]修改Namespace: alter_namespace ‘命名空间的名称’,{属性名=属性值}查看命原创 2021-01-19 21:14:04 · 723 阅读 · 0 评论 -
Hbase中RegionServer架构
一、Hbase整体架构Hbase整体架构如下:由Master和RegionServr两部分组成详情请见我的另一篇博客:https://blog.csdn.net/weixin_42796403/article/details/112791448二、Hbase中RegionServer架构1)StoreFile保存实际数据的物理文件,StoreFile以Hfile的形式存储在HDFS上。每个Store会有一个或多个StoreFile(HFile),数据在每个StoreFile中都是有序的。原创 2021-01-19 21:05:51 · 393 阅读 · 0 评论 -
Hbase核心API操作
Hbase核心API操作一、获取Configuration对象Connection代表对集群的连接对象,封装了与实际服务器的低级别单独连接以及与zookeeper的连接。Connection可以通过ConnectionFactory类实例化。Connection的生命周期由调用者管理,使用完毕后需要执行close()以释放资源。Connection是线程安全的,多个Table和Admin可以共用同一个Connection对象。因此一个客户端只需要实例化一个连接即可。反之,Table和Admin原创 2021-01-19 20:54:14 · 185 阅读 · 0 评论 -
hbase如何做到实时读写
hbase如何做到实时读写①hbase借助内存进行读写②K-V结构存储数据,保证数据在大量增加时,也不会影响单个数据的查询效率③使用索引(LSM树)④BlockCache + BloomFilter ,加快查询⑤可扩展(在高并发的情况下,Region可以自动切分,扩展集群的RegionServer增强处理能力)⑥列式存储(HFile)...原创 2021-01-19 09:40:45 · 783 阅读 · 1 评论 -
Hbase为什么支持随机读写
Hbase为什么支持随机读写基于HDFS,HDFS只支持追加写,不支持随机写!随机读写: 本质上还是追加写,基于版本号,实现随机写 append + 版本控制update + delete : 随机写insert : 追加写默认只返回时间戳最大的数据!keyvaluetimestampr1:cf1:name2016011r1:cf1:name3016014r1:cf1:nameDelete16015...原创 2021-01-19 09:40:25 · 1760 阅读 · 2 评论 -
HBase是什么
1.是什么hadoop的大数据的分布式,可扩展的数据库使用场景:对大数据进行实时和随机读写目的:可以保存 十亿级别行 * 百万级别列的 表是一个基于版本号的数据库依赖于HDFS进行数据的分布式存储2.如何深入学习看源码或学习官方文档:http://hbase.apache.org/book.html#arch.overview...原创 2021-01-18 18:46:36 · 194 阅读 · 0 评论 -
HBase基本架构
HBase基本架构架构角色:1)Region ServerRegionServer是一个服务,负责多个Region的管理。其实现类为HRegionServer,主要作用如下:对于数据的操作:get, put, delete;对于Region的操作:splitRegion、compactRegion。客户端从ZooKeeper获取RegionServer的地址,从而调用相应的服务,获取数据。2)MasterMaster是所有Region Server的管理者,其实现类为HMaster,主原创 2021-01-18 18:36:35 · 278 阅读 · 0 评论 -
HBase逻辑和物理存储结构
目录HBase数据模型1. HBase逻辑结构2. HBase物理存储结构3. 数据模型(相关术语)1)Name Space2)Table3)Row4) RowKey5)Column Family6) Column Qualifier7)TimeStamp8)Cell9)RegionHBase数据模型逻辑上,HBase的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从HBase的底层物理存储结构(K-V)来看,HBase更像是一个multi-dimensional map。1. H原创 2021-01-18 18:32:28 · 1268 阅读 · 0 评论 -
Hbase的优缺点
一、Hbase的优点HDFS有高容错,高扩展的特点,而Hbase基于HDFS实现数据的存储,因此Hbase拥有与生俱来的超强的扩展性和吞吐量。HBase采用的是Key/Value的存储方式,这意味着,即便面临海量数据的增长,也几乎不会导致查询性能下降。HBase是一个列式数据库,相对于于传统的行式数据库而言。当你的单张表字段很多的时候,可以将相同的列(以regin为单位)存在到不同的服务实例上,分散负载压力。二、Hbase的缺点架构设计复杂,且使用HDFS作为分布式存储,因此只是存储少量数据原创 2021-01-18 18:22:11 · 9295 阅读 · 0 评论 -
HBase的特点
HBase的特点海量存储HBase适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据。这与HBase的极易扩展性息息相关。正式因为HBase良好的扩展性,才为海量数据的存储提供了便利。列式存储这里的列式存储其实说的是列族存储,HBase是根据列族来存储数据的。列族下面可以有非常多的列,列族在创建表的时候就必须指定。极易扩展HBase的扩展性主要体现在两个方面,一个是基于上层处理能力(RegionServer)的扩展,一个是基于存储的扩原创 2021-01-18 18:17:39 · 747 阅读 · 0 评论 -
HBase发展简史
一、HBase定义HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。Hbase面向列存储,构建于Hadoop之上,类似于Google的BigTable,提供对10亿级别表数据的快速随机实时读写!二、Hbase的发展历史2006年Google技术人员Fay Chang发布了一篇文章Bigtable: ADistributed Storage System for Structured Data。该文章向世人介绍了一种分布式的数据库,这种数据库可以在局部几台服务器崩溃的情况下继原创 2021-01-18 18:14:23 · 1371 阅读 · 0 评论 -
NoSQL数据库发展背景
NoSQL数据库发展背景1.1 关系型数据库的查询瓶颈当用户表的数据达到几千万甚至几亿级别的时候,对单条数据的检索将花费数秒甚至达到分钟级别。实际情况更复杂,查询的操作速度将会受到以下两个因素的影响:高并发的更新(插入、修改、删除)操作。大中型网站的并发操作一般能达到几十乃至几百并发,此时单条数据查询的延时将轻而易举地达到分钟级别。多表关联后的复杂查询,以及频繁的group by或者order by操作,此时,性能下降较为明显。1.2 CAP定理分摊读写压力的有效方式是将单个关系原创 2021-01-18 17:26:04 · 655 阅读 · 0 评论 -
CAP定理的由来
CAP定理分摊读写压力的有效方式是将单个关系型数据库扩展为分布式数据库。但是,随之而来的问题则是很难保证原子性。没有了原子性,事务也无从谈起,关系型数据库也就没有了存在的意义。为了保证原子性,则需要增加很多额外的必要操作,此时一次写操作的性能却面临大幅下降了。20世纪90年代初期Berkerly大学有位Eric Brewer教授提出了一个CAP理论。全称是Consistency Availability and Partition tolerance。Consistency(强一致性):数据更新原创 2021-03-04 23:55:33 · 352 阅读 · 0 评论 -
关系型数据库的查询瓶颈
关系型数据库的查询瓶颈当用户表的数据达到几千万甚至几亿级别的时候,对单条数据的检索将花费数秒甚至达到分钟级别。实际情况更复杂,查询的操作速度将会受到以下两个因素的影响:高并发的更新(插入、修改、删除)操作。大中型网站的并发操作一般能达到几十乃至几百并发,此时单条数据查询的延时将轻而易举地达到分钟级别。多表关联后的复杂查询,以及频繁的group by或者order by操作,此时,性能下降较为明显。...原创 2021-01-18 17:18:37 · 429 阅读 · 0 评论