HBase以表的形式存储数据。表有行和列组成。列划分为若干个列族(row family)
Row key
行键 (Row key)可以是任意字符串(最大长度是 64KB,实际应用中长度一般为 10-100bytes),在hbase内部,row key保存为字节数组。
存储时,数据按照Row key的字典序(byte order)排序存储。设计key时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。(位置相关性)
注意:
字典序对int排序的结果是1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,…,9,91,92,93,94,95,96,97,98,99。要保持整形的自然序,行键必须用0作左填充。
行的一次读写是原子操作 (不论一次读写多少列)。这个设计决策能够使用户很容易的理解程序在对同一个行进行并发更新操作时的行为。
列族
hbase表中的每个列,都归属与某个列族。列族是表的chema的一部分(而列不是),必须在使用表之前定义。列名都以列族作为前缀。
访问控制、磁盘和内存的使用统计都是在列族层面进行的。
时间戳
HBase中通过row和columns确定的为一个存贮单元称为cell。每个 cell都保存着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是 64位整型。时间戳可以由hbase(在数据写入时自动 )赋值,此时时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显式赋值。如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。每个 cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。
为了避免数据存在过多版本造成的的管理 (包括存贮和索引)负担,hbase提供了两种数据版本回收方式。一是保存数据的最后n个版本,二是保存最近一段时间内的版本(比如最近七天)。用户可以针对每个列族进行设置。
Cell
由{row key, column( =<family> + <label>), version} 唯一确定的单元。cell中的数据是没有类型的,全部是字节形式存贮。
String类型存储为utf-8 byte arrary
boolean类型存储为0/1 byte array
long类型存储为byte[8]
相关推荐
"HBase存储海量图片" 本文档详细描述了如何采用HBase存储海量图片,以及如何将大批量的小文件写成sequenceFile文件格式。海量图片的存储是通过HBase实现的,HBase是一种面向列的NoSQL数据库,特别适合存储海量数据...
HBase存储架构详解 HBase存储架构是HBase的核心组件之一,它们之间的关系非常复杂。本文将详细解释HBase存储架构的组件、它们之间的关系,以及它们如何工作。 HBase存储架构主要包含以下几个组件: 1. HMaster:...
简单的介绍了habse存储数据的样子和简单的hbase shell 使用
│ Day15[Hbase 基本使用及存储设计].pdf │ ├─02_视频 │ Day1501_Hbase的介绍及其发展.mp4 │ Day1502_Hbase中的特殊概念.mp4 │ Day1503_Hbase与MYSQL的存储比较.mp4 │ Day1504_Hbase部署环境准备.mp4 │ Day...
Hive的HBase存储接口就是为了解决这个问题,它使得数据可以在Hive和HBase之间无缝地交互。 Hive的Storage Handler机制是自Hive 6.0版本引入的,其目的是扩展Hive的功能,使其能够支持除HDFS之外的存储系统。Hive-...
这份“HBase存储的研究与应用-PaperAsk检测报告”很可能包含对HBase核心技术的深入探讨,以及它在实际场景中的应用案例。由于没有提供具体的报告内容,我将基于HBase的一般知识进行详细的阐述。 HBase,全称为...
【HBase 存储优化概述】 HBase 是一种基于 Hadoop 的分布式列式数据库,用于处理大规模半结构化数据。由于其对大数据的高效处理能力,尤其在亿级数据量的场景下,HBase 成为了大数据环境下的优选存储解决方案。在...
从HBase的集群搭建、HBaseshell操作、java编程、架构、原理、涉及的数据结构,并且结合陌陌海量消息存储案例来讲解实战HBase 课程亮点 1,知识体系完备,从小白到大神各阶段读者均能学有所获。 2,生动形象,化繁为...
### 支撑Facebook消息处理的HBase存储系统 #### 关于Facebook消息系统 Facebook消息系统是一种集成化的通信平台,能够支持电子邮件、聊天、短信等多种形式的信息传递方式。它旨在为用户提供一个统一的消息中心,使...
在大数据处理领域,HBase作为一个分布式、高性能的列式存储系统,被广泛应用于处理大规模结构化数据。本文将深入探讨如何使用代码实现将CSV(逗号分隔值)数据存储到HBase中,帮助你更好地理解和掌握HBase的用法。 ...
在本实验中,我们主要聚焦于HBase,这是一个基于谷歌Bigtable设计的开源NoSQL数据库,广泛应用于大数据存储场景。实验旨在让参与者熟练掌握HBase的Shell操作,包括创建表、输入数据以及进行特定查询。以下是详细步骤...
HBase存储的研究与应用_冯晓普.caj
项目1-地区销售额-基于HBase存储的State运用26.项目2-省份销售排行-双纵轴HighCharts图表开发一27.项目2-省份销售排行-双纵轴HighCharts图表开发二28.项目2-省份销售排行-双纵轴HighCharts图表开发三29.项目2-省份...
3. Hive集成:通过Hive的HBase存储过程进行数据查询。 4. Flume、Kafka集成:用于日志收集和实时流处理。 这份“HBase官方文档中文版”详细阐述了HBase的核心概念、架构、操作以及最佳实践,对于HBase的学习者和...
本文将深入探讨一个基于Hbase的海量视频存储简单模拟项目,旨在利用Hadoop和Hbase这两个强大的开源工具来解决这个问题。 首先,我们要理解Hadoop和Hbase的角色。Hadoop是分布式计算框架,其核心组件包括HDFS...
在Java编程环境中,将本地文件读取并上传到HBase是一项常见的任务,特别是在大数据处理和存储的场景下。HBase是一个分布式、版本化的NoSQL数据库,基于Apache Hadoop,适用于大规模数据存储。以下是一个详细的过程,...
- **配置hbase-site.xml**:编辑`/usr/local/hbase/conf/hbase-site.xml`,设置`hbase.rootdir`为HDFS上的存储路径,并将`hbase.cluster.distributed`设为`true`,指定HBase在分布式模式下运行。 3. **环境变量...
在大数据领域,Hbase作为一款分布式列式存储系统,常被用于处理海量的非结构化数据。本节主要探讨如何通过Hive与Hbase的交互实现数据的导入和优化存储。 1. Hive数据导入Hbase Hive可以作为数据导入Hbase的一个桥梁...
HBase大对象存储方案的设计与实现.讲诉HBase的原理及应用