Hbase
hbase
遥遥晚风点点
大数据,java
展开
-
Hbase的RowKey设计原则
一条数据的唯一标识就是 rowkey,那么这条数据存储于哪个分区,取决于 rowkey 处于哪个一个预分区的区间内,设计 rowkey 的主要目的 ,就是让数据均匀的分布于所有的 region 中,在一定程度上防止数据倾斜。接下来我们就谈一谈 rowkey 常用的设计方案。1. rowkey 长度原则Rowkey 是一个二进制码流,Rowkey 的长度被很多开发者建议说设计在 10~100 个字节,不过建议是越短越好,不要超过 16 个字节,存为byte[]字节数组,一般设计成定长的。原因...原创 2020-07-19 21:52:37 · 185 阅读 · 0 评论 -
Hbase二级索引
HBase的查询都是通过RowKey(要把多条件组合查询的字段都拼接在RowKey中显然不太可能),或者全表扫描再结合过滤器筛选出目标数据(太低效),所以通过设计HBase的二级索引来解决这个问题。多个查询条件构成了多维度的组合查询,需要根据不同组合查询出符合条件的数据。例如: 按照电影维度查询数据适合,但是按照uid就不适合 , 使用二级索引分两步查询实现高效获取数据,因为两次都是通过ROWKEY查询的数据创建代码实现思路 在插入数据的时候 , 如果遇到uid属性...原创 2020-07-19 21:49:54 · 1556 阅读 · 0 评论 -
Hbase的一些扩展(批量导入数据)
高效导入数据:1,javaAPI通过put缓存导入数据这种方法对于动态的少量的数据导入适用,效率比较慢,会先通过java写入hbase中的缓存中,然后等待满足条件后再刷写落盘2,通过MR程序读取数据后直接导入到HDFS文件夹中成Hfile文件这种方式适用于大量的静态的数据,效率较高,不经过内存,直接生成hfile文件...原创 2020-07-17 22:09:16 · 562 阅读 · 0 评论 -
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进行通讯;4...原创 2020-07-17 21:50:20 · 239 阅读 · 0 评论 -
Hbase基本架构
StoreFile保存实际数据的物理文件,StoreFile以HFile的形式存储在HDFS上。每个Store会有一个或多个StoreFile(HFile),数据在每个StoreFile中都是有序的。MemStore写缓存,由于HFile中的数据要求是有序的,所以数据是先存储在MemStore中,排好序后,等到达刷写时机才会刷写到HFile,每次刷写都会形成一个新的HFile。WAL(HLog)由于数据要经MemStore排序后才能刷写到HFile,但把数据保存在内...原创 2020-07-17 21:49:19 · 247 阅读 · 1 评论 -
Hbase客户端JAVA的API,过滤器
POM依赖 <dependencies> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> </dependency&原创 2020-07-17 20:54:22 · 174 阅读 · 0 评论 -
Hbase客户端shell操作命令
进入shell客户端:hbase shell列出所有命令:help查看某个命令详细用法:help "command"DDL命令创建表: create 1) create "a" , "cf1" 创建一个表名为a 列族为cf1的表 2) create "b" , "cf1" , "cf2" 创建一个表名为b 有cf1和cf2两个列族的表 3) create "tb_b" , {NAME => "cf1" , VERSIONS =>......原创 2020-07-17 20:40:30 · 927 阅读 · 0 评论 -
Hbase安装部署
环境准备:HDFS集群安装并启动 Zookeeper集群安装并启动 集群时间同步安装步骤:1,上传并解压tar -zxvf hbase-2.0.4-bin.tar.gz -C ./2,修改配置文件hbase-env.sh export JAVA_HOME=/usr/apps/jdk1.8.0_141/ #禁用hbase内置的zk,使用自己安装的zk集群 export HBASE_MANAGES_ZK=falsehbase-site.xml...原创 2020-07-17 19:50:43 · 164 阅读 · 0 评论