Hbase
稳哥的哥
babe babe babe wowowowowowoow~!
寒江孤影、江湖故人
展开
-
Hbase - 之Phoenix-JDBC连接、命名空间映射
Hbase - 之Phoenix-JDBC连接、命名空间映射1、在客户端本地添加hbase-site.xml<configuration> <property> <name>hbase.zookeeper.quorum</name> <value>shufang101:2181,shufang102:2181,shufang103:2181</value> <description>外部zoo原创 2021-07-14 21:58:12 · 669 阅读 · 1 评论 -
Hbase-之Bloom Filter布隆过滤器 & hbase请求交互
Hbase-之Bloom Filter布隆过滤器&Hbase1 BloomFilter是什么?布隆过滤器,以它的创始人Burton Howard Bloom的名字命名,首先明确一个点,它只是一个数据结构,这个数据结构最开始被设计成预测一个给定的元素在某个数据集中是否存在,它有如下特点:精确的结果不一定准确,也就是返回的a存在于集合A结果不一定是准确的;不精确的结果一定是对的,即a不存在与集合A那是约等于100%是准确的。布隆过滤器很适用于类似于Hbase这样的大数据集,如果想了解更多B原创 2020-12-03 16:12:10 · 1466 阅读 · 0 评论 -
Hbase-之Coprocessor实现implements & 加载load
Hbase-之Coprocessor实现implements与加载load1 Coprocessor简介小伙伴们,如果需要了解更多协处理器相关的原理请参阅:赖明杰的博客(早期)还请参阅:怎么使用hbase-协处理器这里面有好多好多的东西,很全面。Hbase的协处理器是继Goolgle的Bigtable的协处理器之后衍生出来的一个模型;协处理器允许将用户的自定义代码直接运行在RegionServer上,从而对Hbase中的数据进行访问与管理。虽然对于开发者来说,coprocessor有着良好的特原创 2020-12-03 11:45:23 · 176 阅读 · 0 评论 -
Hbase-之数据批量导入bulk load(使用场景、用法)
Hbase-之数据批量导入Hbase包含几种将数据导入到Table的方式用Mapreduce方式通过TableOutoutFormat写入Table使用Client的API,通过Put的方式bulk load使用一个MR的任务用Hbase的数据格式将数据输出到指定HDFS的HFile(StoreFile),然后将生成的StoreFile加载到运行中的Hbase集群使用bulk load批量导入数据相比其它方式:占用更少的CPU和网络资源开销1 bulk load使用场景If you原创 2020-12-02 16:46:11 · 4103 阅读 · 0 评论 -
Hbase-之StoreFile的Compaction(手动major compaction、管理compaction、compaction的策略以及相关配置参数)
Hbase-之StoreFile的Compaction1 前言在谈及storefile的compaction内容之前,我们先搞清楚几个模棱两可的术语:StoreFile实际上是针对Hbase的专业术语,实际上与HFile是同一个概念,在compaction的期间,用StoreFile代替HFile称呼会更好;Store与ColumnFamily实际上是同一个概念,我们可以称StoreFile与Store有关系或者StoreFile与ColumnFamily有关系;假如你想用StoreFile代替原创 2020-12-02 11:55:12 · 2009 阅读 · 0 评论 -
Hbase-之HFile存储结构解析
Hbase-之HFile存储结构解析StoreFile(HFile)是Hbase最终存储数据的介质,这里需要了解几个Hbase相关的名词BlockKeyValue具体的HFile的结构图示如下:1 BlockHFile是底层存储Hbase数据的Block-based-index-File,而每个HFile又是由N个Blocks组成的,Block是基于ColumnFamily的,不同的ColumnFamily的数据存储在不同的Store下的不同的Hfile中的不同Block中;HFile原创 2020-12-01 16:44:05 · 1389 阅读 · 0 评论 -
Hbase-之Scan流程以及角色解析
Hbase-之Scan流程以及角色解析Hbase的扫描流程如下:当Client对Hbase的Table发起一个scan请求,Hbase会为该表生成1到N个RegionScanner对象,每个RegionScanner对应一个Region;每个RegionScanner又包含一个1到N个StoreScanner的列表,每个StoreScanner对应一个Store;每个StoreScanner同时又包含一个0到N个StoreFileScanner的列表;一个MemStore对应的KeyValu原创 2020-11-30 18:13:03 · 343 阅读 · 0 评论 -
Hbase之MemStore-Flush
Hbase之MemStore-Flush1 Store & memstore首先我们先明确Hbase组件之间的关系,在1个Region中包含着多个Store,每个Store对应一个ColumnFamily,每个Store hosts1个MemStore和0~N个StoreFiles(HFile);2 memstore flush流程而memstore中存储着store对应的修改信息,修改单元为Cell/KeyValue,当请求flush的时候,当前的memstore将会被复制一个快照,然后被原创 2020-11-30 16:57:26 · 252 阅读 · 0 评论 -
Hbase-之在线Region Merge
Hbase-之在线Region MergeHbase支持手动与自动Region的Splitting,而且又很完善的策略与算法,虽然Hbase支持Region之间的Merge操作,但是还在继续完善中,目前只能支持手动的Merge;Hbase的Region Merge操作与Splitting操作不一样,因为Merge操作需要HMaster、HRegionServer的共同参与,整个Merge的操作流程如下:1)Client发送Merge的RPC请求到HMaster;2)然后Master将Regions原创 2020-11-30 14:20:25 · 446 阅读 · 0 评论 -
Hbase-之Region Split实操
Hbase-之Region Split实操(如何处理递增rowkey,时间序列rowkey,热点Region问题)1 Region拆分策略指定除了Hbase原生支持的3种splitpolicy,Hbase还允许Client自定义拆分策略,在Hbase-0.94之前,只需要重写RegionSplitPolicy,在Hbase-0.94+版本,只需要extendsIncreasingToUpperBoundRegionSplitPolicy就可以;如何指定拆分策略,有3种方式,拆分策略可以针对全局所有的H原创 2020-11-30 13:50:51 · 1234 阅读 · 0 评论 -
Hbase之-Region是什么?如何split?如何merge?(region数量,region拆分策略,region split)
Hbase之-Region是什么?如何split?(region数量,region拆分策略,region)拆分流程)具体可以参考博客:Region是什么?怎么玩?在Hbase中,Region是分布式Table中的分区存储单元,每一个Region代表特定rowkey区间内的数据片段,每个Region中存储着1到多个存储Store,每个Store对应Table中的一个ColumnFamily,每个Store中包含一个MemStore的写缓存。一个RegionServer下的所有的Region共享一个Hlo原创 2020-11-25 21:02:41 · 2061 阅读 · 0 评论 -
Hbase-之架构及schema角色命名
Hbase-之架构及角色命名图示Hbase中有一些概念,可能有时候会傻傻分不清,不知道如何看个角色的职责,这里我从官网记录一下Hbase的架构以及在HDFS上的层级展示,首先我们先明确一些名词概念如下。Table (HBase 中的表) Region (每个表由1个或多个Region组成,每个Region中代表一段rowkey范围的Table的数据) Store (每个ColumnFamily原创 2020-11-24 16:22:52 · 190 阅读 · 0 评论 -
Hbase-之Hmaster and RegionServer角色解析(含WAL、BlockCache缓存使用)
Hbase-之Hmaster and RegionServer角色解析(含WAL、BlockCache缓存使用)1 HMasterHMaster是Hbase主服务的进程实例,HMaster负责监听Hbase集群所有的RegionServer实例,而且他还负责元数据的修改、与ZK,HDFS之间的交互,在一个分布式集群中,HMaster通常与NameNode运行在同一个节点。HMaster可以实现高可用,但是在启动Hbase集群的时候,所有的节点都可能成公启动active的HMaster,集群之间是存在原创 2020-11-23 11:58:34 · 1430 阅读 · 3 评论 -
Hbase-之Client-scan请求过滤器(request filter)
Hbase之Client-scan请求过滤器Filter0 前言在Hbase的Client对Hbase的数据进行请求的时候,实际上是可以通过过滤器进行数据的筛选的,Hbase的客户端请求过滤器大致分为5种类,具体详情请参考官方。FilterList 【传入过滤器列表,按照MUST_PASS_ONE \MUST_PASS_ALL的规则进行使用】Column Value Filter【为列值维度的过滤,通过特定的value与具体column的值进行匹配】MetaData Filter【为元原创 2020-11-19 14:41:20 · 856 阅读 · 0 评论 -
Hbase-之Client与服务端交互步骤流程解析
Hbase之Client与服务端交互官网参考地址,请注意~~~~~~~1、 Client访问交互Hbase的Client怎么与Server端进行交互的呢?具体步骤可以分为以下几步首先Client通过访问hbase:meta元数据表找到指定范围row所处的regions,以及对应的RegionServers;在确定region之后,Client不会与Master进行交互,而是直接与RegionServer交互,让其开启对指定region的服务;然后RegionServer开始处理对应的read原创 2020-11-13 16:20:00 · 1237 阅读 · 0 评论 -
Hbase-之元数据解读-catalog table(hbase:meta)
Hbase源数据解读catalog tableHbase的catalog table存在在Hbase系统中的hbase:meta表中(之间叫.META.),但是该表对Hbase shell是不可见的,但是实际上,它和其它的表没有任何区别。Hbase:meta表的存储路径会被存储在Zookeeper的hbase节点下面1、 hbase:meta的表结构rowkey的格式为:(table,region‘s startkey,region id)table就是表名region’s startkey原创 2020-11-12 17:37:25 · 2092 阅读 · 3 评论 -
Hbase-之容错机制解读
Hbase之容错机制解读当一个regionserver挂掉之后,整个集群会做出什么样的容错调整呢?首先该regionserver上的所有的region都变成不可用状态,因为该regionserver的宕机Master会立马查明Regionserver连接失败region将会重新被负载均衡分配到其它可用的regionserver进行管理,就和启动Hbase的时候一样在线的query操作将会处于重试的状态,而不是丢失query的请求会在一段时间内切换到一个新的RegionServer# 切换的原创 2020-11-12 17:35:53 · 480 阅读 · 0 评论 -
Hbase-之Region状态解析
Hbase之Region状态Region是Hbase中数据管理单元,Region可以有以下多种状态。OFFLINE代表Region是下线状态,而且未开放OPENING代表Region正处于被打开的执行状态,但是还未被开放OPEN代表Region此时已经开放,而且RegionServer此时已经通知Master,此时该Region是可以投入使用的FAILED_OPENRegionServer打开Region失败CLOSINGRegion正在被RegionSer原创 2020-11-12 17:33:43 · 2343 阅读 · 0 评论 -
Hbase-之操作性能优化配置-RPC优化
Hbase-之操作性能优化配置-RPC优化1 调整Hbase server的RPC处理能力这里的server只要指的是regionserver,因为毕竟Hbase实际搞事情的还是regionserver,我们可以在hbase-site.xml中配置主要取决你集群中regionserver中的核数,x可以配置hbase.regionserver.handler.count = x可选的配置,按照不同的服务将读、写请求队列分别划分成不同的请求队列,参数为hbase.ipc.server.call原创 2020-10-27 16:09:58 · 1170 阅读 · 0 评论 -
Hbase-之hbase shell使用包含预分区的几种方式
Hbase-之hbase shell使用(预分区…)1 hbase shell入门最简单的入门进入交互式界面cd /hbase-2.4.2./bin/hbase shell常用的hbase shell练习可以参考 hbase shell 练习# 查看hbase shell指南help# 创建table testcreate 'test','cf'# 列出table,判断是否存在listlist 'test'# 描述表的信息describe 'test'# put数据原创 2020-10-27 15:40:09 · 541 阅读 · 0 评论 -
Rowkeys与Region Split之间的关系
Rowkeys与Region Split之间的关系⚠️如果你在创建表的时候进行了预分区,那么弄清楚你的rowkey对应的数据会分布在region区间内是十分客观重要的!⚠️1 为啥重要?让我们看一个例子,考虑将可以展示的字符的16进制值的作为rowkey所在region的的Start-Key,Start-Key范围从(“0000000000000000” to “ffffffffffffffff”),通过Bytes.split方法运行这些rowkey范围,这个方法是在使用Admin.createT原创 2020-10-26 14:59:23 · 371 阅读 · 0 评论 -
RegionServer columnFamily设计与rowkey设计
RegionServer columnFamily设计与rowkey设计1 前言参考官网地址本文主要讲解region的大小,内存的大小,HDFS的备份因子对Hbase的集群影响,最终的结果就是你实际需要的内存往往比你想象中的要多。“Lars Hofhansl说,就我个人而言我只会给我Hbase的每台服务节点配置6T左右的磁盘空间(除非你需要面临大量读操作的工作负载),同时Java Heap堆内存保证在32G,保证20个region,128M的memorystore,其它的资源配置保持默认。”2原创 2020-10-25 16:04:04 · 217 阅读 · 0 评论 -
Hbase-之架构设计(schema design)
Hbase-之架构设计(schema design)Hbase架构设计主要是你设计表和模型的时候要做的事,你得清楚~~1 前言当前主流的bigtable有多种,目前这里只举3个栗子Google BigtableHypertable(开源)Hbase(开源)Hypertable和Hbase实际上都是在Google Bigtable基础上衍生出来的产物,其中Hypertable与Google Bigtable是十分相似的,除了存储所基于的文件系统不同其它基本一样,Hypertable基于HD原创 2020-10-24 11:43:47 · 330 阅读 · 0 评论 -
Hbase之删除(delete)操作与version的关系
Hbase之删除(delete)操作解析本文主要讲解Hbase内部的数据删除策略,具体可以参考以下Lars Hofhansl的博客:Scanning in HBase: Prefix Delete Marker针对一个指定的列的一个指定版本针对一个列的所有版本针对一个指定的列族的所有列(column qualifier)当删除一整行数据的时候,Hbase内部会针对每个column family创建一个墓碑tombStone,注意,不是针对每个单独的Column Qualifier列。Hb原创 2020-10-23 23:15:03 · 1652 阅读 · 0 评论 -
Hbase之数据模型与操作
Hbase之数据模型与操作0 前言Hbase是apache社区维护的KV、列式存储的NoSQL数据库,类似于goolgle的Bigtable,可以依附于不同的文件系统,如HDFS,S5,就如bigtable一样依附于GFS文件系统一样。1 Data Model(数据模型)1.1 NameSpacenamespace就类似于传统数据库中的database,主要是用来对不同的表进行分类与管理,Hbase默认已经定义好的namespace有2个:default、hbase。常用的namespace的操原创 2020-10-21 13:57:22 · 315 阅读 · 0 评论 -
Hbase简要介绍
Hbase简要介绍参考网址:http://chi.hbase.hk/About/HBase官方中文文档:http://abloz.com/hbase/book.htmlWhat is Hbase?众所周知 ,Hadoop是大数据的业界标准,The De Facto Standard,而Hbase便是基于Hadoop生态的大数据库。Hbase与Hadoop的关系就是类似于 <=> BigTable与GFS的关系Why is Hbase?传统数据库传统的数据库将用户局限于只能够使原创 2020-09-27 15:10:45 · 127 阅读 · 0 评论