HBase学习笔记(一)

HBase版本:0.97

1.Get

Gets实在Scan的基础上实现的。

2.联合查询(Join)

HBase是否支持联合是一个网上常问问题。简单来说 : 不支持。至少不像传统RDBMS那样支持。

但并不表示等价联合不能在应用程序中支持,只是必须自己做。 两种方法,要么指示要写到HBase的数据,要么查询表并在应用或MapReduce代码中做联合。

3.列族

一个表存在多列族,注意基数(如, 行数). 如果列族A有100万行,列族B有10亿行,列族A可能被分散到很多很多区(及区服务器)。这导致扫描列族A低效。

无论是列族,属性和行键都会在数据中重复上亿次。所以尽量使列族名小,最好一个字符。

TTL

列族可以设置TTL秒数,HBase 在超时后将自动删除数据。影响 全部 行的全部版本 - 甚至当前版本。HBase里面TTL 时间时区是 UTC.

4.行键(RowKey)设计

OpenTSDB的Key的格式是[metric_type][event_timestamp],乍一看,似乎违背了不将timestamp做key的建议,但是他并没有将timestamp作为key的一个关键位置,有成百上千的metric_type就足够将压力分散到各个region了。

5.倒序时间戳

一个数据库处理的通常问题是找到最近版本的值。采用倒序时间戳作为键的一部分可以对此特定情况有很大帮助。追加(Long.MAX_VALUE - timestamp) 到key的后面,如 [key][reverse_timestamp].

表内[key]的最近的值可以用[key]进行 Scan 找到并获取第一个记录。由于 HBase 行键是排序的,该键排在任何比它老的行键的前面,所以必然是第一个。

6.行健

行键不能改变。唯一可以“改变”的方式是删除然后再插入。

时间: 2024-12-19 22:11:23

HBase学习笔记(一)的相关文章

HBase学习笔记之HFile格式

主要看Roger的文档,这里作为文档的补充 HFile的格式-HFile的基本结构 Trailer通过指针找到Meta index.Data index.File info. Meta index保存每一个元数据在HFile中的位置.大小.元数据的key值. Data index保存每一个数据块在HFile中的位置.大小.块第一个cell的key值. File Info保存HFile相关信息. Meta块保存的是HFile的元数据,比如布隆过滤器. Data块保存的为具体的数据,每个数据块有个M

Hbase学习笔记之一 | Hbase Shell命令篇

最近在XX项目的测试过程中,接触到一些HBase的东西,希望能站在测试的角度,把过程记录下来,期望对快速了解它有点帮助.作为一个初次接触它的人来说,需要迫切掌握其中基本的概念,这里就不赘述了. HBase Shell是HBase提供的便捷的访问方式,首先你需要搭建HBase的环境,可以参考 http://hbase.apache.org/book/quickstart.html 和http://hbase.apache.org/book/notsoquick.html. 1.进入Hbase Sh

Hbase学习笔记01

最近做项目接触到了HDFS.mapreduce以及Hbase,有了实战机会,今天打算将这些知识好好总结下,以备不时之需.首先从Hbase开始吧. Hbase是建立在HDFS上的分布式数据库,下图是Hbase表的模型: Hbase这个数据库其实和传统关系数据库还是有很多类似之处,而不是像mongodb,memcached以及redis完全脱离了表的概念,只不过hbase是以列为中心的数据库,而传统关系数据库则是以行为中心的数据库.不过hbase这个列并非我们传统意义的列,而是列族.列族是hbase

hbase学习笔记1——脚本简单总结

最近学习了hbase的相关知识,也看了一下hbase的bin/目录下的脚本,很多脚本细节并不理解,大致的轮廓有个了解,做一下学习总结: ."$bin"/hbase-config.sh 调用脚本hbase-config.sh 装载相关环境变量,hbase-config.sh脚本同时调用了conf/hbase-env.sh脚本. 接下来脚本通过判断是否为分布式模式来启动不同的服务(同时调用了脚本hbase) distMode=`$bin/hbase--config "$HBASE

[原创]HBase学习笔记(1)-安装和部署

HBase安装和部署 使用的HBase版本是1.2.4 1.安装步骤(默认hdfs已安装好) # 下载并解压安装包 cd tools/ tar -zxf hbase-1.2.4-bin.tar.gz   # 重命名为hbase mv hbase-1.2.4 hbase # 将hadoop目录下的hdfs-site.xml 和 core-stie.xml拷贝到 hbase下的conf 目录中 cd /home/work/tools/hbase/conf cp /home/work/tools/ha

hbase 学习笔记

HBase简介 HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群.HBase利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协调工具 主键:Row Key 主键是用来检索记录的主键,访问hbase table中的行,只有三种方式 通过单个row key访问 通过row key的ra

HBase学习笔记

关键类: HBaseAdmin 管理Hbase的,主要负责DDL操作 HTable 管理表中数据,主要负责DML操作 1.为了避免热点,更多的建表方法 在Shell中: create 'tb_splits',{NAME=>'cf',VERSION=>3},{SPLITS=>['a','b','c']} --直接创建多个region的table,每个region的startkey和endkey由参数依次指定,第一个region没有开始startkey,最后一个没有endkey --rowk

Hbase 学习笔记4----原理

MapReduce 中如何处理HBase中的数据?如何读取HBase数据给Map?如何将结果存储到HBase中? Mapper类:包括一个内部类(Context)和四个方法(setup,map,cleanup,run):           setup,cleanup用于管理Mapper生命周期中的资源.setup -> map -> cleanup , run方法执行了这个过程:           map方法用于对一次输入的key/value对进行map动作,对应HBase操作也就是一行的

Hbase学习笔记(安装和基础知识及操作)

1.Hbase简介 1.面向列的分布式数据库 2. 以HDFS作为文件系统 3. 利用MapReduce处理Hbase中海量数据 4. ZookKeeper作为协调工具 5. sqoop提供Hbase到关系型数据库中数据导入功能 6. Hive和pig提供高层语言支持如HSQL 2. 伪分布式安装 准备: 安装Hadoop 详细见上一篇日志: hadoop分布式安装 hbase版本: hbase-0.94.7-security.tar.gz 安装目录 /usr/local 步骤: 1.  安装