
HBase基础
HBase的基础原理、场景
年更yao
这个作者很懒,什么都没留下…
展开
-
如何写一个代码分析文档
持续更新目录1.给出这段代码的功能描述,让读者知道这篇文章主要介绍哪一部分2.这段代码入口方法,以及如何找到入口类、方法3.给出结论的代码调用图4.具体代码说明5.总结1.给出这段代码的功能描述,让读者知道这篇文章主要介绍哪一部分2.这段代码入口方法,以及如何找到入口类、方法3.给出结论的代码调用图(1)跟那些组件有交互(2)跟哪些关键类代码有交互...原创 2018-11-08 01:16:23 · 9391 阅读 · 0 评论 -
如何从0开始了解一个存储引擎
根据本人浅薄的经验,了解一个数据引擎可能涉及以下问题:目录1. 概念2. 架构3. 部署4. 元数据5. 写数据链路6. 查询链路阶段总结一些经常被关心的功能和特点7. 旧数据清理8. 数据的hash9. 离线文件导入导出10. 故障恢复时间11. 对比其他DB1. 概念 先粗略看看是否适合自己的需求,从官网/社区/技...原创 2018-11-08 00:16:03 · 803 阅读 · 1 评论 -
海量数据处理 面试题
作者:小橋流水出处:http://www.cnblogs.com/youwang/archive/2010/07/20/1781431.html1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中转载 2014-02-22 11:15:41 · 647 阅读 · 0 评论 -
Hadoop系统通信协议介绍
文章转自:http://weilaiyxj.iteye.com/blog/913166本文约定: DN: DataNode TT: TaskTracker NN: NameNode SNN: Secondry NameNode JT: JobTracker 本文介绍Hadoop各节点和Client之间通信协议。 Hadoop的通信是建立在RP转载 2014-02-22 11:18:05 · 1169 阅读 · 0 评论 -
lindorm CCSMAP
原理说明[HBASE-20312] CCSMap: A faster, GC-friendly, less memory Concurrent Map for memstore - ASF JIRAhttps://issues.apache.org/jira/browse/HBASE-20312代码[HBASE-20717] Implement CCSMap - a better concurrent map with compacted data structure - ASF JIRAhtt..原创 2021-10-22 13:41:02 · 651 阅读 · 0 评论 -
Compact的触发
Compact(包含Minor Compact和Major COMpact)触发方式1.memstore flush之后触发触发条件:flush block时间超过hbase.hstore.blockingWaitTime(默认90s)2.后台线程CompactionChecker定期触发CompactionChecker定期检查是或否需要做Compact,周期为:hba...原创 2020-04-11 09:55:02 · 525 阅读 · 0 评论 -
HBase ACL机制
Master 空集群怎么初始化表和znode的 空集群:hbase-site配置中Master要加载ACL协处理器;空集群初始化表,在AccessController的postStartMaster中初始化的; 启动怎么加载权限数据的(从zk加载还是从表加载) 从zk加载数据 RegionServer zk中的数据怎么...原创 2020-03-26 10:33:56 · 400 阅读 · 0 评论 -
白话-HBase Quota V2
背景Quota背景:当请求量异常大,会造成RegionServer不稳定所以需要控制RegionServer单位时间执行的流量设置Quota的命令,目前设置的LIMIT语义都是 (单个RegionServer上可以给这个user/table/namespace的请求量,而不是整个集群/整个表/整个namespace的) //设置Quota hbase> s...原创 2020-02-11 17:26:04 · 546 阅读 · 0 评论 -
HBase-Compact-PressureAwareCompactionThroughputController分析
请求链路配置RegionServer启动的时候,初始化加载配置 参数 含义 下文简称 hbase.regionserver.throughput.controller 对应的策略类 目前只有两种,一种限流,一种不限流 hbase.hstore.compaction.th...原创 2020-01-25 15:18:48 · 1168 阅读 · 1 评论 -
zookeeper遍历和设置acl
import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.apache.hadoop.hbase.util.Bytes;import org.apache.zookeeper.CreateMode;import org.apache.zookeeper.K原创 2014-09-15 18:03:48 · 6115 阅读 · 0 评论 -
白话HBase-5分钟了解HBase架构
这里写自定义目录标题欢迎使用Markdown编辑器1.分布式的2.增加管理者HMaster3.管理者的高可用HMaster4.底层存储5.客户端请求欢迎使用Markdown编辑器1.分布式的HBase是一个分布式存储引擎:那么它是由很多Server组成的,RegionServer可以达到几千上完个节点2.增加管理者HMaster这么多Server,需要一个管理者,来server列表,t...原创 2018-10-29 19:49:46 · 823 阅读 · 1 评论 -
白话HBase-02-HMaster
版本:HBase-2.1.1原创 2018-11-10 17:09:31 · 270 阅读 · 0 评论 -
写技术文档需要注意什么
技术文档总是令人头大,一是文档内容可能不够全面,可读性差,可操作性差二是不知该从何写起,在此简单总结一下之前的内容和思路: 目录一.操作类、代码demo文档二.技术介绍类文档一.操作类、代码demo文档 此文档用于解决:xxxx 给出具体登录哪个机器/哪类机器,ssh登录还是通过堡垒机登录,或者其他登录方式 没有登录权限找谁开通 给出...原创 2018-11-07 18:13:18 · 2157 阅读 · 0 评论 -
白话HBase-客户端缓存 region位置信息
背景第一次请求某个表的时候,table.get table.scan 等api通常都比较慢,但是第一次慢了之后,后面有很快,是什么原因导致的呢?我们直接从源码来看看 一般用户使用方法HTableInterface table=connection.getTable(xxxx)Get get=new Get(“zzz”.getBytes());table.g...原创 2018-11-05 19:47:44 · 1554 阅读 · 0 评论 -
白话HBase-RegionServer如何判断Region本地化百分比的
说明本地化百分比=这个region在当前这个机器的block逻辑数据大小/region下文件block的总逻辑大小 入手已知HRegionServer中心跳汇报给HMaster的信息中,有数据本地化百分比的指标RegionLoad中,我们需要看看RegionLoad这个数据是怎么产生&计算的开始源码1.HRegionServer这个方法是定时被调用构造最新Regi...原创 2018-12-19 15:55:37 · 2075 阅读 · 0 评论 -
白话HBase-快照snapshot
背景快照就是把某个表的某个瞬时的状态像照照片一样固定下来,谓之曰快照思考那么既然要保留某个瞬时的数据状态,一直有写入的数据会不会影响快照的结果?会增加存储的数据量吗?快照能用来做什么?解答1.逻辑:写入的新数据不会影响快照的结果2.资源:存储的数据量会有一定增加,但不是做快照的时候直接就翻倍了,而是做完compact之后,放到归档目录下面本来要被清理掉的文件,现在因为有li...原创 2018-12-18 14:29:16 · 1426 阅读 · 2 评论 -
如何参与HBase社区建设-00-流程-社区建议-与个人思考
为团队同学培训准备的一点内容:官网答案:http://hbase.apache.org/book.html#submitting.patches.create流程:1.下载代码主要还是看官网http://hbase.apache.org/book.html#_configuration_from_scratch2.编译:官网http://hbase.apa...原创 2019-03-20 15:37:23 · 340 阅读 · 0 评论 -
HBase在特征工程中的应用
目录前言应用场景介绍Get进阶-前缀匹配扫描-Scan灵活的动态列多版本快照总结前言HBase是一款分布式的NoSQL DB,可以轻松扩展存储和读写能力。主要特性有:按某精确的key获取对应的value(Get)通过前缀匹配一段相邻的数据(Scan)多版本动态列服务端协处理器(可以支持用户自定义)TTL:按时间自动过期...原创 2019-04-16 13:31:16 · 1377 阅读 · 1 评论 -
HBase-代码分析-客户端-读链路
HTable.get方法-->Callable->get中实现的具体call方法==>ProtobufUtil.get(getStub(), getLocation().getRegionInfo().getRegionName(), getReq, controller);==>new RegionServerCallable 构造一个ca...原创 2019-05-10 18:49:40 · 254 阅读 · 0 评论 -
HBase-客户端-重试机制
背景HBase是一个分布式数据库当遇到宕机,客户端如何识别数据的迁移?当遇到数据region 分裂,如何识别到最新的数据region当遇到网络抖动等导致请求失败,客户端如何处理失败的请求?入手首先,我们知道hbase客户端有重试次数参数设置hbase.client.retries.number在很多类中被调用其中在RpcRetryingCallerFact...原创 2019-05-10 18:54:06 · 762 阅读 · 0 评论 -
HBase scan优化之设置 timerange
背景当一个表的查询,是带有时间范围的;并且此表下面数据时间跨度很大,怎样才能扫更少的数据呢?HBase的scan操作给出了一个timerange的设置,可以只扫描在timerange范围内的文件。直接减少了扫描的文件量.(思考:如果用户可能存在一些写入断掉/补数等行为,可以适当放宽timerange,比如表中数据是3个月,查询数据在2个小时内,那么可以timerang...原创 2019-09-17 22:33:13 · 7280 阅读 · 0 评论 -
HBase 主主replication
本文只做原理描述,未经过线上业务长时间验证写操作: HBase双活策略,写操作实现有两种方式: 1.用户业务端双写,同一份数据写两个集群 优点:不用关心底层异常等问题缺点:需要启动两个写HBase的任务2.通过HBase replication机制实现,双向replication功能测试是通过的 优点:只需要启动一套写HBase的任务,如果有一部分数据写了A集群,另外一部分写了...原创 2018-06-25 18:26:00 · 2044 阅读 · 6 评论 -
HBase-replication
replication相关znode结构replication相关参数1.replication.source.log.queue.warn ReplicationSource 中待处理的 HLog 数量达 到该参数值时,打印警告,默认值为 22.replication.source.size.capacity 每次向 sink 端同步的数据大小不能超过该阀 值,默认为 64M;3.replicat原创 2017-09-12 17:32:39 · 904 阅读 · 0 评论 -
HBase-RPC
HBase-RPC原创 2017-09-01 16:14:10 · 397 阅读 · 0 评论 -
HBase-compact
HBase-compact代码分析相关类CompactSplitThreadMemStoreFlusher原创 2017-03-08 14:44:13 · 425 阅读 · 0 评论 -
hbase-RIT
open region close regionAssignmentManager RegionState : region状态 RegionStateStoreassign unassign split merge原创 2017-03-12 20:40:32 · 561 阅读 · 0 评论 -
HBase-balancer
hbase1.0默认的balance:org.apache.hadoop.hbase.master.balancer.StochasticLoadBalancer原创 2017-03-27 17:45:37 · 667 阅读 · 0 评论 -
HBase-split
HBase-split代码分析相关类触发split的情况split逻辑原创 2017-03-05 20:21:25 · 1363 阅读 · 0 评论 -
HDFS-DataNode
相关类-DataXceiver -DataXceiverServer -BPServiceActor原创 2017-03-08 14:46:21 · 336 阅读 · 0 评论 -
shell中调用hbase shell命令
4. hbase shell脚本 既然是shell命令,当然也可以把所有的hbase shell命令写入到一个文件内,想linux shell脚本程序那样去顺序的执行所有命令。如同写linux shell,把所有hbase shell命令书写在一个文件内,然后执行如下命令即可: $ hbase shell test.hbaseshell转载 2015-03-31 18:07:21 · 3899 阅读 · 0 评论 -
zookeeper 四字短语
来自:http://blog.youkuaiyun.com/shenlan211314/article/details/6187029ZooKeeper 支持某些特定的四字命令字母与其的交互。它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令。 ZooKeeper 常用四字命令见下表 1转载 2014-07-16 10:06:45 · 600 阅读 · 0 评论 -
HBase metric统计
hbase的jmx中 region被执行读取操作的次数是怎么统计的?在HRegion.java中,有如下变量: final Counter readRequestsCount = new Counter();Counter:import org.cliffc.high_scale_lib.Counter;api使用: HRegion.RegionScannerImpl.next()中,执行r原创 2017-07-14 17:26:10 · 1697 阅读 · 0 评论 -
HBase RegionLoad源码
HBase RegionLoad源码原创 2017-07-14 17:27:40 · 580 阅读 · 0 评论 -
go-hbase的坑
使用pingcap的go-hbase,往设置ttl的表中写数据,写操作没报异常,但是写完发现get不到对应的数据往另外一个表里,可以写进数据,但是发现timestamp为0所以ttl的表里面get不到写进去的数据原因是go-hbase中的put.go里面ts 直接传了个0HBase的java客户端传的是Long.MAX_VALUE最终写入到hbase中的ts是哪里赋值的? 看一下server端的实原创 2017-09-06 23:03:58 · 2480 阅读 · 0 评论 -
HBase-Spark生成hfile
spark生成hfile原创 2017-08-28 19:30:16 · 1201 阅读 · 0 评论 -
HBase-客户端重试机制
重试机制,间隔时间的策略在ConnectionUtils.getPauseTime方法里面public static long getPauseTime(final long pause, final int tries) { int ntries = tries; if (ntries >= HConstants.RETRY_BACKOFF.length) { n原创 2017-08-28 17:17:32 · 486 阅读 · 0 评论 -
HBase-JvmPauseMonitor分析
HBase-JvmPauseMonitor分析原创 2017-07-12 12:44:41 · 1176 阅读 · 0 评论 -
HBase中涉及到的的一些设计理念
HBase中的设计模式原创 2017-07-12 12:10:18 · 439 阅读 · 0 评论 -
HBase-mapreduce生成hfile
import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.conf.Configured;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.apache.hadoop.hbase.HBaseConf原创 2017-08-27 12:00:12 · 851 阅读 · 0 评论 -
HBase-建表以及表元数据
hbase:metakey: -region columnfamily: -info:regioninfo -info:seqnumDuringOpen -info:server -info:serverstartcodeHConstants.SEQNUM_QUALIFIER=”seqnumDuringOpen”;涉及这部分的操作在:调用过程: AssignmentManager.as原创 2017-09-04 14:53:27 · 2084 阅读 · 0 评论