![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HBase
qq_43193797
github:https://github.com/yanjie666
展开
-
hbase的rowkey设计
rowkey设计案例如下concat(lpad(pmod(abs(hash(concat(DEVICE_ID,'|',PRODUCT_CD,'|',eclif_no))),10000),4,0),'|',DEVICE_ID,'|',PRODUCT_CD,'|',eclif_no,'|',OPEN_DATE)asROWKEY,原创 2021-10-07 12:11:09 · 208 阅读 · 0 评论 -
HBase之预分区
1 Region 为什么要拆分一个Region就是一个表的一段 Rowkey 的数据集合。当 Region 太大的时候HBase 会拆分它。为什么要拆分呢?因为当某个 Region 太大的时候读取效率太低了。大家可以想想我们 为什么从 MySQL、Oracle 转移到 NoSQL 来?最根本的原因就是这些关系型数据库把数据放到一个地方,查询的本质其实也就是遍历 key;而当...原创 2019-02-13 09:50:35 · 922 阅读 · 0 评论 -
Hive 和 HBase 整合
整合后的目标: 在 Hive 中创建的表能直接创建保存到 HBase 中。 往 Hive 中的表插入数据,数据会同步更新到 HBase 对应的表中。 HBase 对应的列簇值变更,也会在 Hive 中对应的表中变更。 Hive 和 HBase 通信主要是依靠 $HIVE_HOME/lib 目录下的hive-hbase-handler-1.2.2.jar 来实现.1...原创 2019-02-13 08:59:27 · 165 阅读 · 0 评论 -
自定义 HBase-MapReduce 之二
目标:实现将HDFS中的数据写入到HBase表中。ReadFruitFromHDFSMapper 类构建ReadFruitFromHDFSMapper于读取 HDFS 中的文件数据package com.demo.mr2.mr;import org.apache.hadoop.hbase.client.Put;import org.apache.hadoop.hbase.io....原创 2019-02-12 16:28:04 · 183 阅读 · 0 评论 -
自定义 HBase-MapReduce 之一
目标:将 fruit 表中的一部分数据,通过MR迁入到 fruit_mr 表中。步骤1: 添加依赖<dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-server</artifactId> <version>1....原创 2019-02-12 16:03:32 · 142 阅读 · 0 评论 -
HBase 实战之简义版微博互动
需求1) 微博内容的浏览,数据库表设计2) 用户社交体现:关注用户,取关用户3) 拉取关注的人的微博内容代码设计总览1) 创建命名空间以及表名的定义2) 创建微博内容表3) 创建用户关系表4) 创建用户微博内容接收邮件表5) 发布微博内容6) 添加关注用户7) 移除(取关)用户8) 获取关注的人的微博内容9) 测试1 表结构表结构分析...原创 2019-02-15 20:17:55 · 294 阅读 · 0 评论 -
HBASE预分区设计
1.考虑数据量的大小2.考虑RegionServer服务器个数原创 2019-02-15 19:24:24 · 293 阅读 · 0 评论 -
HBase之RegionServer上线和下线及Master上线和下线
RegionServer上线和下线region server上线Master使用Zookeeper跟踪RegionServer状态。当某个RegionServer启动时,会首先在Zookeeper上的Server目录下建立代表自己的文件,并获得该文件的独占锁。由于Master订阅了Server目录上的变更信息,当Server目录下的文件出现新增或者删除操作时,Master可以得到来自Zoo...原创 2019-01-23 11:59:24 · 2790 阅读 · 0 评论 -
HBase读写数据原理
1 读流程 HBase读数据流程如图1所示 图1 所示 HBase读数据流程1)Client先访问zookeeper,从meta表所处位置(ip),2)访问meta表,然后读取meta表中的数据。meta中又存储了用户表的region信息;3)根据name...原创 2019-01-22 21:04:32 · 1939 阅读 · 0 评论 -
Hbase 存储的一些概念
1 Hbase 的各种数据结构.最基本的存储单位是列(column),一个列或者多个列形成一行 (row)。传统数据库是严格的行列对齐。比如这行有三个列a、b、c, 下一行肯定也有三个列a、b、c。而在HBase中,这一行有三个列 a、b、 c,下一个行也许是有 4 个列a、e、f、g。在HBase 中,行跟行的列可以完全不一样,这个行的数据跟另外一个行的数据也可以存储在不同的机 ...原创 2019-01-22 17:20:57 · 880 阅读 · 0 评论 -
Hbase 和 MapReduce 结合
Hbase 只是一个单纯的数据存储框架, 没有任何的分析能力.我们可以让 Hbase 和 MapReduce 结合起来, 就扩展出来了数据分析功能.为什么需要使用 MapReduce用 MapReduce 的原因有两点: 统计的需要: 我们知道 HBase 的数据都是分布式存储在 RegionServer上的,所以对于类似传统关系型数据库的 group by 操作,扫描器是无...原创 2019-01-26 14:10:43 · 1136 阅读 · 0 评论 -
Hbase 架构以及各个组件介绍
1 HBase架构HBase的zookeeper中保存HBase的元数据,HMater是HBase的管理节点,ReginServer有多个,每个ReginServer管理了多个Regin,每个ReginServer根据列族的个数可以有多个Store,每个Store的MemStore是写入缓冲区,但在写入MemStore之前还是会先写入预写日志(HLog),HLog文件还是会保存在HDFS上...原创 2019-01-21 16:05:29 · 1823 阅读 · 0 评论 -
Nosql的架构模式之列族存储
列族存储列族存储 的设计源于google的bigtable论文,该论文对以后的列族存储(如:HBASE,Cassandra,Hypertable)的实现产生了深远的影响。先来看看熟悉的Excel表格,它有助于我们理解列族存储的模型,如图 1 所示电子表格是一个二维的表格,通过“行号+列号”(3+C)可以快速地找到对应的单元格的值(column Family)。和健值存储类似,可以在这个...原创 2019-01-21 14:44:05 · 1171 阅读 · 0 评论 -
HBase删除数据
我们知道HDFS上的文件是不能被修改的,要删除某个键值时,HBase提供的解决方案是对该键值新增一个删除标记,也叫“墓碑标记”。因此,对某个键值进行删除后,实际上在后面的读取中会检索到该数据但不会返回给客户端。在进行major合并是,将一个Region中的一个列族的若干个HFile重写为一个HFile。在合并的同时,还会将所有删除标记的数据掠过,至此删除动作才真正生效。...原创 2019-01-25 21:01:22 · 740 阅读 · 0 评论 -
HBase Shell操作(DDL+DML)
1 基本操作1.进入HBase客户端命令行[tom@hadoop102 hbase]$ bin/hbase shell2.查看帮助命令hbase(main):001:0> help3.查看当前数据库中有哪些表hbase(main):002:0> list2 表的操作1.创建表hbase(main):002:0> create 'student'...原创 2019-01-25 20:14:35 · 351 阅读 · 0 评论 -
HBase特点
1)海量存储Hbase适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据。这与Hbase的极易扩展性息息相关。正式因为Hbase良好的扩展性,才为海量数据的存储提供了便利。2)列式存储这里的列式存储其实说的是列族存储,Hbase是根据列族来存储数据的。列族下面可以有非常多的列,列族在创建表的时候就必须指定。3)极易扩展Hbase...原创 2019-01-21 08:39:30 · 2993 阅读 · 0 评论 -
HBase之优化
1 高可用在HBase中Hmaster负责监控RegionServer的生命周期,均衡RegionServer的负载,如果Hmaster挂掉了,那么整个HBase集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以HBase支持对Hmaster的高可用配置。2 预分区每一个region维护着startRow与endRowKey,如果加入的数据符合某个region维护的rowK...原创 2019-01-24 22:20:02 · 118 阅读 · 0 评论