文档章节

HBase中的基本概念

Jackson_Mu
 Jackson_Mu
发布于 2014/12/15 08:05
字数 647
阅读 114
收藏 0

HBaseGoogle Bigtable的开源实现。HBase是一个开源的、分布式的、多版本的、面向列的存储模型。HBase利用HDFS作为其文件系统(或本地),还可以通过MapReduce计算模型来并行处理大数据。下面我们了解一下HBase中的基本概念:

  1. Row Key

    1)       Row key是检索记录的主键。

    2)       Row key行键 (Row key)可以是任意字符串(最大长度是 64KB,实际应用中长度一般为 10-100bytes),在hbase内部,row key保存为字节数组。

    3)       数据按照Row key的字典序(byte order)排序存储。设计key时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。(位置相关性)

    4)       行的读写是原子操作。

  2. Column family (列族)

    1)       HBase表中的每个列都属于某个列族,列族必须作为表模式(schema)定义的一部分预先给出,必须在使用表之前定义。列名都是以列族作为前缀,中间以冒号(:)隔开,如:courses:math

    2)       访问控制、磁盘和内存的使用统计都是在列族层面进行的。实际应用中,列族上的控制权限能帮助我们管理不同类型的应用:我们允许一些应用可以添加新的基本数据、一些应用可以读取基本数据并创建继承的列族、一些应用则只允许浏览数据(甚至可能因为隐私的原因不能浏览所有数据)。

  3. Cell (存储单元)

    {row key, column(=<family> + <label>), version} 唯一确定的单元。cell中的数据是没有类型的,全部是字节码形式存贮。

  4. Timestamp(时间戳)

    1)       每个cell都保存着同一个数据的多个版本,版本通过时间戳来索引。

    2)       时间戳为64位整型。

    3)       可以自动赋值(当前系统时间),也可以用户自己指定。

    4)       不同版本数据按照时间戳倒序排。

    5)       HBase提供了两种数据版本回收机制:a. 保存数据最后n个版本;b. 保存最近一段时间内的版本。用户可以针对每个列族去设置。

© 著作权归作者所有

上一篇: Maven入门
Jackson_Mu
粉丝 73
博文 17
码字总数 15900
作品 0
海淀
程序员
私信 提问
一文让您全面了解清楚HBase数据库的所有知识点,值得收藏!

欢迎关注大数据和人工智能技术文章发布的微信公众号:清研学堂,在这里你可以学到夜白(作者笔名)精心整理的笔记,让我们每天进步一点点,让优秀成为一种习惯! 一、HBase基本概念:列式数据...

李金泽
2018/03/04
0
0
大数据(HBase-应用场景、原理与基本架构)

Hbase概述 HBase是一个构建在HDFS上的分布式列存储系统; HBase是Apache Hadoop生态系统中的重要一员,主要用于海量结构化数据存储 从逻辑上讲, HBase将数据按照表、行和列进行存储。 Hbas...

这很耳东先生
06/25
87
0
HBase应用与发展之Apache HBase的现状和发展

HBase基本概念 HBase(Hadoop Database),是一个基于Google BigTable论文设计的高可靠性、高性能、可伸缩的分布式存储系统。 松散表结构(Schema free) 原生海量数据分布式存储 随机查询、范围...

HBase技术社区
2018/09/15
0
0
Hbase原理、基本概念、基本架构

概述 HBase是一个构建在HDFS上的分布式列存储系统; HBase是基于Google BigTable模型开发的,典型的key/value系统; HBase是Apache Hadoop生态系统中的重要一员,主要用于海量结构化数据存储...

2k10
2015/03/30
253
0
Sqoop数据导入到HBase遇上的问题及解决方法

  【IT168 技术】运行bin/sqoop import --connect jdbc:mysql://ip:port/database --username * --password **--hbase-bulkload --hbase-create-table --column-family info --hbase-row-k......

中国大数据
2018/05/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

RxJava进行单元测试的方式

@Test public void completeTask_retrievedTaskIsComplete() { // Given a new task in the persistent repository final Task newTask = new Task(TITLE, ""); ......

SuShine
44分钟前
5
0
正则表达式大全

检验手机号码 # 要求:手机号码必须为11位数字,以1开头,第二位为1或5或8。import redef verify_mobile(): mob = input("请输入手机号码:") ret = re.match(r"1[358]\d{9}", m......

彩色泡泡糖
48分钟前
7
0
QT之border-image属性

一、border-image的兼容性 border-image可以说是CSS3中的一员大将,将来一定会大放光彩,其应用潜力真的是非常的惊人。可惜目前支持的浏览器有限,仅Firefox3.5,chrome浏览器,Safari3+支持...

shzwork
49分钟前
6
0
Kubernetes Operator简易教程

1. 安装operator-sdk //安装 operator-sdk$ apt-get install operator-sdk.....$ operator-sdk versionoperator-sdk version: v0.7.0$ go versiongo version go1.11.4 darwin/amd64 2......

Robotcl_Blog
49分钟前
5
0
再谈DAG任务分解和Shuffle RDD

1、DagScheduler分析 DagScheduler功能主要是负责RDD的各个stage的分解和任务提交。Stage分解是从触发任务调度过程的finalStage开始倒推寻找父stage,如果父stage没有提交任务则循环提交缺失...

守望者之父
55分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部