java系统找不到指定文件怎么解决
403
2022-09-13
深入浅出 HBase 实战|青训营笔记
一、HBase适用场景
HBase特性
HBase数据模型
HBase以列族为单位存储数据,以行键索引数据
简单起见可以将HBase数据格式理解为如下数据结构:
// table名格式:"${namespace}:${table}"// 例如:table = "default:test_table"[ "rowKey1": { // rowkey定位一行数据 "cf1": { // column family需要预先定义到表结构 "cq_a": { // column qualifier无需定义,使用任意值 "timestamp3": "value3", // row=rowKey1, column="cf1:cf_a", timestamp=timestamp2 // 定位一个cell "timestamp2": "value2", "timestamp1": "value1" }, "cq_b": { "timestamp2": "value2", "timestamp1": "value1" } }, "cf3": { "cq_m": { "timestamp1": "value1" }, "cq_n": { "timestamp1": "value1" } }, }, "rowKey3": { "cf2": { // 缺省column
使用场景
“近在线”的海量分布式KV/宽表存储,数据量级达到百TB级以上写密集型应用,高吞吐,可接受一定的时延抖动需要按行顺序扫描的能力接入Hadoop大数据生态结构化、半结构化数据,可以经常新增/更新列属性平滑的水平扩展
优缺点
二、HBase架构设计
主要组件
HMaster:元数据管理、集群调度、保活RegionServer:提供数据读写服务,每个实例负责若干个互不重叠的rowkey区间内的数据ThriftServer:提供Thrift API读写代理层Zookeeper:分布式一致性共识协作管理,例如HMaster选主、任务分发、元数据变更管理HDFS:分布式文件系统,HBase数据存储底座
三、大数据支撑
HBase在大数据生态的定位
对TB、PB级海量数据支持强一致、近实时的读写性能,支持快速的ad-hoc分析查询任务支持字典序批量扫描大量数据,支持只读取部分列族的数据,灵活支持不同的查询模式,避免读取不必要的数据存储大规模任务(MapReduce、Spark、Flink)的中间/最终计算结果平滑快速的水平扩展能力,能够敏捷应对大数据高速增长的数据体量和大规模的并发访问精细化的资源成本控制,计算层和存储层分别按需扩展,避免资源浪费
水平扩展
增加RegionServer实例,分配部分region到新实例扩展过程平滑,无序搬迁实际数据可用性影响时间很短,用户基本无感知
Region热点切分
找到该表中哪个region的数据最大找到该region内哪个column family的数据最大找到column family内哪个HFile的数据大小最大
这是我参与「第四届青训营 」笔记创作活动的的第8天
找到HFile里处于最中间位置的Data Block用这个Data Block的第一条KeyValue的Rowkey作为切分点
Region碎片整合
Region负载均衡
根据总的region数量和RegionServer的数量计算平均的region数量,设定弹性上下界避免不必要的操作,例如默认slop为0.2,平均region数量为5,则负载均衡的RS上的region的数量为[4, 6]将RegionServer按照region数量降序排序,对region数量超出上界的选取需要迁出region并且按照创建时间从新到老排序选出region数量低于下限的RS列表,round-robin分配步骤2选出的regions处理边界情况,尽量保证region数量接近
\
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~